如何从shell中确定当前的CPU利用率?

13 浏览
0 Comments

如何从shell中确定当前的CPU利用率?

我怎么从Linux的shell中确定当前的CPU利用率?\n例如,我可以通过以下方式获取负载平均值:\n

cat /proc/loadavg

\n输出结果为:\n

0.18 0.48 0.46 4/234 30719

0
0 Comments

你可以使用top命令来读取CPU的值并退出。使用top命令时加上-b参数。

如下所示:

$ top -b

这会使top命令在命令行中打印出CPU的使用情况,然后立即退出,这样你就可以解析输出的结果了。

不幸的是,你需要立即退出以便解析输出。希望在/proc目录中有一个文件可以读取。

你可以通过读取/proc/stat文件来获取CPU的使用情况。该文件包含了系统启动以来的CPU统计信息。

你可以使用以下命令来查看CPU使用情况:

$ cat /proc/stat | grep cpu

输出的结果将会显示所有的CPU核心的统计信息,包括用户态、系统态和空闲时间等。

你也可以使用以下命令来计算CPU的使用率:

$ cat /proc/stat | grep 'cpu ' | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'

这将计算出CPU的使用率,并以百分比的形式输出。

希望这些方法能够帮助你确定当前的CPU利用率。

0
0 Comments

如何从shell中确定当前CPU利用率?

我们可以使用top或ps命令来检查CPU使用情况。

使用top命令:这将显示CPU统计信息

top -b -n 1 |grep ^Cpu

使用ps命令:这将显示每个进程的% CPU使用率。

ps -eo pcpu,pid,user,args | sort -r -k1 | less

此外,您可以编写一个小的bash或perl脚本来读取/proc/stat并计算CPU使用率。

我们尝试过,"top -b -n 1"给出的结果非常不准确。"top"的第一次迭代非常粗略,可能会给出10%而不是60%。

增加迭代次数,使用-n > 1会更精确吗?你测试过这种情况吗?

top对%CPU的计算与ps对%CPU的计算不同。参考这个答案:unix.stackexchange.com/questions/58539/top-and-ps-not-showing-the-same-cpu-result

top -b -n 2|grep Cpu|tail -n 1|cut -d ' ' -f 7|cut -d '%' -f 1

0
0 Comments

在Linux中,没有任何系统变量可以提供当前的CPU利用率。相反,您需要多次读取/proc/stat文件:每个cpu(n)行中的每一列都给出了总的CPU时间,您需要连续读取它以获取百分比。请参阅这个文档,了解各个列的含义。

如果这是真的,那么为什么Space的答案有效呢?

因为Space的答案并不起作用。它返回自进程启动以来的平均CPU使用率,而不是当前的CPU使用率。这个答案才是正确的解决方法。

0