如何检查和监控Linux系统的CPU利用率 您所在的位置:网站首页 cpu占有率是什么意思 如何检查和监控Linux系统的CPU利用率

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

2024-06-24 21:26| 来源: 网络整理| 查看: 265

作为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 [email protected] fi

该脚本使用sed从sar获取平均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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有