- 🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)
- 🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd
- 🌐系列专栏:Linux技术
- 📰如觉得博主文章写的不错或对你有所帮助的话,还望大家三连支持一下呀!!! 👉关注✨、点赞👍、收藏📂、评论。
- 如需转载请参考转载须知!!
Linux环境下如何查看CPU使用情况(利用率等)
- top系列
- 简介
- 命令格式
- 输出的字段
- 实例
- top的变体
- mpstat
- 简介
- 安装
- 命令格式
- 实例
- /proc/stat
- 简介
- 字段说明
- vmstat
- 简介
- 命令格式
- 字段说明
- 实例
- sar
- 用法
- 实例
- pidstat
- 简介
- 命令格式
- 实例
- iostat
- iostat数据来源
- iostat报告类型
- 命令格式
top系列
简介
- top命令可实时监控系统的任务和资源使用情况,涉及CPU和内存占用情况。
- 在
top
界面中,CPU占用率会显示在顶部的几行中。 - top的数据来源于/proc/stat。
命令格式
- 查看系统负载
top
– 该命令将展示系统当前的进程列表,以及每个进程的 CPU 占用率、内存占用率、运行时间等信息。在命令行界面,可以使用方向键上下移动当前进程,使用数字键1切换到CPU占用率的排序模式,使用数字键2切换到内存占用率的排序模式。
- 查看某个进程的详情
top -p <pid>
– 该命令将展示某个进程的详细信息,包括进程的 CPU 占用率、内存占用率、线程等信息。
- 查看某个用户的进程列表
top -U <username>
– 该命令将展示某个用户的进程列表,以及每个进程的 CPU 占用率、内存占用率、运行时间等信息。
- 查看进程列表时只显示某些进程
top -pid <pid1>,<pid2>,...
输出的字段
- 第三行显示以下 中央处理单元(CPU) 值:
- us: CPU 为“用户空间”中的人执行进程所花费的时间。
- sy:运行系统“内核空间”进程所花费的时间。
- ni:使用手动设置的 nice值执行进程所花费的时间。
- id: CPU 空闲时间量。
- wa: CPU 等待 I/O 完成所花费的时间。
- hi:服务硬件中断所花费的时间。
- si:服务软件中断所花费的时间。
- st:由于运行虚拟机而损失的时间(“窃取时间”)。
实例
top的变体
- htop 是 top 的一个增强替代品,提供了更加友好的用户界面和更多的功能。与 top 相比,htop 默认以颜色区分不同的信息,并且支持水平滚动查看更多的进程信息。htop 还允许用户使用方向键来选择进程,并可以直接发送信号给进程(如 SIGKILL)。htop 支持多种视图和配置选项,使得用户可以根据自己的喜好定制显示的内容。
- btop是一个在Linux下运行的交互式系统资源监视器。它以文本界面的形式显示系统的各种指标,如CPU使用率、内存占用、磁盘使用情况、网络流量等。界面非常酷炫。
mpstat
简介
- mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息(主要是CPU利用率)。mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据;而类似工具vmstat只能查看系统整体cpu情况。
- 该工具是 sysstat 包的一部分,sysstat 是一个收集、报告系统活动信息的软件包,包括 CPU、内存、I/O、网络等使用情况。
安装
- 需要安装
sysstat
包。
sudo yum install sysstat
sudo apt install sysstat
命令格式
mpstat -P ALL <interval> <count> #通用格式
mpstat #处理器、CPU统计
mpstat -P ALL #获取所有CPU的利用率
mpstat -P ALL 2 #每隔2s获取所有CPU的利用率
mpstat 1 5 #每隔1s获取一次CPU利用率,共计5次
mpstat -P 0 #获取某个CPU的利用率
mpstat -A #获取该工具可获得的所有信息
mpstat -h #mpstat帮助
mpstat -V #mpstat版本信息
实例
mpstat -P ALL 2
19:43:58 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
19:43:59 all 0.00 0.00 0.04 0.00 0.00 0.00 0.00 0.00 99.96
19:43:59 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
19:43:59 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
.......
19:43:59 13 0.99 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.01
19:43:59 14 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
19:43:59 15 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
/proc/stat
简介
- 在Linux系统中,可以用/proc/stat文件来计算cpu的利用率。这个文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。
字段说明
- CPU总时间
CPU时间 = user+system+nice+idle+iowait+irq+softirq;
其中:
- user:从系统启动开始累计到当前时刻,用户态的CPU时间,不包含nice值为负进程;
- nice:从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间;
- system:从系统启动开始累计到当前时刻,核心时间;
- idle:从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间;
- iowait:从系统启动开始累计到当前时刻,硬盘IO等待时间;
- irq :从系统启动开始累计到当前时刻,硬中断时间;
- softirq:从系统启动开始累计到当前时刻,软中断时间;
vmstat
简介
- vmstat对操作系统的虚拟内存、进程、CPU活动、I/O等系统整体运行状态进行监控。
命令格式
vmstat [options] [delay [count]]
vmstat [参数]
Usage:
vmstat [options] [delay [count]]
Options:
-a, --active active/inactive memory
-f, --forks number of forks since boot
-m, --slabs slabinfo
-n, --one-header do not redisplay header
-s, --stats event counter statistics
-d, --disk disk statistics
-D, --disk-sum summarize disk statistics
-p, --partition <dev> partition specific statistics
-S, --unit <char> define display unit
-w, --wide wide output
-t, --timestamp show timestamp
-h, --help display this help and exit
-V, --version output version information and exit
字段说明
- procs列表示进程相关信息,包括r和b两列,其中r表示运行中的进程数量,b表示等待IO的进程数量;
- memory列显示的是内存的相关信息,包含swpd、free、buff、cache等列,swap表示使用的虚拟内存的大小,free表示可用内存的大小,buff表示用作缓冲区的内存大小,cache表示用作缓存的内存大小。这些信息可以使用free命令查看。
- swap列表示系统的交换空间,包含si和so列,si表示每秒从磁盘写入交换空间的数据量,单位为KB,so表示每秒从交换空间读取数据的大小,单位为KB;
- io列表示输入输出信息,bi表示每秒读取块设备的数量,bo表示每秒写入块设备的数量;
- system列表示系统信息。In表示每秒的中断数量,cs表示系统上下文的切换数量,单位为秒。
- cpu列表示系统CPU活动的相关信息;
- us表示用户程序使用CPU的百分比;
- sy表示系统程序占用CPU的时间百分比;
- id表示CPU空闲时间的百分比;
- wa表示等待IO操作完成的时间百分比;
- st表示控制器虚拟化的时间百分比;
实例
vmstat 1 #每间隔1秒统计一次;
vmstat 1 #每间隔1秒统计一次,共计5次;
sar
- sar(System Activity Reporter 系统活动情况报告)是Linux 的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动,也需要安装
sysstat
包。
用法
- 格式
sar [参数] [时间间隔] [次数]
- 常用参数
-u:输出CPU使用情况的统计信息
-q:输出进程队列长度和平均负载状态统计信息
-B:输出内存页面的统计信息
-r:输出内存和交换空间的统计信息
-W:输出系统交换的统计信息
-d:输出每一个块设备的活动信息
-b:显示I/O和传送速率的统计信息
-f filename:从filename读取数据信息
-s hh:mm:ss:指定输出统计数据的起始时间
-e hh:mm:ss:指定输出统计数据的截止时间,默认为18:00:00
-o filename:将输出信息保存到文件filename
实例
sar -u 1 #统计cpu的使用率,每1秒取一次值
各字段含义如下:
CPU:all 表示统计信息为所有 CPU 的平均值。
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比
若 %iowait 的值过高,表示硬盘存在I/O瓶颈
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比
1)若%idle的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
2)若%idle的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU
pidstat
简介
- pidstat是一个用于实时监控Linux系统中单个或多个进程的资源占用情况的命令行工具。它可以显示CPU、内存、磁盘I/O等资源的使用情况,帮助系统管理员快速定位性能瓶颈。要使用pidstat命令,也需要安装sysstat软件包。
命令格式
- 使用
pidstat
时,最基本的命令格式如下
pidstat [options] interval [count]
其中,interval表示采样间隔时间(秒),count表示采样的次数。如果不指定count,则默认持续监控。
- 各种选项:
-u: 显示CPU使用率
-r: 显示内存使用情况
-d: 显示磁盘I/O统计信息
-p: 指定要监控的进程ID
-w: 显示上下文切换次数
-t: 显示线程级别的统计信息
实例
pidstat 1 #每秒显示每个进程的CPU使用率。
pidstat -u -p 1234 1 #监控进程ID为1234的CPU使用情况,每秒输出一次进程1234的CPU使用率。输出内容通常包括用户态时间(usr)、系统态时间(sys)、等待时间(wait)等信息。
pidstat -u -p 1234,5678 1 #可以同时监控多个进程
watch -n 1 pidstat -u -p 1234 #与watch命令配合使用
iostat
- 要使用iostat命令,首先需要安装sysstat软件包。
iostat数据来源
- Iostat使用以下文件生成报告。
- /proc/stat包含系统统计信息。
- /proc/uptime包含系统正常运行时间。
- /proc/partitions包含磁盘统计信息。
- /proc/diskstats包含磁盘统计信息。
- /sys包含块设备的统计信息。
- /proc/self/mountstats包含网络文件系统的统计信息。
iostat报告类型
- iostat命令会创建三种类型的报告:
- CPU利用率报表
- 设备利用率报表
- 网络文件系统报告
命令格式
- -c选项可以显示CPU利用率的报告。
$ iostat -c
Linux 5.10.16.3-microsoft-standard-WSL2 (DESKTOP-qxhgd) 02/21/23 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.01 0.00 0.10 0.01 0.00 99.88
如本文对你有些许帮助,欢迎大佬支持我一下(点赞+收藏+关注、关注公众号等),您的支持是我持续创作的不竭动力
支持我的方式