监控CPU、磁盘、内存、I/O资源命令(mpstat、iostat、pidstat、iotop、top、lsof、tcpdump、nload)

news/2025/2/14 5:03:14/

目录

一、Linux资源监控命令汇总

二、mpstat

1、应用场景:

2、用法

三、iostat

1、选项

2、以M为的单位显示所有信息

3、显示指定硬盘信息

4、报告每秒向终端读取和写入的字节数 ​编辑5、查看TPS和吞吐量信息​编辑

6、iostat -d -x -k     查看设备使用率(%util)、响应时间(await)​编辑

四、pidstat

1、常用参数:

2、查看所有进程的cpu使用情况

3、内存使用情况

4、显示进程I/O使用情况

5、显示进程上下文切换情况

五、iotop

1、Iotop(选项)

2、iotop -o 

3、 iotop -b   

4、 iotop -n [次数]    设定循环几次

5、 iotop -d [时间]    设定显示时间间隔

6、iotop -p 1     查看1进程及他下面的线程情况

7、 iotop -P 只显示进程​编辑

8、  iotop -u  用户监控(全部)

9、   iotop -t   在每一行上添加一个时间戳​编辑

10、 iotop -a   显示累计的I/O而不是带宽​编辑

六、动态进程 top

1、top内容

七、lsof

1、使用选项

2、 lsof -p   参数

2、lsof -l参数

3、lsof -u  参数

4、lsof -d   参数

八、tcpdump

九、nload


一、Linux资源监控命令汇总

mpstat、iostat、pidstat、iotop、top、lsof、tcpdump、nload

二、mpstat

mpstat命令主要用于多CPU环境下,它能显示各个CPU状态。这些信息存放在/proc/stat文件中。

1、应用场景:

分析多CPU的平均负载高的原因
 计算机密集导致平均负载高
IO导致平均负载高
等待CPU调度导致平均负载高
mpstat经常配合pidstat等其他命令一起分析系统性能瓶颈

2、用法

mpstat   [选项]   [参数]  [internal] [count]
-P:指定要监控哪个CPU,范围是[0~n-1],ALL表示监控所有CPU
internal:相邻两次采样的间隔时间
count:采样次数

查看所有cpu信息,每三秒刷新一次,查看三次
mpstat -P ALL 3 3

%user    表示用户所使用CPU的百分比
%nice    表示使用nice命令对进程进行降级时CPU的百分比
%sys      表示内核进程使用的CPU百分比
%iowait    表示等待进行I/O所使用的CPU时间百分比
%irq      表示用于处理系统中断的CPU百分比
%soft    表示用于软件中断的CPU百分比
%steal    虚拟机强制CPU等待的时间百分比
%guest    虚拟机占用CPU时间的百分比
%idle      CPU的空闲时间的百分比

  备注:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。 

三、iostat

 iostat主要用于监控系统设备的IO负载情况,根据这个可用看出当前系统的写入和读取量,CPU负载和磁盘负载

1、选项

ostat [选项] [时间间隔   次数 ]
-c:显示CPU使用情况
-d:显示磁盘使用情况
-N:显示磁盘阵列信息
-n:显示NFS使用情况
-k:以KB为单位显示
-m:以M为单位显示
-t:报告每秒向终端读取和写入的字符数和CPU的信息
-V:显示版本信息
-x:显示详细信息
-p:[磁盘]显示磁盘和分区的情况

 CPU

%user表示用户所使用CPU的百分比
%nice表示使用nice命令对进程进行降级时CPU的百分比
%system表示内核进程使用的CPU百分比
%iowait表示等待进行I/O所使用的CPU时间百分比
%steal虚拟机强制CPU等待的时间百分比
%idleCPU的空闲时间的百分比

io

device磁盘名称
tps每秒钟发送到I/O请求数
Blk_read / s每秒读取的块数
Blk_wrtn / s每秒写入的块数
Blk_read读入块的总数
Blk_wrtn写入块的总数

2、以M为的单位显示所有信息

iostat -m

3、显示指定硬盘信息

iostat -d sdb

4、报告每秒向终端读取和写入的字节数 5、查看TPS和吞吐量信息

6、iostat -d -x -k     查看设备使用率(%util)、响应时间(await)

rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
r/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu-sz: 平均I/O队列长度。
await: 平均每次设备I/O操作的等待时间 (毫秒)
r_await:每个读操作平均所需的时间
w_await:每个写操作平均所需的时间
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

7、iostat 1 5   间隔1秒,总共显示5次

8、iostat -d 2     每隔2秒,显示一次设备统计信息.

9、iostat -d 2 3         每隔2秒,显示一次设备统计信息.总共输出3次.

10、iostat -x sda sdb 2 3        每隔2秒显示一次sda, sdb两个设备的扩展统计信息,共输出3次.

11、iostat -p sda 2 3       每隔2秒显示一次sda及上面所有分区的统计信息,共输出3次.

四、pidstat

pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存一、线程、设备IO等系统资源的占用情况。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

可以使用yum安装

1、常用参数:

-u:默认的参数,显示各个进程的cpu使用统计

-r:显示各个进程的内存使用统计

-d:显示各个进程的IO使用情况

-p︰指定进程号

-w:显示每个进程的上下文切换情况

-t:显示选择任务的线程的统计信息外的额外信息

-T{TASK | CHILD | ALL}:TASK表示独立的task(进程任务),CHILD关键字表示报告进程下所有线程统计信息,ALL表示报告独立的task和task下面的所有进程(注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。

注意: task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。

-V:版本号

-h:在一行上显示了所有活动,这样其他程序可以容易解析

-I:在SMP环境,表示任务的CPU使用率/内核数量

-:显示命令名和所有参数

2、查看所有进程的cpu使用情况

pidstat 或 pidstat -u 或pidstat -p  ALL 是一样的

PID进程ID
%usr进程在用户空间占用CPU的百分比
%system进程在内核空间占用CPU的百分比
%guest进程在虚拟机占用的CPU的百分比
%CPU进程占用的CPU的百分比
CPU处理进程的CPU编号
Command进程对应的命令

3、内存使用情况

pidstat -r

 PID        进程ID
minflt / s    每秒次缺页错误次数(minor page faults),当虚拟内存地址映射为物理内存地址时,           相应的page数据已经加载到page cache,只需要将该page与进程虚拟地址空间进行映射即可
majflt / s    每秒主缺页错误次数(major page faults),当虚拟内存映射为物理内存地址时,相应                的page数据还在磁盘上,此时则会触发一次major fault,
VSZ       虚拟内存大小,虚拟机内存的使用KB
RSS      常驻内存大小,非交换区里内存使用KB
Command    当前进程对应的命令

4、显示进程I/O使用情况

pidstat  -d PID    进程ID
kB_rd / s    每秒从磁盘读取的字节数(kb)
KB_wr / s    
每秒写入磁盘的字节数(kb)

KB_ccwr / s    
任务取消的写入磁盘的字节数(kb),当任务截断脏PageCache

iodelay    IO延迟,该延迟包含了等待同步块IO完成和swap块IO完成所花费的延迟
Command    当前进程对应的命令

5、显示进程上下文切换情况

进程上下文切换,是指从一个进程切换到另一个进程运行。

pidstat -w

PID进程ID
cswch / s每秒主动切换次数
nvcswch / s每秒被动切换次数
Command当前进程对应的命令

主动切换:当前进程无法获取所需资源导致的上下文切换。当IO、内存等系统资源不足时就会发生

被动切换:当进程由于CPU时间分片已到等原因,被系统强制调度所发生的上下文切换。当有大佬进程争抢CPU资源时,就容易发生被动切换

五、iotop

1、Iotop(选项)

-o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件。
-n: NUM:显示NUM次,主要用于非交互式模式。
-d :SEC:间隔SEC秒显示一次。
-p :PID:监控的进程pid。
-u: USER:监控的进程用户。

 Total DISK READ     从磁盘中读取数据的总速率
Total DISK WRITE    从磁盘中写入数据的总速率
Actual DISK READ    从磁盘中读取数据的实际速率
Actulal DISK WRITE    从磁盘中写入数据的实际速率
TID         线程ID,按p可转换成进程ID
PRIO      优先级
USER      线程所有者
DISK READ    从磁盘中读取的速率
DISK WRITE    往磁盘里写入的速率
SWAPIN    swap交换百分比
IO>       IO等待所占用的百分比
COMMAND    进程命令

2、iotop -o 

仅显示实际执行I/O的进程或线程,只显示在划硬盘的程序

3、 iotop -b   

非交互模式,批量处理用来记录日志的

4、 iotop -n [次数]    设定循环几次

如:iotop -n 3   在刷新3次后自动退出

5、 iotop -d [时间]    设定显示时间间隔

如:iotop -d 1    1秒刷新一次

6、iotop -p 1     查看1进程及他下面的线程情况

7、 iotop -P 只显示进程

8、  iotop -u  用户监控(全部)

iotop -u root   #只显示root下的进程/线程

9、   iotop -t   在每一行上添加一个时间戳

10、 iotop -a   显示累计的I/O而不是带宽

除了-b选项启动的iotop,可以在运行期间执行一些命令如下
|:-|:-|
|左右箭头|改变排序的列|
|r|反向排序,按io|
|o|切换至选项–only|
|p|切换至–processes选项|
|a|切换至–accumulated选项|
|q|退出 |
|i|改变线程的优先级|
交互模式下除了以上这些交互命令键之外的任意键都会强制刷新

六、动态进程 top

1、top内容

PID   进程id号
USER进程所有者的用户名
 PR     优先级(由内核动态调整),用户不能
NI进程优先级,nice值,负值表示高优先级,正值表示低优先级,用户可自己调整
VIRT    虚拟内存,是进程正在使用的所有内存
RES   进程所使用的物理内存
SHR共享内存大小,(单位KB)
S  进程状态
%CPU上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND    命令名/命令行

七、lsof

lsof 命令常用于查找进程打开了哪些文件以及与打开文件相关联的内容,包括普通文件,目录,块特殊文件,字符特殊文件,正在执行的文本引用,库,流或网络文件

1、使用选项

-p : 输出指定进程打开的文件;
-l : 输出中使用ID代替用户名;
-u : 输出指定用户打开的文件;
-c : 输出 COMMAND 列中包含 string 的项;
-d : 输出包含指定描述符的项;
fileName : 输出打开文件 fileName 的所有项;

2、 lsof -p   参数

输出指定进程打开的参数
lsof -p 1列出1号进程打开的文件

2、lsof -l参数

输出中使用用户 ID 代替用户名

3、lsof -u  参数

输出指定用户打开的文件
lsof -u root

4、lsof -d   参数

lsof -d 10 输出打开文件描述符10的所有项

 5、losf filename

输出打开文件/usr/lib64/ld-2.17.so的进程项

八、tcpdump

tcpdump是一个抓包工具
tcpdump使用
tcpdump -i ens33

九、nload

用来监听网络状态和各ip所使用的带宽
安装nload
Yum install -y epel-release 
Yum install -y nload

 显示依次为:网卡名称,ip地址,且方向键可以切换不同的网卡,q为退出

 


http://www.ppmy.cn/news/830325.html

相关文章

[Python系列] 线程、协程、进程和分布式

起因 我们在写脚本的时候,经常是单线程跑完了全部,毕竟自顶向下按照我们约定的方法运行下去是最规范的。但是很多时候,比如说合法地爬取一些网页信息,图片和资料啊,或者说一些合法的网络请求,读写文件之类的…

C# WinForm ComboBox 自定义数据项 (ComboBoxItem )用法实例

本篇介绍C# WinForm ComboBox 自定义数据项 (ComboBoxItem )用法 目录 定义 实例 定义 命名空间: System.Windows.Controls 程序集: PresentationFramework.dll 在 ComboBox 内实现可选择的项。 ComboBoxItem是

打印机墨盒清零

用于明明刚换完墨盒还说我没墨的难题。 1、首先打开打印机的前盖(往外拉这个小把手,前盖就会弹出来)。显示屏会有“盖子被打开”的字样; 然后按“清除/返回”键。 2、显示屏会有“是否更换硒鼓”的字样。 3、按“开始“键,再按”▲“键&am…

[ABC309D] Add One Edge 题解

这道题非常简单啊! 我们考虑以下一条最短路的构成,一定是 1 1 1 所在的连通块的一条 1 1 1 到 x x x 的路径,一条 x x x 到 y y y 的边(即我们添加的那条边),一条 n 1 n 2 n_1n_2 n1​n2​ 所在的连…

Duplicate keys detected: ‘0‘. This may cause an update error.

问题 vue报错 Duplicate keys detected: ‘0‘. This may cause an update error. 原因 <div v-for“(item,id) in items” :key"id”>{{item.name}} </div><div v-for“(item,id) in items” :key"id”>{{item.address}} </div>:key重…

wegame导致win10无限重启问题解决

在打完LOL时&#xff0c;关机忘了关Wegame&#xff0c;可能会导致电脑无限重启&#xff0c;如下图&#xff1a; 解决办法&#xff1a;参考这篇教程 http://www.win7999.com/news/266671215.html

关于Wegame页面空白的问题解决

前言 前几天帮亲戚家装电脑系统,装好后发现 wegame 所有页面都不能正确加载(全部是空白页面),很神奇,在网上找了很多种解决办法都没有效果,后来不过细心的我发现360浏览器一直提示我证书不安全过期,我就想到了,wegame页面也是浏览器页面,是不是也是这个问题导致的,所以现在只需…

vs2019下载和更新速度非常慢的解决方案

网上找的最有用的方法&#xff0c;留个笔记。 原文链接&#xff1a; https://www.cnblogs.com/boxrice/p/11670444.html --------------------------------------------------------------------- 修改host。【本人亲测有效果&#xff0c;速度从5kb到5M左右&#xff0c;但是…