在Linux/Ubuntu中,CPU和内存(RAM)的使用情况以百分比表示。

3

我想要查看CPU和内存的整体使用情况,以百分比表示,但是我没有成功。

$ command for cpu usage
4.85%

$ command for memory usage
15.15%

或者

$ command for cpu and mamory usage
cpu: 4.85%
mem: 15.15%

如何实现这一点?

https://dev59.com/iGkv5IYBdhLWcg3wdQhT - Kris
5个回答

8

你可以使用procps软件包中的top和/或vmstat。 使用vmstat -s获取机器上的内存量(可选),然后使用top的输出来计算内存使用百分比。

%Cpu(s):  3.8 us,  2.8 sy,  0.4 ni, 92.0 id,  1.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 24679620 total,  1705524 free,  7735748 used, 15238348 buff/cache
KiB Swap:        0 total,        0 free,        0 used. 16161296 avail Mem 

您也可以对相对较短的输出执行此操作:

watch '/usr/bin/top -b | head -4 | tail -2'

定期计算当前RAM使用情况的shell管道是

watch -n 5 "/usr/bin/top -b | head -4 | tail -2 | perl -anlE 'say sprintf(\"used: %s   total: %s  => RAM Usage: %.1f%%\", \$F[7], \$F[3], 100*\$F[7]/\$F[3]) if /KiB Mem/'"

(此处过滤了CPU和Swap的使用情况。)
此命令每5秒打印一次:
Every 5.0s: /usr/bin/top -b | head -4 | tail -2 | perl -anlE 'say sprintf("u...  wb3: Wed Nov 21 13:51:49 2018

used: 8349560   total: 24667856  => RAM Usage: 33.8%

4

请使用以下其中之一:

$ free -t | awk 'NR == 2 {print "Current Memory Utilization is : " $3/$2*100}'
Current Memory Utilization is : 14.6715

或者

$ free -t | awk 'FNR == 2 {print "Current Memory Utilization is : " $3/$2*100}'
Current Memory Utilization is : 14.6703

1

CPU使用率 => top -bn2 | grep '%Cpu' | tail -1 | grep -P '(....|...) id,' | awk '{print 100-$8 "%"}'

内存使用率 => free -m | grep 'Mem:' | awk '{ print $3/$2*100 "%"}'


0
获取RAM已用的一行代码解决方案:
free -t | awk 'FNR == 2 {printf("%.0f%"), $3/$2*100}'

示例输出:24%

为了更精确,您可以在printf(%.<N>%)内更改整数N,以获取以前一个命令的2位小数精度,例如:

free -t | awk 'FNR == 2 {printf("%.2f%"), $3/$2*100}'

示例输出:24.57%


0

关于 CPU 使用率%,您可以使用以下命令:

top -b -n 1 | grep Cpu | awk -F "," '{print $4}' | awk -F "id" '{print $1}' | awk -F "%" '{print $1}'


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