当系统开着的时候,后面跑着很多服务进程,这些进程并不老老实实的呆着,而是偷偷摸摸的做些事情,使用top看,就会发现偶尔某个进程占CPU很高。我们应该如何优化这样的进程呢?
主要有两种方法:
1、使用strace,attach到进程上,查看其系统调用。通过打印出的系统调用,能够查看出在这个过程中进程做了什么事情。
2、使用gdb和oprofile,先使用oprofile来定为该进程的CPU主要是花在了哪个库和哪个函数,能初步进行分析;然后再对具体可以的函数使用gdb,attach住该进程,查看到该函数的栈信息。
上面两种方法,基本上可以定为某一进程周期性CPU尖峰的原因,从而进行优化。
阅读(1067) | 评论(0) | 转发(0) |