我们正面临生产服务器上随机高CPU利用率的一个问题,这使得应用程序无响应。我们需要重新启动应用程序。我们已经进行了初步水平诊断,但无法得出结论。
我们正在使用以下配置生产服务器
以下两个结果是顶部命令
1)下午6:52:50
KiB Mem : 8173968 total, 2100304 free, 4116436 used, 1957228 buff/cache
KiB Swap: 1048572 total, 1047676 free, 896 used. 3628092 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20698 root 20 0 6967736 3.827g 21808 S 3.0 49.1 6:52.50 java
2)下午6:53:36
KiB Mem : 8173968 total, 2099000 free, 4116964 used, 1958004 buff/cache
KiB Swap: 1048572 total, 1047676 free, 896 used. 3627512 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND
20698 root 20 0 6967736 3.828g 21808 S 200.0 49.1 6:53.36 java
注意:
并发用户数 - 5或6(此时)
下午6:52:50至下午6:53:36之间的请求数量 - 4
结果显示CPU利用率急剧增加。
任何可以导致解决方案的建议或方向?
答案 0 :(得分:1)
在没有看到堆栈跟踪的情况下,我猜测问题可能是Jetty,因为Jetty中最近记录的错误导致您在EC2上描述的行为(对此进行谷歌搜索。)。我建议你在100%cpu期间做几个堆栈跟踪转储,确认它是Jetty,那么如果你看看关于这个bug的Jetty文档,希望你可能会发现你只需要更新Jetty。