linux系统分析工具

vmstat

用来获得有关进程、虚存、页面交换空间及 CPU活动的信息。这些信息反映了系统的负载情况

常用命令

  • -a:显示活跃和非活跃内存
  • -f:显示从系统启动至今的fork数量 。
  • -m:显示slabinfo
  • -n:只在开始时显示一次各字段名称。
  • -s:显示内存相关统计信息及多种系统活动数量。
  • delay:刷新时间间隔。如果不指定,只显示一条结果。
  • count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
  • -d:显示磁盘相关统计信息。
  • -p:显示指定磁盘分区统计信息
  • -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
  • -V:显示vmstat版本信息。

参数说明

例子

> vmstat 1

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 141820  32736 379212    0    0     0     0  164  288  1  1 98  0  0
 1  0      0 141820  32744 379208    0    0     0    68  184  342  0  0 99  1  0
 1  0      0 141820  32744 379216    0    0     0     0  147  295  0  0 100  0  0
 1  0      0 141820  32744 379216    0    0     0     0  156  304  1  1 98  0  0
类别命令含义说明
procs(进程)r等待执行的任务数展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。
b等待IO的进程数量
memory(内存)swpd正在使用虚拟的内存大小,单位k
free空闲内存大小
buff已用的buff大小,对块设备的读写进行缓冲
cache已用的cache大小,文件系统的cache
inact非活跃内存大小,即被标明可回收的内存,区别于free和active当使用-a选项时显示
active活跃的内存大小当使用-a选项时显示
Swap(交换区)si每秒从交换区写入内存的大小(单位:kb/s)
so每秒从内存写到交换区的大小
IObi每秒读取的块数(读磁盘)
bo每秒写入的块数(写磁盘)
systemin每秒中断数,包括时钟中断值越大,由内核消耗的cpu时间会越多
cs每秒上下文切换数值越大,由内核消耗的cpu时间会越多
CPUus用户进程执行消耗cpu时间(user time)us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了
sy系统进程消耗cpu时间(system time)sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因
id空闲时间(包括IO等待时间)
wa等待IO时间Wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。

常见问题

  • 如果r经常大于4,且id经常少于40,表示cpu的负荷很重。
  • 如果pi,po长期不等于0,表示内存不足。
  • 如果disk经常不等于0,且在b中的队列大于3,表示io性能不好。
  • 如果在processes中运行的序列(process r)是连续的大于在系统中的CPU的个数表示系统现在运行比较慢,有多数的进程等待CPU。
  • 如果r的输出数大于系统中可用CPU个数的4倍的话,则系统面临着CPU短缺的问题,或者是CPU的速率过低,系统中有多数的进程在等待CPU,造成系统中进程运行过慢
  • 如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us)系统则面临着CPU资源的短缺

iostat

iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

常用命令

  • -d 仅显示磁盘统计信息.与-c选项互斥.
  • -k 以K为单位显示每秒的磁盘请求数,默认单位块.
  • -p device | ALL
  • 与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名
  • -t 在输出数据时,打印搜集数据的时间.
  • -V 打印版本号和帮助信息.
  • -x 输出扩展信息.

参数说明

> iostat -dx 1

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     1.15    0.10    2.08     2.36    13.63    14.73     0.03   12.09   18.41   11.80   1.35   0.29

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
命令含义说明
Blk_read读入块的当总数
Blk_wrtn写入块的总数.
kB_read/s每秒从驱动器读入的数据量
kB_wrtn/s每秒向驱动器写入的数据量
kB_read读入的数据总量
kB_wrtn写入的数据总量
rrqm/s将读入请求合并后,每秒发送到设备的读入请求数
wrqm/s将写入请求合并后,每秒发送到设备的写入请求数
r/s每秒发送到设备的读入请求数
w/s每秒发送到设备的写入请求数
rsec/s每秒从设备读入的扇区数
wsec/s每秒向设备写入的扇区数
rkB/s每秒从设备读入的数据量
wkB/s每秒向设备写入的数据量
avgrq-sz发送到设备的请求的平均大小,单位是扇区
avgqu-sz发送到设备的请求的平均队列长度
awaitI/O请求平均执行时间.包括发送请求和执行的时间.单位是毫秒
svctm发送到设备的I/O请求的平均执行时间.单位是毫秒
%util在I/O请求发送到设备期间,占用CPU时间的百分比.用于显示设备的带宽利用率当这个值接近100%时,表示设备带宽已经占满

常见问题

sar

系统活动报告器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值