Linux命令扫盲 之 sar

转自:http://blog.sina.com.cn/s/blog_54108600010143ln.html

今天在读《大规模Web服务开发技术》一书的时候,书中提到了sar这个命令,感觉很有用,有必要整理学习一下。(对于一位Linux初学者,不能放过任何一个学习机会:P)

打开自己的CentOS,敲入“sar”,表示很失望:

[root@localhost~]#sar

bash:sar:commandnotfound

竟然没有安装,不过还好linux下安装还是非常方便的。

[root@localhost~]#yuminstallsysstat

Loadedplugins:fastestmirror

Loadingmirrorspeedsfromcachedhostfile

........................

Complete!

注:Sar是后台进程sadc的前端显示工具,安装名为“sysstat”的包后,sadc就会自动从内核收集报告并保存。

下面对sar的一般用法进行总结,以备忘之。

安装好后输入sar出现以下情况

[root@localhost]#sar

Cannotopen/var/log/sa/sa05:Nosuchfileordirectory

sar命令Cannotopen/var/log/sa/sa*:Nosuchfileordirectory

发现/var/log下没有sa文件夹,建了一个,再运行#sar-o24(24为当天日期)就OK了。

sar–u查看CPU使用率

[root@localhost~]#sar-u

Linux2.6.18-194.26.1.el5(localhost)2012年04月29日

09时39分42秒LINUXRESTART

09时40分01秒CPU%user%nice%system%iowait%steal%idle

09时50分01秒all0.140.000.580.120.0099.15

10时00分01秒all0.060.000.500.160.0099.27

10时10分01秒all0.110.060.952.580.0096.30

10时20分01秒all0.120.190.821.410.0097.46

10时30分01秒all0.140.000.540.120.0099.20

10时40分01秒all0.150.000.540.160.0099.15

Average:all0.120.040.650.760.0098.43

这里:

%user:用户模式下消耗的CPU时间的比例;

%nice:通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例;

%system:系统模式下消耗的CPU时间的比例;

%iowait:CPU等待磁盘I/O而导致空闲状态消耗时间的比例;

%steal:利用Xen等操作系统虚拟化技术时,等待其他虚拟CPU计算占用的时间比例;

%idle:CPU没有等待磁盘I/O等的空闲状态消耗的时间比例;

注:

如果%iowait的值过高,表示硬盘存在I/O瓶颈

如果%idle的值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量

如果%idle的值持续低于10,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

sar–q查看平均负荷

[root@localhost~]#sar-q

Linux2.6.18-194.26.1.el5(localhost)2012年04月29日

09时39分42秒LINUXRESTART

09时40分01秒runq-szplist-szldavg-1ldavg-5ldavg-15

09时50分01秒01520.000.020.05

10时00分01秒01520.000.000.00

10时10分01秒01560.390.090.03

10时20分01秒01510.000.030.01

10时30分01秒01510.000.000.00

10时40分01秒01510.000.000.00

10时50分01秒01510.000.000.00

Average:01520.060.020.01

runq-sz:运行队列的长度(等待运行的进程数)

plist-sz:进程列表中进程(processes)和线程(threads)的数量

ldavg-1:最后1分钟的系统平均负载(Systemloadaverage)

ldavg-5:过去5分钟的系统平均负载

ldavg-15:过去15分钟的系统平均负载

sar–r查看内存使用情况

[root@localhost~]#sar-r

Linux2.6.18-194.26.1.el5(localhost)2012年04月29日

09时39分42秒LINUXRESTART

09时40分01秒kbmemfreekbmemused%memusedkbbufferskbcachedkbswpfreekbswpused%swpusedkbswpcad

09时50分01秒48157255349253.4735592384508209714400.000

10时00分01秒48096055410453.5336032384512209714400.000

10时10分01秒40495263011260.8877764399432209714400.000

10时20分01秒37582465924063.6987356410892209714400.000

10时30分01秒37186066320464.0787756411064209714400.000

kbmemfree:空闲物理内存量;

kbmemused:使用中的物理内存量;

%memused:物理内存量使用率;

kbbuffers:内核中作为缓冲区使用的物理内存容量;

kbcacheed:内核中作为缓存使用的物理内存容量;

kbswpfree:交换区的空闲容量;

kbswpused:使用中的交换区容量;

sar–W查看页面交换发生状况

[root@localhost~]#sar-W

14时30分01秒pswpin/spswpout/s

14时40分01秒0.000.00

14时50分01秒0.000.00

15时00分01秒0.000.00

Average:0.000.00

sar–b查看I/O和传送速率的统计信息

[root@localhost~]#sar-b15

Linux2.6.18-194.26.1.el5(localhost)2012年04月29日

15时08分18秒tpsrtpswtpsbread/sbwrtn/s

15时08分19秒0.000.000.000.000.00

15时08分20秒0.000.000.000.000.00

15时08分21秒0.000.000.000.000.00

15时08分22秒13.270.0013.270.00220.41

15时08分23秒0.000.000.000.000.00

Average:2.660.002.660.0044.17

tps:每秒钟物理设备的I/O传输总量

rtps:每秒钟从物理设备读入的数据总量

wtps:每秒钟向物理设备写入的数据总量

bread/s:每秒钟从物理设备读入的数据量,单位为块/s

bwrtn/s:每秒钟向物理设备写入的数据量,单位为块/s

其他还有:

sar–c每秒钟创建的进程数

sar-nDEV输出网络设备状态的统计信息

注:默认情况是对过去时间段进行数据统计,一般从最近的0:00开始显示。如果想继续查看一天前的报告,可以用-f选项指定保存在/var/log/sa目录下的日志文件中。如果想周期性的查看当前数据可以命令后面加上数字参数,如sar–q13,表示:1秒1次,共3次。