2009年3月15日星期日

WLS_039:常见故障之七:High CPU

1. 典型现象
(1)某个进程/线程长时间“独霸” CPU,导致其它进程“挨饿”。
(2)响应时间越来越长。
(3)响应超时或没有得到响应。

2. 观察CPU使用情况
(1)Unix 平台上:iostat <interval>。
(2)
Windows平台上,Task Manager 或 Perfmon 。
3. 诊断步骤
(1)找到CPU占用率接近 100% 的进程号,即WebLogic Server实例进程号。
如果是Windows平台,使用Task Manager(增加PID列)。


如果是Unix平台,使用ps -ef | grep weblogic。
2)使用pslist -d <WLS_PID>查找哪个线程正在忙(状态为Running的线程号),记录下来。
关于pslist的使用说明,请参考《PsTools工具箱介绍》。
(3)用计算器,把该线程号转换成16进制。
(4)查看Thread Dump,找到该线程号(16进制),看看该线程到底在作啥?


4. 如何模拟High CPU
(1)Christopher W. Cowell-Shah写了测试9种语言的Benchmark程序,真是个牛人!
详细信息请浏览http://www.osnews.com/story/5602。有时间我在另文专述他的Benchmark设计。

没有评论: