linux 如何监控cpu使用率

Linux中,可以使用tophtopvmstat等命令来

Linux系统中,监控CPU使用率是系统管理和性能调优的重要任务之一,通过有效的工具和命令,可以实时了解CPU的使用情况,从而及时发现和解决潜在的性能瓶颈,以下是几种常用的方法和工具来监控Linux系统的CPU使用率。

使用 top 命令

top 是一个实时显示系统任务的命令,包括CPU和内存使用情况,默认情况下,top 命令会每隔几秒刷新一次,显示当前系统的资源使用情况。

top

top 命令的输出中,最上面的几行包含了CPU的使用信息,

  • %Cpu(s): 显示了用户空间、系统空间以及空闲CPU的使用百分比。
  • us: 用户空间CPU使用率。
  • sy: 系统空间CPU使用率。
  • id: 空闲CPU时间。
  • wa: 等待I/O的CPU时间。
  • hi: 处理硬件中断的CPU时间。
  • si: 处理软件中断的CPU时间。
  • st: 被虚拟机窃取的CPU时间。

使用 htop 命令

htoptop 命令的一个增强版,提供了更友好的用户界面和更多的交互功能,与 top 类似,htop 也能实时显示CPU的使用情况。

首先需要安装 htop(如果尚未安装):

sudo apt-get install htop  # 对于Debian/Ubuntu系统
sudo yum install htop      # 对于CentOS/RHEL系统

然后运行 htop

htop

htop 界面中,你可以看到各个进程的CPU使用率,并且可以通过上下箭头键选择进程,按F9键可以切换显示模式(如树状视图)。

使用 mpstat 命令

mpstatsysstat 包中的一个工具,用于报告CPU的使用统计信息,它特别适合于多核系统的监控。

首先安装 sysstat 包:

sudo apt-get install sysstat  # 对于Debian/Ubuntu系统
sudo yum install sysstat      # 对于CentOS/RHEL系统

然后运行 mpstat

mpstat

mpstat 的输出包括以下字段:

  • CPU: 显示各个CPU的使用情况。
  • %usr: 用户空间CPU使用率。
  • %nice: 改变优先级的用户进程CPU使用率。
  • %sys: 系统空间CPU使用率。
  • %iowait: 等待I/O的CPU时间。
  • %irq: 处理硬中断的CPU时间。
  • %soft: 处理软中断的CPU时间。
  • %steal: 被虚拟机窃取的CPU时间。
  • %guest: 运行虚拟CPU的CPU时间。
  • %gnice: 改变优先级的虚拟进程CPU使用率。
  • %idle: 空闲CPU时间。

使用 vmstat 命令

vmstat 命令提供了一个快速的系统状态概览,包括CPU、内存、交换区、I/O等的使用情况。

vmstat

vmstat 的输出包括以下字段:

  • procs: 块中的进程数(r列表示运行队列中的进程数,b列表示阻塞队列中的进程数)。
  • memory: 内存使用情况(swpd列表示交换出的内存,free列表示空闲内存,buff列表示缓冲区内存,cache列表示缓存内存)。
  • swap: 交换区的使用情况(si列表示从磁盘交换入的内存,so列表示向磁盘交换出的内存)。
  • io: I/O统计信息(bi列表示块设备接收的数据块数,bo列表示块设备发送的数据块数)。
  • system: 系统CPU使用情况(in列表示中断次数,cs列表示上下文切换次数)。
  • cpu: CPU使用情况(us列表示用户空间CPU使用率,sy列表示系统空间CPU使用率,id列表示空闲CPU时间,wa列表示等待I/O的CPU时间,st列表示被虚拟机窃取的CPU时间)。

使用 sar 命令

sarsysstat 包中的另一个工具,用于收集和报告系统活动信息,它可以用于历史数据分析,并且支持将数据保存到文件中以便后续分析。

sar -u 1 3

上述命令每隔1秒报告一次CPU使用情况,共报告3次。sar 的输出包括以下字段:

  • Linux: 标识系统为Linux。
  • 平均CPU使用率: 包括所有CPU的平均使用率。
  • 每个CPU的使用率: 分别显示每个CPU的使用情况。
  • %user: 用户空间CPU使用率。
  • %nice: 改变优先级的用户进程CPU使用率。
  • %system: 系统空间CPU使用率。
  • %iowait: 等待I/O的CPU时间。
  • %steal: 被虚拟机窃取的CPU时间。
  • %idle: 空闲CPU时间。

使用 dstat 命令

dstat 是一个通用的系统资源监控工具,可以同时监控多个资源(如CPU、磁盘、网络等)的使用情况。

首先安装 dstat

sudo apt-get install dstat  # 对于Debian/Ubuntu系统
sudo yum install dstat      # 对于CentOS/RHEL系统

然后运行 dstat

dstat

dstat 的输出包括以下字段:

  • cpu: CPU使用率(usr列表示用户空间CPU使用率,sys列表示系统空间CPU使用率,idl列表示空闲CPU时间)。
  • memory: 内存使用情况(used列表示已用内存,buff列表示缓冲区内存,cache列表示缓存内存)。
  • swap: 交换区的使用情况(used列表示已用交换区,free列表示空闲交换区)。
  • io: I/O统计信息(read列表示读速率,write列表示写速率)。
  • network: 网络统计信息(recv列表示接收速率,send列表示发送速率)。
  • disk: 磁盘统计信息(read列表示读速率,write列表示写速率)。
  • paging: 分页统计信息(in列表示页入速率,out列表示页出速率)。
  • system: 系统统计信息(int列表示中断次数,ctxt列表示上下文切换次数)。

使用 atop 命令

atop 是一个交互式的系统监控工具,提供了详细的系统资源使用情况,包括CPU、内存、磁盘、网络等。

首先安装 atop

sudo apt-get install atop  # 对于Debian/Ubuntu系统
sudo yum install atop      # 对于CentOS/RHEL系统

然后运行 atop

atop

atop 的界面分为两个部分:上半部分显示系统资源的使用情况,下半部分显示各个进程的资源使用情况,你可以通过按键进行交互操作,例如按 q 键退出,按 h 键显示帮助信息。

编写脚本监控CPU使用率

除了使用现有的工具外,你还可以编写自定义脚本来监控CPU使用率,以下是一个简单的Bash脚本示例,使用 mpstat 命令每隔5秒报告一次CPU使用率,并将结果保存到日志文件中。

#!/bin/bash
LOGFILE="/var/log/cpu_usage.log"
while true; do
    echo "===== $(date) =====" >> $LOGFILE
    mpstat | grep "all" >> $LOGFILE
    echo "" >> $LOGFILE
    sleep 5
done

将上述脚本保存为 monitor_cpu.sh,然后赋予执行权限并运行:

chmod +x monitor_cpu.sh
./monitor_cpu.sh

这个脚本会每隔5秒将CPU使用情况追加到 /var/log/cpu_usage.log 文件中,你可以通过查看该日志文件来分析CPU的使用趋势。

使用图形化工具

如果你更喜欢图形化界面,可以使用一些图形化的监控工具,如 GlancesZabbixNagios 等,这些工具通常提供更直观的图表和报警功能,适合大规模的系统监控。

Glances

Glances 是一个跨平台的系统监控工具,支持CLI和Web界面,它能够实时显示CPU、内存、磁盘、网络等的使用情况,并且支持自定义插件。

首先安装 Glances

sudo apt-get install glances  # 对于Debian/Ubuntu系统
sudo yum install glances      # 对于CentOS/RHEL系统

然后运行 Glances

glances

Glances 的界面中,你可以通过快捷键切换不同的视图,例如按 1 键显示CPU视图,按 2 键显示内存视图,按 3 键显示磁盘视图,按 4 键显示网络视图。

在Linux系统中,监控CPU使用率是确保系统性能和稳定性的重要手段,通过使用 tophtopmpstatvmstatsardstatatop 等工具,你可以实时了解CPU的使用情况,并及时发现和解决潜在的性能问题,你还可以编写自定义脚本或使用图形化工具来实现更复杂的监控需求,选择合适的工具和方法,可以帮助你更好地管理系统资源,提高系统的可靠性和性能。

FAQs

Q1: 如何查看某个特定进程的CPU使用率?

A1: 你可以使用 tophtop 命令来查看某个特定进程的CPU使用率,在 top 命令中,按下 P 键可以按CPU使用率排序进程,然后找到你需要的进程,在 htop 命令中,你可以直接通过上下箭头键选择进程,查看其CPU使用率,你还可以使用 ps 命令结合 grep 来过滤特定进程的CPU使用情况,

ps -eo pid,comm,%cpu --sort=-%cpu | grep <process_name>

Q2: 如何将CPU使用率监控数据保存到文件中以便后续分析?

A2: 你可以使用 mpstatvmstatsar 等命令将CPU使用率监控数据保存到文件中,使用 mpstat 命令每隔5秒报告一次CPU使用情况,并将结果保存到日志文件中:

mpstat -P ALL 5 > /path/to/logfile.log &

或者使用 sar 命令将CPU使用率数据保存到文件中:

sar -u 5 > /path/to/logfile.log &

以上内容就是解答有关linux 如何监控cpu使用率的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/11727.html

(0)
酷番叔酷番叔
上一篇 2025年8月17日 09:05
下一篇 2025年8月17日 09:12

相关推荐

  • Linux挂载移动硬盘怎么操作?

    挂载前准备连接硬盘使用USB/SATA线连接硬盘,系统通常自动识别(部分旧硬盘需外接电源),终端输入 lsblk 或 sudo fdisk -l 查看硬盘设备标识(如 /dev/sdb1),创建挂载点sudo mkdir /mnt/mydrive # 在/mnt下创建目录作为挂载点手动挂载步骤确定文件系统类型运……

    2025年7月9日
    9600
  • linux 如何扩大分区

    Linux 中,可以使用 resize2fs 命令扩大分区,前提是分区文件系统支持

    2025年8月15日
    6900
  • Linux安装tar.xz文件的具体步骤和方法是什么?

    在Linux系统中,tar.xz文件是一种常见的压缩包格式,它结合了tar(用于打包多个文件或目录)和xz(用于高压缩比压缩)的优势,常用于分发源码包或便携式应用,安装tar.xz文件的核心步骤包括解压、配置(如为源码包)、编译和安装,具体流程需根据文件内容(二进制包或源码包)调整,以下是详细操作指南:安装前准……

    2025年8月26日
    7900
  • 如何查看Linux系统中的服务运行状态?

    在Linux系统中,服务通常指在后台持续运行的守护进程(daemon),它们为系统或应用程序提供特定功能,如Web服务、数据库服务、网络服务等,查看Linux中的服务状态、运行情况、配置信息等是系统管理和运维的基础操作,本文将详细介绍多种查看服务的方法,涵盖命令行工具、图形化界面及日志分析等场景,帮助用户全面掌……

    2025年9月9日
    7800
  • Linux挂载硬盘如何确保安全可靠?

    准备工作连接硬盘将移动硬盘通过USB接口插入电脑,系统通常会自动识别,若硬盘需外接电源,请确保供电稳定,查看硬盘设备标识打开终端(Ctrl+Alt+T),输入以下命令:sudo fdisk -l输出示例:/dev/sdb1 * 2048 1953521663 1953519616 931.5G Microsof……

    2025年7月16日
    10500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信