3、单独进程cpu状况分析
当我们知道cpu整体状况,以及哪些进程占用cpu以后,我们就可以对系统进行优化,对那些使用cpu过多的进程进行调试和分析,帮我们优化程序的性能。
a、strace
这个命令是用来分析进程系统调用的。比如,我们分析一下cat这个命令,都用了哪些库和哪些系统调用,就可以用strace cat output.txt:
处理分析命令以外,他还能touch到线上正在运行的进程进行分析。
比如18165这个进程就一直在调用gettimeofday和epoll_wait。
b、java的jstack
这个工具是java提供的用来分析java进程的工具。可以看当前进程的线程栈调用情况。
这就能很好的帮我们分析,如果某个java程序cpu占用过高或者卡死了,到底是哪个地方出了问题。
有了以上这些工具,我们定位cpu的问题,基本就是水到渠成。如果用他们行走江湖,基本上能解决80%的问题:从cpu的总体情况,到cpu的使用情况,再到具体进程的情况,最后到进程的分析,都基本能涵盖。不知你觉得如何呢?