Linux下CPU的利用率
这篇讲的是如何真正理解Linux系统下CPU时间的构成,从而看懂利用率背后的含义。文章从内核时间基础切入,解释了HZ(时钟中断频率)、tick(中断间隔)和jiffies(中断累计次数)这几个关键概念,为你打下理解的底子。 核心部分是将CPU时间拆解得明明白白:它并非一个整体,而是由用户态(User time、Nice time)、内核态(System time、Hardirq time、Softirq time)以及等待(Waiting time)、空闲(Idle time)和虚拟机偷取(Steal time)时间共同组成。文章直接给出了计算公式,让你能一一对应`top`命令输出中那些让人困惑的`%us`、`%sy`、`%id`等百分比,原来它们分别代表了不同时间段的占用情况。 作者最后指明,`top`、`iostat`、`vmstat`这些常用工具的数据源头都是`/proc/stat`文件,其中的时间单位就是tick。搞清楚这些组成,当看到系统卡顿时,你才能从高企的`%sy`判断是内核子系统瓶颈,还是从高`%wa`看出是I/O等待拖了后腿,让性能分析有据可依。