如何检查和监控Linux系统的CPU利用率

作为Linux管理员,密切关注服务器(或多个服务器)的运行情况非常重要。衡量其性能的一种方法是跟踪CPU使用情况。这将使您深入了解系统的性能,并显示硬件资源是如何在不同的运行服务中分配的。

在本指南中,我们将介绍几种检查和监控Linux系统上CPU利用率的方法。无论您是管理服务器还是只是管理您的个人桌面,计算机的CPU使用情况都是很容易获得的有用信息。

在本教程中,您将学习:

  • 如何使用top命令检查cpu利用率
  • 理解top和htop的输出
  • 使用systat包监控cpu使用情况
  • 如何配置cpu监控报警

如何使用top命令检查cpu利用率

检查当前CPU使用情况的一个好方法是使用top命令。这个命令的很多输出相当复杂,但它提供了关于系统上CPU使用情况的非常细粒度的信息。

$ top

这将在终端中打开一个显示,其中包含系统上运行的服务的实时视图、每个服务正在使用的系统资源数量,以及系统CPU利用率的总结等信息。
在这里插入图片描述

注意: top命令在所有Linux发行版中基本上都是一样的,尽管有一些变体可能会显示一些不同的信息——例如,以不同的顺序。

安装在Ubuntu系统上的top程序来自procps-ng包,这也是我们将在本文中使用的程序。要检查你的系统运行的是什么版本,使用-v选项:

$ top -v

期望结果:

procps-ng 3.3.12

top命令的显示窗口一开始并不是很友好,因为它包含了大量的信息以及使用了很多术语和缩写。我们将在下面介绍你需要知道的一切,这样你就可以从上面解释数据含义。

第一行显示(按顺序):系统时间,系统运行时间(距离上次重启有多长时间),活动用户会话数量,和系统的平均负载。平均负载对我们来说特别重要,因为它揭示了系统随时间变化的cpu使用情况。
在这里插入图片描述
Load average

平均负载有三个数字。这些数字分别是1分钟,5分钟和15分钟内的平均负载。将这些数字视为百分比—负载0.2表示20%,负载1.00表示100%。

这应该很容易理解,但你可能看到平均负载大于1.00.这是因为平均负载不是对cpu使用的直接度量。而是对系统试图处理的“工作”(负载)的度量。例如,值为2.50表示当前负载为250%,也表示系统过载高达150%。

top的第二行不言自明,显示系统上运行的任务数量,以及它们的当前状态。

第三行是我们查看cpu使用情况的地方,一些需要一点知识才能解释的详细统计数据。

在这里插入图片描述
CPU usage from top

  • us: 花费在用户空间上的CPU时间百分比 (running user-spawned processes)。
  • sy: 花费在内核空间的CPU时间百分比(running system processes)。
  • ni: 运行用户定义优先级的进程所花费的CPU时间百分比(a specified nice value)。
  • id: CPU空闲时间的百分比。
  • wa: 用于等待硬件I/O的CPU时间百分比。例如:等待硬盘读完数据。
  • hi: 用于处理硬件中断的CPU时间百分比。例如: 网卡(或任何硬件)中断CPU以通知它有新数据到达。
  • si: 用于处理软件中断的CPU时间百分比。例如:高优先级业务导致CPU中断。
  • st: 从虚拟机窃取的CPU时间百分比。例如: 为了处理物理机的工作负载,需要从虚拟机“窃取”资源的CPU

接下来的两行专门用于内存信息,与监控CPU使用无关。在它下面,有一个正在运行的进程列表和一个标题为%CPU的列,其中包含所列每个进程的当前CPU使用情况。
在这里插入图片描述
CPU usage percentage

这可以快速查看哪些服务消耗了最多的CPU资源。按“q”可以随时退出top。

使top更简单

由于top命令显示了大量详细信息,因此它不是快速查看CPU利用率的理想方法;然而,top为我们提供了一些选项来简化输出并节省一些复杂的细节。

top运行时,您可以按“t”键循环访问一些不同的视图,并获得更简单的CPU使用情况输出:
在这里插入图片描述
CPU usage graph

另一种选择是使用htop,它与top类似,但更适合于普通任务。您可以使用包管理器来安装它。

Ubuntu and Debian:

$ sudo apt-get install htop

CentOS and Red Hat:

# yum install htop

Fedora:

# dnf install htop

安装完成后,只需键入htop即可打开它

$ htop

在这里插入图片描述
从上面的截图可以看到,与top相比,htop的输出更简洁,更适合用于简单的CPU使用情况度量。
您可以退出此屏幕的方式与top相同,按’ q '。

检查CPU利用率的更多方法

还有一些工具可以用来检查CPU使用情况,它们包含在sysstat包中。您必须安装这个包才能使用这些命令。

Ubuntu and Debian:

$ sudo apt-get install sysstat

CentOS and Red Hat:

# yum install sysstat

一旦安装了sysstat包,您就可以使用mpstat命令。这显示了许多与top相同的信息,但以简洁的一次性输出。

[root@localhost ~]# mpstat
Linux 3.10.0-1062.el7.x86_64 (localhost.localdomain)    2021年08月19日  _x86_64_        (1 CPU)

15时19分17秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
15时19分17秒  all    0.62    0.00    1.39    0.01    0.00    0.01    0.00    0.00    0.00   97.97

这个包附带的另一个命令是sar,当在命令中加上一个数字时,它最有用。这允许您指定sar命令输出CPU利用率信息的频率(以秒为单位)。

例如,每4秒检查一次CPU占用率:

$ sar 4

输出如下所示,每4秒输出一行:

[root@localhost ~]# sar 4
Linux 3.10.0-1062.el7.x86_64 (localhost.localdomain)    2021年08月19日  _x86_64_        (1 CPU)

15时21分09秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15时21分13秒     all      1.25      0.00      2.00      0.00      0.00     96.75
15时21分17秒     all      1.01      0.00      2.01      0.00      0.00     96.98
15时21分21秒     all      1.75      0.00      3.00      0.00      0.00     95.25

要使sar在一定数量的输出后停止,请指定第二个数字。例如:

$ sar 2 5

这将使sar每2秒检查一次CPU使用情况,共5次。它还将在输出的末尾显示所有5个探测的平均值。

如何配置监控警报

编写监视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

该脚本使用sedsar获取平均cpu空闲百分比,然后使用if语句检查空闲百分比是否低于某个数字,如果低于,将向管理员发送电子邮件。在本例中,他被配置为20% - 换句话说,如果cpu使用率超过80%,管理员将受到一封电子邮件。

这个脚本可以按照需要进行调整,例如,如果您希望它向终端回显警告或记录到日志文件,而不是使用sendmail发送电子邮件。

当然,如果希望它日常化的运行,则需要从cron调用这个脚本。

$ crontab -e

要想每分钟运行一次,你可以这样写:

* * * * * /path/to/cpu-alert.sh

总结

在本文中,我们了解了如何检查和监控Linux系统上的CPU利用率。我们了解了多种可以帮助我们进行监视的工具,还了解了如何设置使用警报,以便在CPU利用率高时得到通知。

使用本指南中的各种方法,您将始终知道跟踪系统使用情况的最佳工具——无论您是需要详细信息,还是仅仅需要快速查看系统是如何分配CPU的。

参考链接:https://linuxconfig.org/how-to-check-and-monitor-cpu-utilization-on-linux

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件名称:LP_CPUMonitor服务器CPU监控小工具 版本:1.0 网址: 软件说明:监控CPU的使用率。可以自行设定CPU超过持续多长时间超过多少百分比的时候报警。超过设置比率的时候,系统会自动记录日志。 同时,根据设置,决定是否发送警报邮件到指定的邮箱。另外,可以设置CPU超过设定值的时候,自动删除某个进程。 作用:譬如作者网站,站长帮手网,每天会有一到两次CPU占用率会达到100%。后经观察,是因为每天查询数据过大,导致IIS连接假死,导致占用大量的CPU。 而通过回收进程和停止进程都不能达到马上见效的作用,而结束w3wp.exe进程的话,CPU使用率会马上降下来,而且不影响网站的正常运行。 因为IIS会自动马上启动一个新的w3wp.exe进程。使用本软件后,站长帮手网服务器运行很稳定。 作者:草上飞 QQ:1469886 本工具如果不能运行,请与作者联系。 设置说明,请按照以下说明修改config.ini文件。 自行修改值。不要随意改动=后前面的参数名称,否则造成系统出错。 [alerttime=15] 持续多长时间报警 [bemail=true] 是否启用EMAIL报警 [bkill=true] 是否自动结束进程 [process=w3wp.exe] 结束的进程名称,为空则自动删除占用CPU最高的进程。 [maxcpu=95] 持续大于等于这个CPU使用率则报警 [smtp=xxx@newbooks.com.cn;xxx;xxxxx;mail.newbooks.com.cn]smtp设置。格式为:邮箱;用户名;密码;邮箱服务器 [receivemail=xxx@newbooks.com.cn] 接受邮件者

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值