1.tomcat io 运行模式
tomcat io 模式有三种,BIO、NIO、APR
BIO:
NIO:
APR:
-server:服务器模式
-Xmx:java虚拟机可用最大内存
-Xss:每个java线程堆栈大小
-XX:NewSize:堆区域新生代内存的默认大小
-XX:MaxNewSize:JVM堆区域新生代内存的最大可分配大小
-XX:PermSize:内存永久保留区域
XX:+UseParNewGC:对新生代采用多线程并行回收,这样收得快
XX:+UseBiasedLocking:启用一个优化了的线程,使得你的appserver内对线程处理自动进行最优调配
-XX:+UseCMSCompactAtFullCollection:在使用 concurrent gc 的情况下,防止 memoryfragmention,对 live object 进行整理,使 memory 碎片减少-XX:+AggressiveOpts:启用这个参数,则每当 JDK 版本升级时,你的 JVM 都会使用最新加入的优化技术
3.tomcat并发优化参数
修改conf目录下server.xml文件
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
minSpareThreads="20"
maxSpareThreads="200"
maxThreads="1000"
acceptCount="1000"
enableLookups="false"
disableUploadTimeout="false"
connectionUploadTimeout="120000"
keepAliveTimeout="90000"
URIEncoding="UTF-8"
connectionTimeout="20000" />
minSpareThreads:Tomcat初始化时创建的 socket 线程数
maxSpareThreads :Tomcat连接器的最大空闲 socket 线程数
maxThreads :客户请求最大线程数
acceptAccount: 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
enableLookups : 是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
disableUploadTimeout :上传时是否使用超时机制
connectionUploadTimeout :上传超时时间
URIEncoding : 指定Tomcat容器的URL编码格式
connectionTimeout : 网络连接超时,单位:毫秒
4.tomcat缓存优化参数
在并发优化参数基础上添加如下参数:
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
compression :打开压缩功能
compressionMinSize: 启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType: 压缩文件类型
总结:tomcat性能优化参数值需要根据实际环境来调整,切不可随便粘贴复制,在生产环境上更是需要小心,线下反复测试通过后再上生产,否则将事与愿违。