欢迎访问linux宝典,请记住本站唯一域名:www.linuxbaodian.com

vmstat命令

来源:原创    更新时间:2018-08-26 06:44:28    作者:管理员    浏览:2214
  • 命令描述
vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。
  • 命令语法
vmstat [选项]
  • 命令选项
-a:显示活动内页;
-f:显示启动后创建的进程总数;
-m:显示slab信息;
-n:头信息仅显示一次;
-s:以表格方式显示事件计数器和内存状态;
-d:报告磁盘状态;
-p:显示指定的硬盘分区状态;
-S:输出信息的单位。
  • 命令实例

实例1:剖析

[root@sentinel ~]# vmstat 
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 3121288  20852  33204    0    0     2     1    9   10  0  0 100  0  0

1表示每隔一秒采集一次服务器状态,2表示只采集一次。


1)procs 显示进程相关信息

r :(run)表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;

b :(block)表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了;


2)memory 内存相关信息

swpd :表示切换到交换分区中的内存数量 ;

free :当前空闲的内存数量;

buff :缓冲大小,(即将写入磁盘的);

cache :缓存大小,(从磁盘中读取的);


3)swap 内存交换情况

si :(in)由交换区写入到内存的数据量;每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。

so :(out)由内存写入到交换区的数据量;每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。


4)io 磁盘使用情况

bi :(in)从块设备读取数据的量(读磁盘);块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte

bo:(out)从块设备写入数据的量(写磁盘);块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。


5)system 显示采集间隔内发生的中断次数

in :表示在某一时间间隔中观测到的每秒设备中断数;

cs :表示每秒产生的上下文切换次数;例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。


6)CPU 显示cpu的使用状态

us :显示了用户下所花费 cpu 时间的百分比;

sy :显示系统花费cpu时间百分比;系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

id :(idle)表示cpu处于空闲状态的时间百分比;空闲 CPU时间,一般来说,id + us + sy = 100,一般认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

wa :(wait)表示I/O等待所占用cpu时间百分比;

st :(steal)表示被偷走的cpu所占百分比(一般都为0,不用关注);


上一条命令:free

下一条命令:sar

笔记分享

表情

共0条分享记录
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

相关内容

最受欢迎

猜你喜欢

最受争议