用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 命令可以得到详细的解释。