jvm参数的设置
-server:一定要作为第一个参数,在多个CPU时性能佳
-xms:初始化堆内存的大小
-xmx:最大堆内存的大小
-xx:PermSize:永久内存区初始化大小
-xx:MaxPermSize:永久内存区最大大小
-xx:MaxNewSize:新生成池最大大小
-Xss:每个线程的Stack大小
xms,xmx,MaxNewSize是针对head(堆)内存区的设置,一般xms和xmx设置相同,以避免每次垃圾回收的后jvm重新分配内存;MaxNewSize是设置新生代内存区的大小,当NewSize的大小和MaxNewSize的大小设置相同或只设置MaxNewSize的大小时,MaxNewSize=Xmn,其中MaxNewSize最大设置的大小为xmx/2(考虑到所有的新生代都晋升老年代的情况,一般设置为xmx的三分之一)
常见错误:OutOfMemoryError: Java heap space
解决办法:增加xms和xmx的大小
-xx:PermSize,-xx:MaxPermSize是针对永久内存区的设置,主要用来存放Class和Meta信息
常见错误:java.lang.OutOfMemoryError: PermGen space
解决办法:增大-xx:MaxPermSize大小
并发相关参数设置
MaxThreads:tomcat最大能起的线程数,即最大并发数
MinSpareThreads:tomcat初始化启动的socket线程数,没有用户访问时也启动这么多线程等待
acceptCount:最大等待连接数,当连接数大于MaxThreads+acceptCount时,连接就会被拒绝
connectionTimeout:连接超时时间
compression:是否启用压缩 on为启用(文本数据压缩) off为不启用, force 压缩所有数据
compressionMinSize:当超过最小数据大小才进行压缩
noCompressionUserAgents:哪些客户端发出的请求不压缩,默认是不限制
compressableMimeType:配置想压缩的数据类型,默认是 text/html,text/xml,text/plain
附上我的tomcat配置信息
<Connector port="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="500"
minSpareThreads="20"
acceptCount="100"
compression="on"
compressionMinSize="0"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/ms*,application/vnd*,application/postscript,application/javascript,application/x-javascript,application/json,image/png,image/gif,image/jpeg"/>