大家好,我又来问问题了。load 很高, CPU 使用率很低,大家帮我分析一下原因? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
a663
V2EX    程序员

大家好,我又来问问题了。load 很高, CPU 使用率很低,大家帮我分析一下原因?

  •  
  •   a663 2018-12-19 20:24:41 +08:00 6664 次点击
    这是一个创建于 2558 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天中午吃完饭遇到的问题 问题描述: dev 环境,开发忽然反映他的 docker 应用 restart 不了,也停止不了,使用 htop 直接黑屏

    初步诊断: top 查看,load 28 左右,但是所有核心的 CPU 使用率那一行,idle 几乎接近 100%(是所有核心), swap 仅剩几十 M

    开始怀疑是 load 高,就先把其他吃 cpu 的程序关了试试把 load 降下来先,然后发现并没有降下来。

    反而定位过程执行的诸如 ps,htop top 进一步分析,load 高的主要原因是 R ( Running )和 D ( Uninterruptible sleep )状态进程等待导致。 ps -eTo stat,pid,tid,ppid,comm --no-header | sed -e 's/^ *//' | perl -nE 'chomp;say if (m!^\S*[RD]+\S*!)' 发现 D 状态的就有那个无法操作的 docker 程序的 node 进程,以及前面卡死的 ps,htop 等进程。 D 状态进程是由于在等待 Io (磁盘或者网络) 查看 io,没发现磁盘有大量读写出入,网络也没有 机房检查硬盘,没问题,也试过写入文件和删除,都正常

    这里我已觉得是磁盘有问题,但是不清楚下一步高如何去定位。

    后面开发急着使用,就只能给他们重启服务器了( D 状态进程,无法 Kill ) 重启后,一切恢复正常。

    请问有经验的 V2er,这种情况该如何定位下一步?我还是想了解完整的问题,或者解决问题的思路

    非常感谢。

    9 条回复    2018-12-20 09:20:30 +08:00
    kevin1234
        1
    kevin1234  
       2018-12-19 20:29:47 +08:00
    先停掉一切可以停掉的应用再看 不然现在你操作不了 也看不到。
    a663
        2
    a663  
    OP
       2018-12-19 21:24:21 +08:00 via Android
    @kevin1234 可我现在不能停呀
    BraveRBT
        3
    BraveRBT  
       2018-12-20 00:21:45 +08:00
    啊哈,是一个常见问题了
    这个问题来自对 load 的错误看法,我觉得确实是这样的...

    其实 load 反应的并不只是” CPU 忙碌程度“,而是目前状态 R 的程序数量或者等待 I/O 的程序
    关于这个的具体说明请 man proc, 查看段落关键字 /proc/loadavg

    其实你的猜想是部分正确的,这个问题极有可能是因为非常高的%wa 时间导致
    同时也有可能是 docker daemon 尝试重启而 hang 住导致的,下次分析的时候可以看看多个维度的指标和数据
    chickplilita
        4
    chickplilita  
       2018-12-20 00:24:55 +08:00
    load 高,cpu 低,就是在等 io 网络或者磁盘的。磁盘要么是 hang 住了,可以看 dmesg 里面的错误。网络的等待就要具体看了。
    chickplilita
        5
    chickplilita  
       2018-12-20 00:25:29 +08:00
    perf analysis

    https://medium.com/netflix-techblog/linux-performance-analysis-in-60-000-milliseconds-accc10403c55

    这个是所谓的 60 秒分析大法。

    uptime
    dmesg | tail
    vmstat 1
    mpstat -P ALL 1
    pidstat 1
    iostat -xz 1
    free -m
    sar -n DEV 1
    sar -n TCP,ETCP 1
    top
    BraveRBT
        6
    BraveRBT  
       2018-12-20 00:33:15 +08:00
    补充上面的一句话,少说了一个词:”其实 load 反应的并不只是” CPU 忙碌程度“,而是目前状态 R 的程序数量或者等待 I/O 的程序数量之和(也就是你说的状态 D 的进程)“

    另外似乎某些时候文件系统 inode 被耗尽或者磁盘满了也有可能导致这样的问题。
    下次再遇到这样的问题可以试试获取更多信息研究一下,说不定就能找到问题的根本所在了。

    htop/top/ps/iotop/iostat 在这些时候都能发挥作用,综合他们的数据来分析问题吧。
    imfannet
        7
    imfannet  
       2018-12-20 08:16:12 +08:00
    据本菜鸡日常折腾的情况 高负载低 CPU 一般都是硬盘的锅 比如队列 100% 读写延迟爆表之类的。。。
    Bardon
        8
    Bardon  
       2018-12-20 08:30:01 +08:00
    哦,经常遇到
    docker 是个好东西,但是 docker 的文件系统性能真的不敢恭维,哪怕是 overlay2
    sagaxu
        9
    sagaxu  
       2018-12-20 09:20:30 +08:00 via Android   1
    swap 仅剩几十 M 能不卡吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2453 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 02:34 PVG 10:34 LAX 18:34 JFK 21:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86