叨叨两句
涉及监控服务器性能的命令,除了有vmstat之外,还有top、iostat、netstat。本文只是介绍一下这4个命令中的1个。剩下的3个命令可以参考以下网上的资料就差不多能会了。
推荐top命令的文档:http://os.51cto.com/art/201005/200652.htm
推荐netstat命令的文档:http://dywer.blog.51cto.com/678776/241917
推荐iostat命令的文档:http://www.cnblogs.com/peida/archive/2012/12/28/2837345.html
本文参考文档:http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html
概念
Virtual Memory,即:虚拟内存
在Linux内的1个用法
"vmstat 2"
这个命令的意思是:每2秒输出一次vmstat监控结果
输出列表内各字段的介绍
Procs区域的介绍
Procs(进程) |
备注 |
|
r |
运行队列中的进程数量 |
|
b |
等待IO的进程数量 |
Memory区域的介绍
Memory(内存) |
||
swpd |
虚拟内存已使用的大小 |
|
free |
空闲的物理内存的大小 |
|
buff |
用作缓冲的内存大小 |
数据即将被写入磁盘 |
cache |
用作缓存的内存大小 |
数据被从磁盘中读出来 |
Swap区域的介绍
swap |
备注 |
|
si |
每秒从磁盘读入到虚拟内存的大小 |
|
so |
每秒从虚拟内存写入磁盘的大小 |
Io区域的介绍
io |
备注 |
|
bi |
每秒从块设备接收到的块数,即读块设备。 |
bi: Blocks received from a block device (blocks/s). |
bo |
每秒发送到块设备的块数,即写块设备。 |
bo: Blocks sent to a block device (blocks/s). |
System区域的介绍
system(系统) |
备注 |
|
in |
每秒CPU的中断次数 |
包括时间中断 |
cs |
CPU发生的每秒上下文切换次数 |
例如我们调用系统函数,就要进行上下文切换。线程的切换,也要进程上下文切换。这个值要越小越好,太大了,要考虑调低线程或者进程的数目。 例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。 上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。 |
Cpu区域的介绍
cpu |
备注 |
|
us |
用户CPU时间(用户使用率) |
|
sy |
系统CPU时间(系统使用率) |
如果太高,表示系统调用时间长,例如是IO操作频繁 |
id |
空闲 CPU时间 |
接近0则表示非常繁忙, 接近100表示很闲 |
wa |
等待IO CPU时间 |
进程等待输入输出完成 |