我的程序采样/ proc数据,以获得有关系统CPU使用率的统计信息。 我对/ proc / stat进行采样并计算统计增量(以1秒为间隔), 我还会对进程/ proc / pid / stat用户标记和系统标记进行抽样。 这是我系统日志的一个例子:
From /proc/stat(total System)- UserTicksDelta: 9, niceTicksDelta: 0, SystemTicksDelta: 3, IrqTicksDelta: 0, SoftIRQDelta: 0, IdleTicksDelta: 0, iowaitTicksDelta: 71, sinceLastUpadteMilli: 1007
Process 18643 - userTicksDelta: 20, SystemTicksDelta: 3 SinceLastUpdateMilli: 1006
样本是一个接一个地收集的(它们之间没有延迟,我用日志的时间戳确认了它。)
正如您所看到的,用户滴答过程的增量大于总系统用户滴答增量。 另外你可以注意到iowait非常高,只有当IOWait很高时才会出现这个问题。
特定流程用户滴答delta的可能性是否大于整个系统?它可能与IOWait有某种关系?也许这个过程使用IOWait滴答作为用户滴答但是它被报告为IOWait而不是系统级别的用户滴答?
我在RedHat版本6.4上运行。
谢谢,汤姆。