0

我制作了一个服务器监控脚本,主要监控网络驱动器的使用情况和集群的工作状态。它非常基础,主要使用 unix 命令,例如 top、status、df 等。

我依赖使用运行良好的子进程,但是在繁重的工作量下它开始变得非常慢并且使用大量的 cpu 容量。最慢的部分是我从 status -a grep 用户并且他们有数千个作业正在运行。

脚本在无休止的 while 循环中运行。

图片可能会让你知道我在做什么

所以我正在寻找更有效的解决方案来做到这一点,任何帮助或提示将不胜感激。我正在使用 Python 2.7

4

1 回答 1

2

我可以建议您看一下iotop,尤其是使用 python 制作的源代码。

这背后的全球理念是不使用 unix 工具(top、df...),而是解析它们的信息源,即/proc

打开文件(尤其是在像 procfs 这样的内存文件系统中)比分叉进程以启动 unix 命令要快得多。

于 2013-09-05T13:21:12.077 回答