Chinaunix首页 | 论坛 | 博客
  • 博客访问: 637424
  • 博文数量: 244
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-27 09:53
个人简介

记录学习,记录成长

文章分类

全部博文(244)

我的朋友

分类: LINUX

2015-07-22 15:54:54


vmstat 报告虚拟内存的统计信息

用法:

vmstat [-a] [-n] [-S unit] [delay [ count]]

vmstat [-s] [-n] [-S unit]

vmstat [-m] [-n] [delay [ count]]

vmstat [-d] [-n] [delay [ count]]

vmstat [-p disk partition] [-n] [delay [ count]]

vmstat [-f]

vmstat [-V]

参数:

-a:显示活跃和非活跃内存

-f:显示从系统启动至今的fork数量 。引申閱讀: http://www.cnblogs.com/leoo2sk/archive/2009/12/11/talk-about-fork-in-linux.html

-m:显示slabinfo

-n:只在开始时显示一次各字段名称。

-s:显示内存相关统计信息及多种系统活动数量。

    delay:刷新时间间隔。如果不指定,只显示一条结果。

    count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

-d:显示磁盘相关统计信息。

-p:显示指定磁盘分区统计信息

-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

-V:显示vmstat版本信息。

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。通常使用vmstat 5 5(表示在5秒时间内进行5次采样)命令测试。将得到一个数据汇总他能够反映真正的系统情况。
#vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b   swpd   free   buff cache   si   so    bi    bo   in    cs us sy id wa
1 0 62792   3460   9116 88092    6   30   189    89 1061   569 17 28 54 2
0 0 62792   3400   9124 88092    0    00    14 884   434 4 14 81 0
0 0 62792   3400   9132 88092    0    00    14 877   424 4 15 81 0
1 0 62792   3400   9140 88092    0    00    14 868   418 6 20 74 0
1 0 62792   3400   9148 88092    0    00    15 847   400 9 25 67 0
Linux 内存监控vmstat命令输出分成六个部分:


(1)进程procs: 
r:在运行队列中等待执行的进程数 
b:在等待io的进程数 (处在非中断睡眠状态的进程数
说明:展示了正在执行和等待CPU资源的进程任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了

(2)Linux 内存监控内存memoy: 
swpd:现时可用的交换内存(正在使用的swap大小)(单位KB)。 
free:空闲的内存空间(单位KB)。
buff: 缓冲去中的内存数(已使用的buff大小,对块设备的读写进行缓冲)(单位:KB)。
cache:被用来做为高速缓存的内存数(单位:KB)
inact    非活跃内存大小     
active   活跃的内存大小

(3) Linux 内存监控swap交换页面 
si: 从磁盘交换到内存的交换页数量(交换内存使用,由磁盘调入内存),单位:KB/秒。
so: 从内存交换到磁盘的交换页数量(交换内存使用,由内存调入磁盘),单位:KB/秒。

(4)Linux 内存监控 io块设备:
bi: 发送到块设备的块数(从块设备读入的数据总量(读磁盘)),单位:块/秒。
bo: 从块设备接收到的块数(写入到块设备的数据总理(写磁盘)),单位:块/秒。

(5)Linux 内存监控system系统: 
in: 每秒产生的中断数,包括时钟中断。
cs: 每秒产生的上下文切换次数。
说明:上面这2个值越大,会看到由内核消耗的CPU时间会越多

(6)Linux 内存监控cpu中央处理器:
us:用户进程消耗的CPU时间百分比
us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了

sy:内核进程消耗的CPU时间百分比
sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。

id:中央处理器的空闲时间 百分比

wa :IO等待消耗的CPU时间百分比
wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)

st:从虚拟机中窃取的时间

假如其中: 
如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果bi,bo 长期不等于0,表示内存不足。 
如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好

CPU问题:

1.) 

如果在

processes

中运行的序列

(process r)

是连续的大于在系统中的

CPU

的个数表示系统现在运行比

1.) 

如果在

processes

中运行的序列

(process r)

是连续的大于在系统中的

CPU

的个数表示系统现在运行比

1.) 如果在processes中运行的序列(process r)是连续的大于在系统中的CPU的个数表示系统现在运行比较慢,有多数的进程等待CPU.
2.) 如果r的输出数大于系统中可用CPU个数的4倍的话,则系统面临着CPU短缺的问题,或者是CPU的速率过低,系统中有多数的进程在等待CPU,造成系统中进程运行过慢. 
3.) 如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us) 系统则面临着CPU资源的短缺.
解决办法: 
当发生以上问题的时候请先调整应用程序对CPU的占用情况.使得应用程序能够更有效的使用CPU.同时可以考虑增加更多的CPU.   关于CPU的使用情况还可以结合mpstat,   ps aux top   prstat –a等等一些相应的命令来综合考虑关于具体的CPU的使用情况,和那些进程在占用大量的CPU时间.一般情况下,应用程序的问题会比较大一些.比如一些SQL语句不合理等等都会造成这样的现象

内存问题现象: 
内存的瓶颈是由scan rate (sr)来决定的.scan rate是通过每秒的始终算法来进行页扫描的.如果scan rate(sr)连续的大于每秒200页则表示可能存在内存缺陷.同样的如果page项中的pi和po这两栏表示每秒页面的调入的页数和每秒调出的页数.如果该值经常为非零值,也有可能存在内存的瓶颈,当然,如果个别的时候不为0的话,属于正常的页面调度这个是虚拟内存的主要原理.    
解决办法: 
1.调节applications & servers使得对内存和cache的使用更加有效.
2.增加系统的内存. 
3. Implement priority paging in s in pre solaris 8 versions by adding line "set priority paging=1" in  /etc/system. Remove this line if upgrading from Solaris 7 to 8 & retaining old /etc/system file. 
关于内存的使用情况还可以结ps aux top   prstat –a等等一些相应的命令来综合考虑关于具体的内存的使用情况,和那些进程在占用大量的内存.一般情况下,如果内存的占用率比较高,但是,CPU的占用很低的时候,可以考虑是有很多的应用程序占用了内存没有释放,但是,并没有占用CPU时间,可以考虑应用程序,对于未占用CPU时间和一些后台的程序,释放内存的占用;

vmstat例子
[root@localhost ~]# vmstat 2    #每二秒显示一次系统内存的统计信息
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 219908  62964 175548    0    0    47    12   12   17  0  1 99  0
 0  0      0 219900  62964 175548    0    0     0     0   11   12  0  0 100  0
 0  0      0 219900  62964 175548    0    0     0     0    9    9  0  0 100  0

[root@localhost ~]# vmstat 2 5   #每二秒显示一次系统内存的统计信息,总共5次
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 219908  62964 175548    0    0    46    12   12   17  0  1 99  0
 0  0      0 219900  62964 175548    0    0     0     0   12   14  0  0 100  0
 0  0      0 219900  62964 175548    0    0     0     0   11   11  0  1 100  0
 0  0      0 219900  62964 175548    0    0     0     0   10   11  0  0 100  0
 0  0      0 219900  62964 175548    0    0     0     0   10    9  0  0 100  0 
 
[root@localhost ~]# vmstat -d   #显示磁盘信息
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
ram0       0      0       0       0      0      0       0       0      0      0
ram1       0      0       0       0      0      0       0       0      0      0
ram2       0      0       0       0      0      0       0       0      0      0
ram3       0      0       0       0      0      0       0       0      0      0
ram4       0      0       0       0      0      0       0       0      0      0
ram5       0      0       0       0      0      0       0       0      0      0
ram6       0      0       0       0      0      0       0       0      0      0
ram7       0      0       0       0      0      0       0       0      0      0
ram8       0      0       0       0      0      0       0       0      0      0
ram9       0      0       0       0      0      0       0       0      0      0
ram10      0      0       0       0      0      0       0       0      0      0
ram11      0      0       0       0      0      0       0       0      0      0
ram12      0      0       0       0      0      0       0       0      0      0
ram13      0      0       0       0      0      0       0       0      0      0
ram14      0      0       0       0      0      0       0       0      0      0
ram15      0      0       0       0      0      0       0       0      0      0
loop0      0      0       0       0      0      0       0       0      0      0
loop1      0      0       0       0      0      0       0       0      0      0
loop2      0      0       0       0      0      0       0       0      0      0
loop3      0      0       0       0      0      0       0       0      0      0
loop4      0      0       0       0      0      0       0       0      0      0
loop5      0      0       0       0      0      0       0       0      0      0
loop6      0      0       0       0      0      0       0       0      0      0
loop7      0      0       0       0      0      0       0       0      0      0
sda    12341   5909  471542  465300   1325   2081  127088   32204      0     19
sr0        0      0       0       0      0      0       0       0      0      0

阅读(638) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~