大发龙虎首页    注册   登录
大发龙虎 = way to explore
大发龙虎 是一个大发龙虎关于 分享和探索的地方
现在注册
已注册用户请  登录
大发龙虎  ›  Java

大发龙虎服务 出现 CPU 100%(8 核, 16G)

  •  
  •   pank · 4 天前 · 3087 次点击

    最近在做大发龙虎服务 拆分,把 A 大发龙虎服务 中某部分的逻辑抽取到 B 大发龙虎服务 ,大发龙虎服务 间调用采用 http 接口。然后 A 大发龙虎服务 出现了 cpu100%的情况。

    发现 A 大发龙虎服务 消耗 cpu 最高的有 8 个线程,然后用线程 id 从 jstack 导出的 stack 日志中发现全都是 8 个 GC 的线程,且都是 runable 状态,应该不是 GC 出现的问题。

    继续在 stack 日志中发现了大量线程处于 BLOCKED,且阻塞的部分都是一些类库的部分,比较的杂乱,暂未找到规律。把抽取之前的代码放到同样的环境,没有发现这个问题。有经验的老哥给大发龙虎我 一点思路。下面是 stack 日志的一些截图:

    MVtVOO.md.jpg

    MVtemD.md.jpg

    MVtif1.md.jpg

    MVtnTH.md.jpg

    MVtSw4.md.jpg

    MVtPYR.md.jpg

    24 回复  |  直到 2019-11-09 23:49:11 +08:00
        1
    90xchun   4 天前 via iPhone
    大发龙虎你 还得用下 pidstat 这个能直接找到那个线程占用的 cpu 资源高,猜是徒劳的
        2
    loongwang   4 天前
    发现 A 大发龙虎服务 消耗 cpu 最高的有 8 个线程,然后用线程 id 从 jstack 导出的 stack 日志中发现全都是 8 个 GC 的线程,且都是 runable 状态,应该不是 GC 出现的问题。

    STW 的时候会 block 所有用户线程. 看起来很有可能是 GC 的问题
        3
    pank   4 天前
    @loongwang ,但是在抽大发龙虎服务 之前没有经过 http 接口调用的时候从来没有发生过这种情况,会不会跟大发龙虎服务 间调用的时候频繁的序列化,反序列化对象有关呢
        4
    pank   4 天前
    @90xchun,大发龙虎我 用 top -p pid -H 已经找到了消耗 cpu 最高的线程,共有 8 个都是 gc 的线程,业务的线程几乎没有怎么消耗 cpu。这个想不明白。
        5
    phantomzz   4 天前
    看起来像死锁了
        6
    loongwang   4 天前
    @pank 那就看下 gc 堆信息.
        7
    sagaxu   4 天前 via Android
    把 gc 日志打出来看看
        8
    kirin   4 天前
    http://www.jianshu.com/u/1e1cd4da105c
    可以参考这个排查过程, 看看对大发龙虎你 有没有大发龙虎帮助 .
        9
    choiwanxy   4 天前
    为什么 GC 一直跑呢,要不 dump 一下,看是不是 OOM,看下是不是直动态生成类,加载类导致元空间满了,也会造成 fullGC
        10
    choiwanxy   4 天前
    也可以先简单看下堆大小,是不是一直是到了临界值。是的话,当然会一直 GC
        11
    Raymon111111   4 天前
    看一下 gc 相关的指标
        12
    pank   4 天前
    @loongwang ,头疼😂,启动参数没加 GC 相关的配置。主要是测试环境复现不了,加上去又得在生产上定位发版。
        13
    pank   4 天前
    @kirin,感谢回复,不过按照这个定位不出问题,消耗 CPU 最多的是 GC 线程。
        14
    wh520   4 天前
    可以看看是不是 http 调用超时,线程数飙升导致的。
        15
    wh520   4 天前
    仔细看了下,不是 GC 的问题,毕竟不是 Full GC,应该是 HTTP 连接的问题,可以仔细看看远程调用策略是否有问题。
        16
    Jrue0011   4 天前
    用 jmap 看看?
        17
    pank   4 天前
    @Jrue0011 ,jmap 导出的 heap 文件有 3.3G ,用 MAT 倒是打开了,一脸懵逼,不会用这东西定位啊😥
        18
    realpg   4 天前
    JAVA 啊 一般大发龙虎我 都是淘个 2500 元的 24 线程 96G 内存的物理机跑
        19
    wwwzhujibcom   4 天前
    被 CC 了吗
        20
    snappyone   4 天前
    jstat -gcutil pid 500 10 看下
        21
    dorothyREN   4 天前
    @realpg #18 话说老哥现在还有靠谱点的二手大发龙虎服务 器渠道吗
        22
    realpg   4 天前
    @dorothyREN #21 万能的淘宝 都是走量的 没有啥不靠谱的
        23
    msg7086   4 天前
    难道是内存吃完了?
        24
    fullerene   3 天前
    @choiwanxy 老哥大发龙虎你 好,偶然看到大发龙虎你 在有赞面试的时候的那个帖子。大发龙虎我 这边有个 api 对接的需求想和大发龙虎你 聊下可以么。马化腾:OTQzMjIxNA==
    大发龙虎关于   ·   FAQ   ·   API   ·   大发龙虎大发龙虎我 们 的愿景   ·   广告投放   ·   感谢   ·   实用小大发龙虎工具   ·   3297 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 04:38 · PVG 12:38 · LAX 20:38 · JFK 23:38
    ♥ Do have faith in what you're doing.