/proc/stat中CPU数据信息,单位是ticks(1ms).

HZ

HZ的值,就是每秒的时钟中断数量。可以观察/proc/interrupts中时钟中断值变化,来计算HZ的值。某台机器上是RHEL6.1内核,配置的HZ值为1000时, ticks的单位即为1/1000秒,即1ms.

ticks

ticks (滴答)就是系统时钟中断的时间间隔,该值与内核中HZ值有关,即ticks =1/HZ, HZ值的大小,在内核编译时可配置的。

 

CPU、内存计算逻辑

(1) Linux CPU占用率是根据/proc/stat文件中的数据计算而来;

(2) /proc/stat中的数据精度为ticks,即1/HZ秒;

(3)内核每个ticks(1ms)会更新一次CPU使用信息;

(4) CPU占用率的精度为1/HZ秒

 

不准确的情况

进程调度次数少, CPU占用率就准确;

调度时间间隔小于时钟中断,就可能不准确,极少概率,可忽略。