如何使用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以处理物理机器的工作负载。
如何在Linux上检查和监控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