谁霸占了cpu

作者: Woople | 来源:发表于2018-05-18 21:37 被阅读121次

当发现某个服务器的cpu使用率居高不下,这时就需要抓住谁是“真凶”。本文提供一种可以揭开真相的方法。

  1. 通过ps命令显示每个进程中线程的cpu使用率
>ps -Leo pid,lwp,user,comm,pcpu

PID   LWP USER     COMMAND         %CPU
    1     1 root     systemd          0.5
    2     2 root     kthreadd         0.0
    3     3 root     ksoftirqd/0      0.0
    5     5 root     kworker/0:0H     0.0
......
  1. 找到所有java进程,并按照第5列降序输出
>ps -Leo pid,lwp,user,comm,pcpu|awk '$4=="java"{print $0}'|sort -k5 -r -n|head --lines 3

 7114  7199 ocdp     java             0.4
28178 28205 root     java             0.4
 2046  2355 ocdp     java             0.3
  1. 这样就找到了cpu使用率最高的进程是7114中的线程7199,将线程id转为16进制printf %x 7199结果为1c1f
  2. 通过jstack 7114 > ~/7114.tmp将进程的堆栈信息输出到临时文件中
  3. 在临时文件中查找1c1f,会找到这个线程当前的状态,从而可以定位当相应的代码
"sparkDriverActorSystem-scheduler-1" #41 daemon prio=5 os_prio=0 tid=0x00007f649d661000 nid=0x1c1f waiting on condition [0x00007f646bbfc000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at akka.actor.LightArrayRevolverScheduler.waitNanos(Scheduler.scala:226)
        at akka.actor.LightArrayRevolverScheduler$$anon$8.nextTick(Scheduler.scala:405)
        at akka.actor.LightArrayRevolverScheduler$$anon$8.run(Scheduler.scala:375)
        at java.lang.Thread.run(Thread.java:745)

总结

本文介绍了一种结合psjstack命令查找最消耗cpu的java线程并定位到相应代码的方法。

相关文章

  • 谁霸占了cpu

    当发现某个服务器的cpu使用率居高不下,这时就需要抓住谁是“真凶”。本文提供一种可以揭开真相的方法。 通过ps命令...

  • 谁占了便宜?

    今天是我的生日。 作为一个年过三旬的女人,谁愿意过什么生日啊?可是拗不过我家的两个男生,非要请我出去吃饭。 我喜欢...

  • 谁占了谁的思想

    "那是我第一次杀人!",汪姱讲完自己的故事,长长舒了一口气,明亮的眼睛,大片的留白闪着一点晶莹,光滑白皙的...

  • 1

    冬天上课去,我帮霸霸占了座,霸霸坐下以后说这凳子是热的?我说对呀对呀,好冷啊,幸亏凳子是热的,霸霸皱皱眉说我不喜欢...

  • 厉国刚 | 网络“人肉”时代,“座霸”会消失吗

    厉国刚 |网络“人肉”时代,“座霸”会消失吗 出门旅行,你遇上过“座霸”吗?座霸就是没经过你的同意,霸占了你的座位...

  • 到底谁占了谁的便宜

    最近在一个群里聊到了,暴雪和魔兽。因为原来魔兽争霸里面有一个游戏编辑器可以生成rpg自定义地图。所以说原来魔兽的精...

  • 谁占了我的书柜,我又占了谁的书柜?

    校图书馆闭馆之前,匆匆将图书馆常驻书籍装进袋子准备放入刚刚申请好的书柜中,却发现,一摞无名氏兄弟的书在里面睡得正...

  • python多线程爬取

    科技在发展,时代在进步,我们的CPU也越来越快,CPU抱怨,P大点事儿占了我一定的时间,其实我同时干多个活都没问题...

  • 阿里云面试官:如果是 MySQL 引起的CPU消耗过大,你会如何

    谁在消耗cpu? 祸首是谁? 用户 IO等待 产生影响 如何减少CPU消耗? 减少等待 减少计算 升级cpu 谁在...

  • 谁累?谁占了生活的便宜?

    朋友喝醉了,表情茫然纠结,话语零碎散乱,手脚无处安放,眼神空洞,头上有白发刺眼,脸上有肌肉松弛。坐在那里,他身上表...

网友评论

    本文标题:谁霸占了cpu

    本文链接:https://www.haomeiwen.com/subject/nrsndftx.html