OS性能分析命令(二)各种stat
文章目录
一、vmstat
1.1 命令说明
vmstat可以监控操作系统的进程状态、内存、虚拟内存、磁盘IO、上下文、CPU的信息。
1.2 参数说明
vmstat [-a] [-n] [-S unit] [delay [ count]]
- -a:显示活跃和非活跃内存
- -m:显示slabinfo
- -n:只在开始时显示一次各字段名称。
- -s:显示内存相关统计信息及多种系统活动数量。
- delay:刷新时间间隔。如果不指定,只显示一条结果。
- count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
- -d:显示各个磁盘相关统计信息。
- -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
- -V:显示vmstat版本信息。
- -p:显示指定磁盘分区统计信息
- -D:显示磁盘总体信息
1.3 结果说明
- Procs
- R:等待被执行的进程数,即表示运行和等待CPU时间片的进程数
- B:排队的进程数,即等待资源的进程数
- Memory
- Swap : 虚拟内存,切换到虚拟内存的内存大小
- Free: 空闲的物理内存大小
- Buff: 缓冲区大小
- Cache: 缓存大小
- Swap
- Si:磁盘写入虚拟内存,即由内存进入到虚拟内存的大小。
- So:虚拟内存写入磁盘,即由虚拟内存进入到磁盘的大小。
Io
- Bi:由块设备读入的数据总量,读磁盘
- Bo:由块设备写入的数据总量,写磁盘
- System
- In: 每秒设备中断数
- Cs:每秒上下文切换的次数
- Cpu
- Us:用户进程消耗cpu百分比
- Sy:内核进程消耗cpu百分比
- Id:cpu处于空闲状态的时间百分比
- Wa:Io等待cpu所占时间的百分比
二、iostat
2.1 命令说明
Iostat是对系统磁盘IO操作进行监控,它的输出主要显示磁盘的读写操作的统计信息。同时给出cpu的使用情况
2.2 参数说明
iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ … ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ]
各选项以及参数含义如下:
- -c: 仅显示CPU统计信息.与-d选项互斥.
- -d :仅显示磁盘统计信息.与-c选项互斥.
- -k :以K为单位显示每秒的磁盘请求数,默认单位块.
- -p :device | ALL
与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:
# iostat -p had
或显示所有设备
# iostat -p ALL
- -t :在输出数据时,打印搜集数据的时间.
- -V :打印版本号和帮助信息.
- -x device 输出指定要统计的磁盘设备名称,默认为所有磁盘设备.
- - interval :指两次统计间隔时间
- - count :按照interval 指定的时间间隔统计的次数
2.3 结果说明
磁盘监控
- rrqm/s:每秒进行 merge 的读操作数目,即 delta(rmerge)/s 。
- wrqm/s:每秒进行 merge 的写操作数目,即 delta(wmerge)/s 。
- r/s:每秒完成的读 I/O 设备次数,即 delta(rio)/s 。
- w/s: 每秒完成的写 I/O 设备次数,即 delta(wio)/s 。
- rsec/s:每秒读扇区数,即 delta(rsect)/s。
- wsec/s:每秒写扇区数,即 delta(wsect)/s
- rkB/s:每秒读K字节数,是 rsect/s 的一半,因为每扇区大小为512字节。
- wkB/s:每秒写K字节数,是 wsect/s 的一半
- avgrq-sz:平均每次设备I/O操作的数据大小 (扇区),即 delta(rsect+wsect)/delta(rio+wio) 。
- avgqu-sz:平均I/O队列长度,即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
- Await:平均每次设备I/O操作的等待时间 (毫秒),即 delta(ruse+wuse)/delta(rio+wio) 。
- Svctm:平均每次设备I/O操作的服务时间 (毫秒),即 delta(use)/delta(rio+wio) 。
- %util:一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的,
即 delta(use)/s/1000 (因为use的单位为毫秒) 。
cpu监控
- %usr:用户进程消耗的CPU时间百分比。
- %nice: 运行正常进程消耗的CPU时间百分比。
- %system:系统进程消耗的CPU时间百分比。
- %iowait:I/O等待所占CPU时间百分比。
- %steal:在内存紧张环境下,pagein强制对不同的页面进行的steal操作。
- %idle:CPU空闲状态的时间百分比。
三、mpstat
3.1 命令说明
Mpstat可以监控到cpu的一些统计信息,在多核cpu的系统里不但能够查看所有cpu的平均状况信息,而且能够查看特定的cpu的信息
3.2 参数说明
mpstat [-P {|ALL}] [internal [count]]
参数:
- (1)-P {|ALL}:表示监控哪个CPU,在[0,cpu个数-1]中取值;
- (2)internal:相邻的两次采样的间隔时间;
- (3)count:采样的次数,count只能和delay一起使用;
备注:当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。
3.3 结果说明
- (1)user:在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程,值为 (usr/total)*100;
- (2)nice:在internal时间段里,nice值为负进程的CPU时间(%),值为(nice/total)*100;
- (3)system:在internal时间段里,核心时间(%),值为(system/total)*100;
- (4)iowait:在internal时间段里,硬盘IO等待时间(%),值为(iowait/total)*100;
- (5)irq:在internal时间段里,硬中断时间(%),值为(irq/total)*100;
- (6)soft:在internal时间段里,软中断时间(%),值为(softirq/total)*100;
- (7)idle:在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%),值为(idle/total)*100;
- (8)intr/s:在internal时间段里,每秒CPU接收的中断的次数,值为(intr/total)*100;
四、netstat
4.1 命令说明
netstat 命令用于显示本机网络链接、运行端口、路由表等信息
4.2 参数说明
netstat [选项]
- -a (all):显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接,断开连接(CLOSE_WAIT)或者处于联机等待状态的(TIME_WAIT)等
- -t (tcp):显示tcp相关选项
- -u (udp):仅显示udp相关选项
- -n :拒绝显示别名,能显示数字的全部转化成数字。
- -l :仅列出有在 Listen (监听) 的服务状态
- -p :显示建立相关链接的程序名
- -r :显示路由信息,路由表,除了显示有效路由外,还显示当前有效的连接
- -e :显示扩展信息,例如uid等
- -s :按各个协议进行统计
- -c :每隔一个固定时间,执行该netstat命令。
- -v :显示当前的有效连接,与-n选项类似
- -I :显示自动匹配接口的信息
- -e :显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
4.3 结果说明
- Iface:表示网络设备的接口名称。
- MTU:表示最大传输单元,单位为字节。
- RX-OK/TX-OK:表示已经准确无误地接收/发送了多少数据包。
- RX-ERR/TX-ERR:表示接收/发送数据包时候产生了多少错误。
- RX-DRP/TX-DRP:表示接收/发送数据包时候丢弃了多少数据包。
- RX-OVR/TX-OVR:表示由于误差而丢失了多少数据包。
- Flg表示接口标记,其中
B 已经设置了一个广播地址。
L 该接口是一个回送设备。
M 接收所有数据包(混乱模式)。
N 避免跟踪。
O 在该接口上,禁用A R P。
P 这是一个点到点链接。
R 接口正在运行。
U 接口处于“活动”状态。
其中RX-ERR/TX-ERR、 RX-DRP/TX-DRP和RX-OVR/TX-OVR的值应该都为0,如果不为0,并且很大,那么网络质量肯定有问题,网络传输性能也一代会下降。
- Recv-Q:表示接收队列。
- Send-Q :表示发送队列。
- Local Address :表示本地机器名、端口
- Foreign Address :表示远程机器名、端口
- State:表示状态,其中
LISTEN :在监听状态中。
ESTABLISHED:已建立联机的联机情况。
TIME_WAIT:该联机在目前已经是等待的状态。