Linux CPU使用率

3

我正在处理unix相关的工作。 我想知道一个进程的当前CPU使用情况。 我了解到ps命令会给出该进程运行期间平均使用的cpu - 它不是当前的使用情况。

有没有一种方式可以只打印top命令中的cpu使用情况而不包括其他10个参数和标题?我知道如何使用awk来处理 - 但这不是我想要的方式。

top  -p 20705 -bc -n 1  | tail -n 2 | awk '{ print $9}' | head -n 1

如果有其他简单的方法来完成它,而不是读取/proc/stat... 如果有从C++中实现它的简单方法也可以。

为什么你不想读取 /proc/stat... - Jan Spurny
1
据我所知,目前没有标准命令可以直接实现此功能。 - scai
据我所知,顶部显示的百分比是调度程序安排该进程运行的时间百分比。它不是CPU使用率的百分比。也许这有些微不足道,但我认为值得一提。虽然它们很可能非常相似,但我可以想到它们可能不同的情况。 - Homer6
返回“signal 11 (SEGV) was caught by top, please send bug reports to procps@freelists.org - alper
2个回答

4
很可能,您需要读取/proc/stat文件。不过,这里有一篇有趣的C语言文章,或许能帮到您。为了理解和使用程序输出,您应该执行man 5 proc命令。这里是源代码
总之,您需要从/proc/stat文件中读取内容来实现您想要的功能。

0

查看进程ID为24556的CPU使用情况

ps -p 24556 -o \%cpu=

查看名为syslogd的进程的内存使用情况

ps -C syslogd -o \%mem=

1
我理解 ps 命令给出的是进程运行期间 CPU 平均使用率,而不是当前使用率。 - yaron
这将不返回任何内容。 - alper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接