vmstat命令详解与举例

[root@localhost ~]# vmstat -n 3       (每个3秒刷新一次)
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b   swpd   free   buff cache   si   so    bi    bo   in    cs us sy id wa
1 0    144 186164 105252 2386848    0    0    18   166   83     2 48 21 31 0
2 0    144 189620 105252 2386848    0    0     0   177 1039 1210 34 10 56 0
0 0    144 214324 105252 2386848    0    0     0    10 1071   670 32 5 63 0
0 0    144 202212 105252 2386848    0    0     0   189 1035   558 20 3 77 0
2 0    144 158772 105252 2386848    0    0     0   203 1065 2832 70 14 15 0


vmstat所带参数请用man vmstat查看


Procs
r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间


Memory
swpd: 虚拟内存使用情况,单位:KB
free: 空闲的内存,单位KB
buff: 被用来做为缓存的内存数,单位:KB


Swap
si: 从磁盘交换到内存的交换页数量,单位:KB/秒
so: 从内存交换到磁盘的交换页数量,单位:KB/秒


IO
bi: 发送到块设备的块数,单位:块/秒
bo: 从块设备接收到的块数,单位:块/秒
System
in: 每秒的中断数,包括时钟中断
cs: 每秒的环境(上下文)切换次数


CPU
按 CPU 的总使用百分比来显示
us: CPU 使用时间
sy: CPU 系统使用时间
id: 闲置时间

wa: 等待输入输出使用时间


准测
r,b≈0,
如果fre,将会出现连续不断的页面调度,将导致系统性能问题。
对于page列,re,pi,po,cy维持于比较稳定的状态,PI率不超过5,如果有pagin发生,那么关联页面必须先进行pageout
在内存相对紧张的环境下pagein会强制对不同的页面进行steal操作。如果系统正在读一个大批的永久页面,你也许可以看到po和pi列
会出现不一致的增长,这种情景并不一定表明系统负载过重,但是有必要对应用程序的数据访问模式进行见检查。在稳定的情况下,扫描率和重置率几乎相等,在多个进程处理使用不同的页面的情况下,页面会更加不稳定和杂乱,这时扫描率可能会比重置率高出。
faults列,in,sy,cs会不断跳跃,这里没有明确的限制,唯一的就是这些值最少大于100
cpu列,us,sys,id和wa也是不确定的,最理想的状态是使cpu处于100%工作状态,单这只适合单用户的情况下。
如果在多用户环境中us+sys》80,进程就会在运行队列中花费等待时间,响应时间和吞吐量就会下降。wa>40表明磁盘io没有也许存在不合理的平衡,或者对磁盘操作比较频繁。

 

举个例子吧,下面是两台逻辑srv打印出的结果,大概每秒1500次请求。

第二台机与第一台相比,wa和b字段远大于0,说明进程在等待输入输出而被中断, 且swpd 和 si so也远大于0说明内存已经不够用使用到了交换分区,出现这种情况有两个可能:

 

1. 进程不停被换入换出,系统处理能力下降。与第一台机相关,第一台机启动了30个进程,第二台机启动了100个进程,因此当请求量较高或进程处理有堵塞情况时,第二台机可以接入3倍的请求,但进程处理时延较长,在不停切换,处理能力下降很快,解决这种问题只需调整进程数到合适的值即可。

 

2. 内存泄漏。通过top可以查看,占用大内存的进程RES字段值是否正常,如果远大于经验值,并且重启后还会持续上升而不会趋于稳定,则说明存在内存泄漏。

 

procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0      0 2237768 465264 3358896    0    0     0     1    1    2  8  8 83  1  0
 0  0      0 2237644 465264 3358896    0    0     0    12 15553 24362  3  4 92  0  0
19  0      0 2237036 465264 3358896    0    0     0   244 15738 24381  5  3 91  1  0
 7  0      0 2237160 465264 3358896    0    0     0     0 15361 25149  3  4 93  0  0
 0  0      0 2237284 465264 3358896    0    0     0     8 15843 24949  4  4 92  0  0
 2  0      0 2237408 465264 3358896    0    0     0     0 15665 25629  5  3 93  0  0

 

procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
27 21 1052252 5415680   7308  29892    1    1     1     1    0    0  8  8 82  2  0
30 22 1052252 5414936   7308  30276  644    0   644     8 15045 27172  4  3 52 40  0
19 22 1052252 5414440   7328  29640  616    0   620   176 15259 26953  4  3 42 50  0
 3 21 1052252 5413696   7340  30084  572    0   572    32 15385 26809  3  3 45 48  0
 0 21 1052252 5413216   7340  29412  672    0   672     0 15105 26989  4  3 30 63  0

 

最终,结合top的结果分析是内存泄漏的原因,这里可以看出利用vmstat定位系统问题是很方便的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值