如何使用top检查CPU使用率
检查当前CPU使用率的好方法是使用“top命令”。
$top
第一行显示(按顺序):系统时间,系统正常运行时间(自上次重启以来多长时间),活动用户会话数,以及系统的负载平均值。
负载平均值有三个数字。
这些数字分别为1,5和15分钟的平均负荷。
将这些数字视为百分比 - 0.2的负载意味着20%,载荷为1.00表示100%。
top中CPU使用说明:
- us:用户空间中花费的CPU时间百分比(运行用户生成的进程)。
- SY:内核空间中花费的CPU时间的百分比(运行系统进程)。
- ni:在使用用户定义优先级的运行进程上花费的CPU时间百分比(指定的好值)。
- ID:CPU时间空闲空闲的百分比。
- WA:从硬件等待I/O等待的CPU时间百分比。示例:等待硬盘驱动器完成读取数据。
- hi:CPU时间花费处理硬件中断的百分比。示例:网络卡(或者任何硬件)中断CPU以通知它新数据已到达。
- SI:CPU时间花费处理软件中断的百分比。示例:中断CPU的高优先级服务。
- ST:从虚拟机中偷走的CPU时间的百分比。示例:从虚拟机“窃取”资源所需的CPU以处理物理机器的工作负载。
如何配置监控警报
我们可以使用下面的简单脚本,每分钟监控CPU使用率,如果使用率过高,则发送警告电子邮件。
#!/bin/bash CPU=$(sar 1 5 | grep "Average" | sed 's/^.* //') CPU=$( printf "%.0f" $CPU ) if [ "$CPU" -lt 20 ] then echo "CPU usage is high!" | sendmail admin@example.com fi
添加到cron任务中:
$crontab -e
添加下面行,每分钟运行一次脚本:
* * * * * /path/to/cpu-alert.sh
更多检查CPU利用的方法
我们可以使用更多的工具来检查CPU使用情况,它们包含在Sysstat包中。
首先安装此软件包:
Ubuntu和Debian:
$sudo apt-get install sysstat
CentOS和Red Hat:
# yum install sysstat
安装Sysstat包后,我们可以使用mpstat命令
user@ubuntu1:~$mpstat Linux 5.0.0-23-generic (ubuntu1) 01/16/2016 _x86_64_ (1 CPU) 02:31:05 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 02:31:05 AM all 1.41 0.05 0.40 0.04 0.00 0.00 0.00 0.00 0.00 98.09
该软件包的另一个命令是sar
。
每4秒检查CPU使用率:
$sar 4
输出将如下所示,每4秒输出新的一行:
user@ubuntu1:~$sar 4 Linux 5.0.0-23-generic (ubuntu1) 01/16/2016 _x86_64_ (1 CPU) 02:33:24 AM CPU %user %nice %system %iowait %steal %idle 02:33:25 AM all 9.09 0.00 0.00 0.00 0.00 90.91
要在一定数量的输出后停止sar,请指定第二个数字。
例如:
$sar 2 5
每2秒检查CPU一次,共检查5次
日期:2020-07-07 20:56:10 来源:oir作者:oir