编程基础:CPU 资源监控
在工作中涉及一些系统资源管理相关的工作,针对 CPU 资源的获取和监控的一些实现和理论基础,会随着更多的理解进行更多的补充。
CPU 使用状态
系统平均负载
系统平均负载(Load Average)被定义为在特定时间间隔内运行队列中的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中[1]:
没有在等待 I/O 操作的结果
它没有主动进入等待状态(也就是没有调用
wait
)没有被停止(例如:等待终止)
该信息取自/proc/loadavg
,在 shell 端可以通过cat /proc/loadavg
来获取。
复制代码
第一个数字代表前 1 分钟 CPU 和 IO 的利用率
第二个数字代表前 5 分钟 CPU 和 IO 的利用率
第三个数字代表前 15 分钟 CPU 和 IO 的利用率
第四个数字分子代表当前正在运行的进程数,分母代表进程总数
最后一个数字代表最近运行的进程 ID。
CPU 调度
进程资源信息
Unix 提供了getrusage
系统调[2]用获取进程的资源信息。接口定义如下
复制代码
获取到的rusage
信息如下:
复制代码
参考资料
版权声明: 本文为 InfoQ 作者【正向成长】的原创文章。
原文链接:【http://xie.infoq.cn/article/435099c08d21ffe34b6c2a386】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论