内存Tomcat

 

在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需要3到4个字节。

1byte=8bit 1byte就是1B
1KB=1024B

free -m Mem”后的total列就是内存大小。3500实际就是4GB

 

可不设置内存,64位机器,可最大化使用物理内存
java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M car.jar 1、堆内存:最小1024M,最大1536M。(对象使用的内存) 2、永久内存:最小128M,最大256M。(类使用的内存,PermGen) nohup java -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -jar 你的jar包 >>/dev/null & 现公司服务器内存一般都可以加到最大2G ,所以可以采取以下配置: -Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m 1、-XX:newSize:表示新生代初始内存的大小,应该小于-Xms的值; 2、-XX:MaxnewSize:表示新生代可被分配的内存的最大上限;当然这个值应该小于-Xmx的值;

  

 

minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒

默认的tomcat 参数:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改:
<Connector port=“8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="600"
minSpareThreads="100"
maxSpareThreads="500"
acceptCount="700"
connectionTimeout="20000"
redirectPort="8443" />
参数说明:
protocol="org.apache.coyote.http11.Http11NioProtocol" 使用java的异步io护理技术,no blocking IO
maxThreads=“600" 表示最多同时处理600个连接最大线程数
minSpareThreads=“100" 表示即使没有人使用也开这么多空线程等待,初始化时创建的线程数
maxSpareThreads=“500" 表示如果最多可以空500个线程,例如某时刻有505人访问,之后没有人访问了,则tomcat不会保留505个空线程,而是关闭505个空的。 一旦创建的线程超过这个值,
Tomcat就会关闭不再需要的socket线程。acceptCount="700" 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理 Tomcat在NIO模式时有一个线程专业接受请求连接,然后将其放到任务队列,然后有工作线程从任务t队列取出请求并并发处理(工作线程数通过maxThreads值控制,Tomcat默认是200),
如果每个请求处理很快比如20ms,则工作线程1s内就能处理10000个请求,否则若请求处理很慢比如要几秒,则请求队列中的连接得到处理收到响应的时间也会变慢。

  

 

posted @ 2019-06-16 18:01  苍天一穹  阅读(131)  评论(0)    收藏  举报