tomcat CPU使用率高的原因分析
tomcat使用的是电脑的80端口。
当客户端访问的时候就会,会和服务器端的80端口建立连接。
现在在做压力测试。当多个用户访问的时候,服务器端的80端口就会被一直被连接占用着,导致服务器端的CPU很容易就飙升到100%。
连接数据库用的是tomcat连接池。
可能性分析:
80被长期占用,因为tomcat会启动连接池,注意是tomcat的连接池,不是数据库连接池,
这个连接池用来处理外面访问tomcat的链接,默认是25个
你可以到 tomcat/conf/server.xml里面看到
至于服务器端的CPU很容易就飙升到100%
这个是
1 你的程序运行速度慢,导致一直使用cpu,一般是算法问题
2 你的程序有死循环
3 数据库有问题,不过一般都是设计或者编码的问题
4 硬件太差了,内存太小,(可能行不大)
5 负载过高
ps:
1: 首先把JDK Linux版本上传到服务器上.
2: 使用命令 jstack PID 命令打印出CPU占用过高进程的线程栈.
3: 使用top -H -p PID 命令查看对应进程是哪个线程占用CPU过高.
4. 把第三步占用CPU过高的pid值转换为 16 进制, 然后在第2步打印的
线程栈中进行搜索, 就可以知道这个线程栈是做什么的了.