CPU占用分析

  1. 用TOP命令很容易定位到时谁占用CPU最高
    多线程

  2. 多线程的进程,咱们要知道实际上占用cpu的最小单位是线程,因此确定是众线程中的某一个或几个占用CPU太高致使的。top -H -p pid命令查看进程内各个线程占用的CPU百分比
    oop

  3. 如上图所示咱们能够看出id为8863的线程cpu占用率最高。好,咱们如今只要能找到他偷走的cpu就行了,虽然这小子嘴巴严,可是咱们有一套完善的审问流程,不怕他不招。首先出马的是strace -T -r -c -p pid命令

    它的做用是查看系统调用和花费的时间,epoll_wait虽然占用的调用时间多,可是他自己是个正常的阻塞调用。线程

  4. 咱们接着让pstack pid出马

    能够看到每一个线程的调用堆栈,找到已经找出的占用CPU最高的那个线程,而后看他的调用堆栈,很容易看出在哪一步逻辑上致使了busy loop,
    再使用trace -p tid看看线程的调用过程接着定位到代码,修复bug,找回被偷走的cpu。blog

相关文章
相关标签/搜索