vmstat命令是监控linux内存的常用工具,可以对操作系统的虚拟内存、进程、CPU等的整体情况进行监视,通常对Linux系统来说,虚拟内存就是swap分区。
用法参数
Usage: vmstat [options] [delay [count]] Options: -a, --active active/inactive memory -f, --forks number of forks since boot -m, --slabs slabinfo -n, --one-header do not redisplay header -s, --stats event counter statistics -d, --disk disk statistics -D, --disk-sum summarize disk statistics -p, --partition <dev> partition specific statistics -S, --unit <char> define display unit -w, --wide wide output -t, --timestamp show timestamp -h, --help display this help and exit -V, --version output version information and exit
对于内存监控,需要关心的指标包括:swpd、free、buff、cache、si和so,尤其需要重视的是free、si和so。很多人都会认为系统的空闲内存(free)少就代表系统性能有问题,其实并不是这样的,这还要结合si和so(内存和磁盘的页面交换)两个指标进行分析。正常来说,当物理内存能满足系统需要的话(也就是说物理内存能足以存放所有进程的数据),那么物理内存和磁盘(虚拟内存)是不应该存在频繁的页面交换操作的,只有当物理内存不能满足需要时系统才会把内存中的数据交换到磁盘中。而由于磁盘的性能是比内存慢很多的,所以如果存在大量的页面交换,那么系统的性能必然会受到很大影响。
下面我们来看实例,已间隔3秒,收集10次性能数据
vmstat 3 10
CPU状态的监控指标主要有以下几个参数获得:
r:在运行队列中等待的进程数 b:在等待IO的进程数 cs:每秒的上下文切换的次数 us:用户进程使用的CPU时间(%) sy:系统进程使用的CPU时间(%) id:CPU空闲时间(%) wa:等待IO所消耗的CPU时间(%)
通过以上获取的实例,在等待IO进程数>0时,存在等待IO的进程,如果是id在实际生产过程中越来越大则CPU越来越空闲。
这次简单介绍这么多,后面遇到详细的问题再来补充。