目录
一、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等待的时间百分比 |
%idle | CPU的空闲时间的百分比 |
io
device | 磁盘名称 |
tps | 每秒钟发送到I/O请求数 |
Blk_read / s | 每秒读取的块数 |
Blk_wrtn / s | 每秒写入的块数 |
Blk_read | 读入块的总数 |
Blk_wrtn | 写入块的总数 |
2、以M为的单位显示所有信息
iostat -m![](https://img-blog.csdnimg.cn/7a42b65135a44aa29c3e2667dafe135d.png)
3、显示指定硬盘信息
iostat -d sdb
4、报告每秒向终端读取和写入的字节数
5、查看TPS和吞吐量信息![](https://img-blog.csdnimg.cn/425f6b49d4544c21a2bd7c4bcf1545ec.png)
6、iostat -d -x -k 查看设备使用率(%util)、响应时间(await)![](https://img-blog.csdnimg.cn/30ffeb57b5574f3d9d0504c7c40ff193.png)
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 只显示进程![](https://img-blog.csdnimg.cn/29ad934c34f5401b84ee2a84dbd7972a.png)
8、 iotop -u 用户监控(全部)
iotop -u root #只显示root下的进程/线程
9、 iotop -t 在每一行上添加一个时间戳![](https://img-blog.csdnimg.cn/df69a401e7f1463081e9d7904d064325.png)
10、 iotop -a 显示累计的I/O而不是带宽![](https://img-blog.csdnimg.cn/52e6f541a13e4140bda658909de1420d.png)
除了-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为退出