sar命令使用详解

sar(System Activity Reporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况

磁盘IO、CPU效率、没存使用状况、进程活动及IPC有关的活动等。

sar命令常用格式

sar [options] [-A] [-o file] t [n]

其中:

t为采样间隔,n为采样次数,默认值是1;

-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。

用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
Options are:
[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -m ] [ -p ] [ -q ] [ -r ] [ -R ]
[ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
[ -I { <int> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ]
[ -j { ID | LABEL | PATH | UUID | ... } ] [ -n { <keyword> [,...] | ALL } ]
[ -o [ <filename> ] | -f [ <filename> ] ] [ --legacy ]
[ -i <interval> ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]

-A:所有报告的总和

-u:输出CPU使用情况和统计信息

-v:输出inode、文件和其他内核表的统计信息

-d:输出每一个块设备的活动信息

-r:输出内存和交换空间的统计信息

-b:显示I/O和传送速率的统计信息

-a:文件读写情况

-c:输出进程统计信息,每秒创建的进程数

-R:输出内存页面的统计信息

-y:终端设备活动情况

-w:输出系统交换活动信息

1、CPU资源监控


例如,每5秒钟采样一次,连续采样3次,观察CPU的使用情况,并将采样结果以二进制形式存入当前目录下的文件test中,使用如下所示的命令

sar -u -o test 5 3

命令执行后显示如下:

[[email protected] ~]# sar -u -o test 5 3
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2017年06月16日     _x86_64_    (2 CPU)

14时49分20秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
14时49分25秒     all      0.00      0.00      0.20      0.00      0.00     99.80
14时49分30秒     all      0.00      0.00      0.50      0.00      0.00     99.50
14时49分35秒     all      0.00      0.00      0.20      0.00      0.00     99.80
平均时间:     all      0.00      0.00      0.30      0.00      0.00     99.70

输出项说明:

CPU:all 表示统计信息为所有CPU的平均值

%user:显示在用户级别运行使用CPU总时间的百分比

%nice:显示在用户级别,用于nice操作,所占用CPU总时间的百分比

%system:在系统级别运行所使用CPU总时间的百分比

%iowait:显示用于等待I/O操作占用CPU时间的百分比

%steal:管理程序为另一个虚拟进程提供服务而等待虚拟CPU的百分比

%idle:显示CPU空闲时间占用CPU总时间的百分比

如果要查看二进制文件test中的内容,需键入如下sar命令:

sar -u -f test

命令执行结果如下图所示:

[[email protected] ~]# sar -u -f test
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2017年06月16日     _x86_64_    (2 CPU)

14时49分20秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
14时49分25秒     all      0.00      0.00      0.20      0.00      0.00     99.80
14时49分30秒     all      0.00      0.00      0.50      0.00      0.00     99.50
14时49分35秒     all      0.00      0.00      0.20      0.00      0.00     99.80
平均时间:     all      0.00      0.00      0.30      0.00      0.00     99.70

2、inode、文件和其他内核表监控

例如,每5秒采样一次,连续采样3次,观察核心表的状态,需键入如下命令

命令执行后显示如下:

[[email protected] ~]# sar -v 5 3
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2017年06月16日     _x86_64_    (2 CPU)

15时01分28秒 dentunusd   file-nr  inode-nr    pty-nr
15时01分33秒      4994       832     11865         2
15时01分38秒      4994       832     11865         2
15时01分43秒      4994       832     11865         2
平均时间:      4994       832     11865         2

输出项说明:

dentunusd:目录高速缓存中未被使用的条目数量

file-nr:文件句柄的使用数量

inode-nr:索引节点句柄的使用数量

pty-nr:使用的pty数量

3、内存和交换空间监控

例如:每5秒采样一次,连续采样3次,监控内存分页:

sar 5 3

命令执行结果显示如下:

[[email protected] ~]# sar -r 5 3
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2017年06月16日     _x86_64_    (2 CPU)

15时07分32秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
15时07分37秒    851688    152724     15.21     16844     49432    117412      5.79
15时07分42秒    851688    152724     15.21     16844     49432    117412      5.79
15时07分47秒    851688    152724     15.21     16852     49432    117412      5.79
平均时间:    851688    152724     15.21     16847     49432    117412      5.79

输出项说明:

kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间

kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间

%memused:这个值是kbmemused和内存总量的一个百分比

kbbuffers和kbcached:这两个值就是free命令中的buffer和cache

kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存

%commit:这个值是kbcommit与内存总量的一个百分比

4、内存分页监控

例如,每5秒采样一次,连续采样3次,监控内存分页:

sar -B 5 3

执行命令后显示结果如下:

[[email protected] ~]# sar -B 5 3
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2017年06月16日     _x86_64_    (2 CPU)

15时17分55秒  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
15时18分00秒      0.00      0.00      7.26      0.00     15.52      0.00      0.00      0.00      0.00
15时18分05秒      0.00      0.00      8.91      0.00     16.60      0.00      0.00      0.00      0.00
15时18分10秒      0.00      0.00      6.45      0.00     15.93      0.00      0.00      0.00      0.00
平均时间:      0.00      0.00      7.54      0.00     16.02      0.00      0.00      0.00      0.00

输出项说明:

pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)

pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)

fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)

majflt/s:每秒钟产生的主缺页数.

pgfree/s:每秒被放入空闲队列中的页个数

pgscank/s:每秒被kswapd扫描的页个数

pgscand/s:每秒直接被扫描的页个数

pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数

%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比

5、I/O和传送速率监控

例如,每5秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:

sar -b 5 3

执行命令后显示结果如下:

[[email protected] ~]# sar -b 5 3
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2017年06月16日     _x86_64_    (2 CPU)

15时22分35秒       tps      rtps      wtps   bread/s   bwrtn/s
15时22分40秒      0.00      0.00      0.00      0.00      0.00
15时22分45秒      0.00      0.00      0.00      0.00      0.00
15时22分50秒      0.60      0.00      0.60      0.00      4.83
平均时间:      0.20      0.00      0.20      0.00      1.61

输出项说明:

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

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

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

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

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

6、进程队列长度和平均负载状态监控

例如,每5秒采样一次,连续采样3次,监控进程队列长度和平均负载状态:

sar -q 5 3

命令执行后显示结果如下:

[[email protected] ~]# sar -q 5 3
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2017年06月16日     _x86_64_    (2 CPU)

15时27分03秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
15时27分08秒         0       182      0.00      0.00      0.00
15时27分13秒         0       182      0.00      0.00      0.00
15时27分18秒         0       182      0.00      0.00      0.00
平均时间:         0       182      0.00      0.00      0.00

输出项说明:

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

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

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

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

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

7、系统交换活动信息监控

例如,每5秒采样一次,连续采样3次,监控系统交换活动信息:

sar -  W 5 3

命令执行后显示结果如下:

[[email protected] ~]# sar -W 5 3
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2017年06月16日     _x86_64_    (2 CPU)

15时30分38秒  pswpin/s pswpout/s
15时30分43秒      0.00      0.00
15时30分48秒      0.00      0.00
15时30分53秒      0.00      0.00
平均时间:      0.00      0.00

输出项说明:

pswpin/s:每秒系统换入的交换页面(swap page)数量

pswpout/s:每秒系统换出的交换页面(swap page)数量

8、设备使用情况监控

例如,每5秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令:

sar -d 5 3 –p

命令执行后显示结果如下:

[[email protected] ~]# sar -d 5 3 -p
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2017年06月16日     _x86_64_    (2 CPU)

15时33分00秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
15时33分05秒       sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时33分05秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时33分05秒       sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时33分05秒       sdd      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时33分05秒       sr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时33分05秒       md0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时33分05秒 LVM1-web1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时33分05秒 LVM1-web2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

其中:

参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0

tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.

rd_sec/s:每秒读扇区的次数.

wr_sec/s:每秒写扇区的次数.

avgrq-sz:平均每次设备I/O操作的数据大小(扇区).

avgqu-sz:磁盘请求队列的平均长度.

await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).

svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.

%util:I/O请求占CPU的百分比,比率越大,说明越饱和.

1. avgqu-sz 的值较低时,设备的利用率较高。

2. 当%util的值接近 1% 时,表示设备带宽已经占满。

时间: 2024-11-08 20:41:33

sar命令使用详解的相关文章

Pip 命令使用详解

Pip 命令使用详解 2015-01-06 21:44 3033人阅读 评论(0) 收藏 举报  分类: debian(3)  redis(1)  python 1.pip下载安装1.1 pip下载 1 # wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate 1.2 pip安装 1

linux wget 命令用法详解(附实例说明)

Linux wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器.如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器.这样既浪费时间又浪费精力,那不没办法的事.而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步.wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来

linux nc命令使用详解(转)

linux nc命令使用详解 功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...] 参 数: -g<网关> 设置路由器跃程通信网关,最丢哦可设置8个. -G<指向器数目> 设置来源路由指向器,其数值为4的

【转】 wget 命令用法详解

wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能和特点:(1)支持断点下传功能:这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了:(2)同时支持FTP和HTTP下载方式:尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件:(3)支持代理服务器:对安全强度很高的系统而言,一般不会将自己的系统直接暴

Mysql导入导出工具Mysqldump和Source命令用法详解

mysqldump -u 用户名 -p [--opt] DATABASENAME [Table] >导出SQL文件名 例子: mysqldump -h host -u user -p --opt databasename [table] > /home/user/databasename.sql 使用Mysqldump导出数据表结构 mysqldump -u root -p --no-data mysql user >D:\PHPWeb\sqlbackup\mysql_user.sql

揭秘SFTP&&SCP命令 Linux详解

很多童鞋对于如果在字符终端进行上传下载以及复制的命令不熟悉,那么下面我就来说一下如何通过sftp以及scp命令进行上传下载以及复制文件的操作. 先来看一下sftp命令: 举例说明:现在我有两台虚拟机,分别是192.168.1.118和192.168.1.121,假设121的主机是远程服务器,且服务器上有一个user2的用户.此时,你想将118上的/etc/passwd文件上传到user2的主目录下,并将user2的.bashrc文件复制到118主机的/tmp目录下. 上传命令是put,下载命令是

[转载]JAVA 命令参数详解:-D

原文链接:http://blog.sina.com.cn/s/blog_605f5b4f0100hlt9.html JAVA 命令参数详解: 1.-D<name>=<value> set a system property  设置系统属性. java -D参数简化加入多个jar java命令引入jar时可以-cp参数,但时-cp不能用通配符(多个jar时什么烦要一个个写,不能*.jar),面通常的jar都在同一目录,且多于1个.前些日子找到(发现)-Djava.ext.dirs太好

JAVA 命令参数详解System.setProperty(

JAVA 命令参数详解: 1.-D<name>=<value> set a system property  设置系统属性. java -D参数简化加入多个jar java命令引入jar时可以-cp参数,但时-cp不能用通配符(多个jar时什么烦要一个个写,不能*.jar),面通常的jar都在同一目录,且多于1个.前些日子找到(发现)-Djava.ext.dirs太好. 如: java -Djava.ext.dirs=lib MyClass 可以在运行前配置一些属性,比如路径什么的

批处理中的echo命令图文详解

批处理中的echo命令图文详解 1. Echo 显示当前ECHO的状态:ECHO ON 或者ECHO OFF 2. ECHO ON 将ECHO状态设置为ON,将显示命令行,也就是前面的C:\>类似的标志,如图所示: 3. ECHO OFF 将ECHO状态设置为OFF,将不显示命令行,也就是前面的C:\>类似的标志,其他功能一样,用户也可以输入命令,也可以显示命令结果,如图所示: 4. ECHO 字符串 将输入的字符串显示在CMD屏幕上.如图所示 5. ECHO 字符串 &ECHO 字符