暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于服务器java应用耗尽CPU的分析

zayki 2025-02-08
53
  1. top发现占用cpu最高的进程pid
    image.png

  2. 使用top -Hp + {pid}命令查看占用最高的线程id号
    image.png

  3. 使用jstack命令收集堆栈信息。
    jstack -l 2552622 > 2552622.txt

  4. 过滤线程ID
    [itadmin@zht-ztgwv1-pro-app-1 ~]$ printf %x 2552626
    26f332

grep -10 26f332 2552622.txt
image.png

可以发现是并行gc线程占用cpu高。

  1. 使用jcstat命令查看gc情况
    jstat -gcutil 2552622 2000
    image.png

从gc状态进一步确认,应该是应用jvm分配的内存消耗尽了,导致full gc频繁,消耗cpu。

优化建议,增加jvm大小。-Xms2g -Xmx2g 变为-Xms4g -Xmx4g

最后修改时间:2025-02-08 14:08:29
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论