(十三)性能测试-Tomcat性能监控和优化
2018-01-04 本文已影响0人
安小龙
性能测试的过程中,经常会使用到监控Tomcat运行情况,然后再有针对性的进行优化。JDK自带了一个监控工具jvisualvm,可以用来监控Tomcat的运行情况,位置在JDK的bin目录下

使用jvisualvm可以监控Tomcat对应使用cpu、内存、线程数等情况

还可以在【工具】-【插件】下扩展更多的监控维度

Linux下远程监控配置
1.在jdk对应的bin目录下创建文件jstatd.all.policy,并授予可执行权限
文件内容:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};

2.在jdk的bin目录下执行命令
nohup jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=172.18.104.102 & (172.18.104.102为服务器的ip地址)

3.jvisualvm中添加远程主机查看效果

4.Linux下配置jmx管理Tomcat
在Tomcat/bin目录下catalina.sh文件中,‘Execute The Requested Command ’前添加:
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
(此配置无须账号和密码,连接端口为9004)
Tomcat性能优化
1.线程数设置
#Tomcat启动的最大线程数5000
maxThreads="5000"
#Tomcat初始化的线程数500
minSpareThreads="500"
#Tomcat线程数达到2500,会自动关闭不再需要的连接
maxSpareThreads="2500"
#最大线程支持数,超过5000个线程将不再处理
acceptCount="5000"

2.内存设置
Tomcat/bin目录下catalina.sh文件中添加
JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx6144m -XX:NewSize=4096m -XX:MaxNewSize=8250m -XX:SurvivorRatio=8"
-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms:java Heap初始大小。 默认是物理内存的1/64
-Xmx:java heap最大值。建议均设为物理内存的一半。不可超过物理内存
-XX:NewSize: 新生成的池的初始大小
-XX:MaxNewSize: 新生成的池的最大大小
-XX:SurvivorRatio:两个Survivor区与一个Eden区的比值为2:8
