用vmstat
监视内存使用情况
vmstat
是Virtual Meomory Statistics
(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU
活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
vmstat
的语法如下:
vmstat [-V] [-n] [delay [count]] |
其中,-V
表示打印出版本信息;-n
表示在周期性循环输出时,输出的头部信息仅显示一次;delay
是两次输出之间的延迟时间;count
是指按照这个时间间隔统计的次数。对于vmstat
输出各字段的含义,可运行man vmstat
查看。
使用sar
进行综合分析
表1 sar
参数说明
选项 功能
-A
汇总所有的报告
-a
报告文件读写使用情况
-B
报告附加的缓存的使用情况
-b
报告缓存的使用情况
-c
报告系统调用的使用情况
-d
报告磁盘的使用情况
-g
报告串口的使用情况
-h
报告关于buffer
使用的统计数据
-m
报告IPC
消息队列和信号量的使用情况
-n
报告命名cache
的使用情况
-p
报告调页活动的使用情况
-q
报告运行队列和交换队列的平均长度
-R
报告进程的活动情况
-r
报告没有使用的内存页面和硬盘块
-u
报告CPU
的利用率
-v
报告进程、i
节点、文件和锁表状态
-w
报告系统交换活动状况
-y
报告TTY
设备活动状况
sar
是System Activity Reporter
(系统活动情况报告)的缩写。顾名思义,sar
工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小。sar
是目前Linux
上最为全面的系统性能分析工具之一,可以从14
个大方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、串口、CPU
效率、内存使用状况、进程活动及IPC
有关的活动等,使用也是较为复杂。
sar
的语法如下:
sar [-option] [-o file] t [n] |
它的含义是每隔t
秒取样一次,共取样n
次。其中-o file
表示取样结果将以二进制形式存入文件file
中。
另一种语法如下:
sar [-option] [-s time] [-e time] [-i sec] [-f file] |
含义是表示从file
文件中取出数据,如果没有指定-f file
,则从标准数据文件/var/adm/sa/sadd
取数据,其中dd
表示当前天。另外,-s time
表示起始时间;-e time
表示停止时间;-i sec
表示取样的时间间隔,如果不指定则表示取文件中所有的数据。对于具体的选项参见表1
。
一般它与-q
和-u
联合使用,以便对每个CPU
的使用情况进行分析,比如运行如下命令:
sar -q -u 5 1 |
将输出如下:
Linux 2.4.18-18smp (builder.linux.com) 2003 年03 月07 日
09 时46 分16? CPU %user %nice %system %idle 09 时46 分21? all 0.20 0.00 0.00 99.80
09 时46 分16? runq-sz plist-sz ldavg-1 ldavg-5 09 时46 分21? 0 91 0.00 0.00
Average: CPU %user %nice %system %idle Average: all 0.20 0.00 0.00 99.80
Average: runq-sz plist-sz ldavg-1 ldavg-5 Average: 0 91 0.00 0.00 |
由于sar
命令太复杂,只有通过熟练使用才能了解每个选项的含义,对于sar
输出中每个字段的含义运行man sar
命令可以得到详细的解释。