当我们在linux服务器上用top命令发现Java进程CPU占用很高时, 我们可以使用以下命令查看Java程序中每条Thread CPU的使用情况:
# ps -C java -L -o pcpu,cpu,nice,state,cputime,pid,tid | sort
OR
# ps -C <process ID> -L -o pcpu,cpu,nice,state,cputime,pid,tid | sort
为了定时去查看每条Thread CPU的使用,如每秒输出一次,使用以下Shell Script
[root@ip tmp]#vi cpu.sh
!/bin/sh
while [ true ]; do
/bin/sleep 1
ps -C java -L -o pcpu,cpu,nice,state,cputime,pid,tid | sort
done
执行cpu.sh
[root@ip tmp]#chmod 755 ./cpu.sh
[root@ip tmp]#./cpu.sh
每秒输出如下
0.1 - 0 S 00:25:42 28009 28315
0.1 - 0 S 00:25:42 28009 28363
0.1 - 0 S 00:25:42 28009 28368
0.1 - 0 S 00:25:42 28009 28502
0.1 - 0 S 00:25:42 28009 28503
0.1 - 0 S 00:25:43 28009 28327
0.1 - 0 S 00:25:43 28009 28494
0.1 - 0 S 00:25:43 28009