1、tomcat性能优化的类型
1)操作系统
修改内核参数
2)tomcat配置文件优化
修改工作模式
提高tomcat性能
3)优化JVM虚拟机
优化java虚拟机
2、tomcat主配置文件优化参数
1)tomcat的工作模式
BIO阻塞模式:默认使用阻塞I/O,一个线程处理一个请求,并发量高,线程占用高,系统资源占用高
NIO非阻塞模式:基于缓存方式提供服务,使用少量的线程主力,高并发请求,稳定性强
2)修改tomcat的工作模式
<Connector port=“85” protocol=“HTTP/1.1” 默认时BIO模式
<Connector port=“85” protocol=“org.apache.coyote.http11.Http11NioProtocol” NIO模式
3、配置访问tomcat的管理控制台
1)修改tomcat管理控制文件,添加管理用户和组设置访问密码
[root@server /]# vim /usr/local/tomcat/conf/tomcat-users.xml
<role rolename="admin-gui"/> 添加图形管理账户
<role rolename="manager-gui"/> 添加图形管理组
<user username="tomcat" password="pwd@123" roles="admin-gui,manager-gui"/> 添加用户和组,将用户添加到组中
</tomcat-users> 结束标签
2)客户访问
http://192.168.200.250:85/manager/status
4、配置tomcat为NIO模式
1)修改主配置文件(中级优化)
[root@server bin]# vim /usr/local/tomcat/conf/server.xml
<Connector port="85" protocol="org.apache.coyote.http11.Http11NioProtocol" NIO模式
connectionTimeout="20000" 网络连接超时时间为20秒,0永不超时但这样设置有隐患的,单位是毫秒
keepAliveTimeout Tomcat 保持该连接多久,-1 为不限制超时
redirectPort="8443" 加密访问
maxThreads="600" 最大进程数
minSpareThreads="100" 最小空闲进程
maxSpareThreads="200" 最大空闲进程
acceptCount="300" 当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度(300个客户)
/>
2)其他优化参数(高级优化)
URIEncoding="UTF-8" 字符编码
compression="on" 开启压缩功能
compressionMinSize="1024 超过1M进行压缩
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png" 压缩文件的类型
disableUploadTimeout="true" 允许上传附件超时
enableLookup="fales" 禁用DNS解析
processorcache="500" 缓存进程500个
5、优化JVM虚拟机
1)JVM虚拟机优化的作用
合理分配内存资源
当并发访问量达到峰值以后监控内存和cpu资源占用
JVM默认使用计算机内存资源的1/64
实际应用JVM占用内存资源在80%
2)内存优化
[root@server /]# cp /usr/local/tomcat/bin/catalina.sh /usr/local/tomcat/bin/catalina.sh.bak
[root@server /]# vim /usr/local/tomcat/bin/catalina.sh
99 JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=1024m" 实际物理内存为2G
-Xms 初始分配堆最小内存,默认为物理内存的1/64
-Xmx 最大允许分配的堆内存,默认为物理内存的1/4,可按照物理内存的80%~50%
PermSize 初始分配非堆最小内存,默认为物理内存的1/64
MaxPermSize 最大允许分配的非堆内存,默认为物理内存的1/4,可按照物理内存的80%~50%