书山有路勤为径,学海无涯苦作舟。

0%

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步打印的

线程栈中进行搜索, 就可以知道这个线程栈是做什么的了.

 

逐鹿IT, 猛猛如玉 wechat
扫一扫关注我,有惊喜不迷路
(转载本站文章请注明作者和出处: 逐鹿IT 猛猛如玉
网址: https://amonxu.com 微信公众号: itcraft
可以请我喝瓶水吗:)