linux检查是否有D进程,Linux的CPU-Load虚高之进程的D状态

写在前面

前几天从同事手里接盘了一个 HHKB 的键盘,虽说是顶级的配置,但是如果不提一句的话估计大家都不会意识到码出这篇博文的工具如此高大上,同时意味着我要持续吃土小半年了。

就像之前博文提到的,我工作的重心从业务开发逐渐向基础平台建设转移,关注的点从 CPU 和内存变成了更为宏观的系统架构、稳定性、性能等。一方面需要站的足够高,如此才能理清楚系统的整体脉络,避免在解决一个棘手问题的时候再引入另一个棘手问题;另一方面要看的够细,既要知其然也要知其所以然,如此才能保证方案中选用的组件是满足需求的。

本文将对 Linux 中进程的 D 状态( uninterruptible sleep)进行简单的探索,并探究由其引起的 CPU-Load 虚高的现象及影响。

适用人群

入门——初级——中级√——高级;本文适应中级及以上。

Linux中进程的D状态会引起CPU-Load虚高

有一天我去检查机器的负载,发现其中一台服务器的负载非常高,CPU 的 load-average 达到了 19 以上,查看机器的配置却只有4个 cpu 核,且这种状态已经持续了一段时期。这和我以往获取到的常识是相悖的;按照 Linux 的设定,4 个 CPU 核的正常 load-average 不应该大于 4,如果大于 4 很大程度上说明存在 IO 瓶颈。蹊跷的是出现这种负载异常的服务器除了数据有点难看,并未表现出明显的超负载现象,这就引起我很大的兴趣进一步追查其原因。

Linux中的CPU-Load-Average

在 Linux 系统中,我们可以通过好几种方式查看 CPU 的平均负载情况,比如 w 命令,比如top 命令 ,都会

你可能感兴趣的:(linux检查是否有D进程)