今天中午吃完饭遇到的问题 问题描述: 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,这种情况该如何定位下一步?我还是想了解完整的问题,或者解决问题的思路
非常感谢。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.