Cpu超频方法:在linux中计算多个进程的cpu使用情况的有效方法

我需要计算给定服务器上多个进程的 cpu 使用情况。

a)虽然我们可以使用ps来查找进程的 cpu 使用情况,但 ps 给出了进程在其生命周期内的 cpu 使用情况,而不是瞬间。

b) vmstat 不显示进程明智的 cpu 使用情况。

c)我们可以使用 top 来查找进程的 cpu 使用情况。

top-b-n 2-d 1 | grep 'mysqld' | tail-n1

对于 n = 1,顶部命令的行为更像 ps,其中它给出了自引导以来进程的 cpu 使用情况,因此使用 n = 2 并忽略第一行尾部将在该时刻给出 cpu 使用情况。

https://superuser.com/questions/609949/what-are-the-metds-available-to-get-the-cpu-usage-in-linux-command-line

但是忽略前几行将不适用于多个 grep 字符串(进程名称),并且在进程中可能并不总是出现在顶部,因为它们不断改变其状态。

top-b-n 2-d 1 | grep 'mysqld\ | apache' | tail-n1

因此,为多个进程执行此操作的一种方法是维护一个 map 类型的结构,然后只使用那些只出现第二次的进程的 cpu 使用。但不确定这是否有效。每次为一个特定的进程做一个顶部显然不够有效,我想或者它与单个顶部的多个进程的 grep 相同。

4)由于 top 内部使用 / proc / stats 信息,我们可以自己明确地实现这个逻辑。

How to calculate the CPU usage of a process by PID in Linux from C?

哪一个可能是更好的选择?

0

您应该使用0

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(623)
C#语言是什么:C#中的自动属性是什么它们的用途是什么
上一篇
各种披肩的样式和编织方法:删除本地 Git更改的各种方法(git force discard all local changes
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(23条)