linux安装sar命令 (Linux基础命令总结)

命令含义:

sar(System Activity Reporter 系统活动情况报告)是Linux 的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动。

使用如下命令安装sar命令:yum install sysstat

用法:sar [参数] [时间间隔] [次数]

常用参数:

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

-q:输出进程队列长度和平均负载状态统计信息

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

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

-W:输出系统交换的统计信息

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

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

-f filename:从filename读取数据信息

-s hh:mm:ss:指定输出统计数据的起始时间

-e hh:mm:ss:指定输出统计数据的截止时间,默认为18:00:00

-o filename:将输出信息保存到文件filename

实例:

sar -u 1

统计cpu的使用率,每1秒取一次值,各列含义如下:

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

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

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

%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比

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

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

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

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

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

2)若%idle的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU

sar -q 1

系统队列长度和平均负载,各列含义如下:

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

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

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

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

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

sar -B 1

内存分页情况,各列含义如下:

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)的百分比

sar -W 1

系统页面swap信息,各列含义如下:

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

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

sar -r 1

输出内存使用率,单位为kbytes,各列含义如下:

Kbmemfree表示空闲内存,不包括 cache 空间

kbmemused表示使用内存,不包括内核使用空间

%memused是kbmemused 和内存总量(free命令中的total值,不包括 SWAP)的百分比

kbbuffers和kbcached表示内核使用的 buff/cache 空间

kbcommit表示当前系统运行所需的内存,用于评估 RAM+SWAP 总的大小保证程序不会被 OOM

%commit是kbcommit 与内存总量(包括 swap)的一个百分比,该值可能会超过 100%,因为内存允许overcommit

sar -b 1

I/O 和传输速率信息状况,各列含义如下:

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

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

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

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

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

sar -d 1

块设备状况,各列含义如下:

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

rd_sec/s表示每秒读扇区的次数

wr_sec/s表示每秒写扇区的次数

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

avgqu-sz表示磁盘请求队列的平均长度

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

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

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

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

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

sar -f /var/log/sa/sa27 -s 00:00:00 -e 23:00:00 -r

查看非实时数据,27号0点到23点的内存使用情况

sar -r 1 10 -o log.out

将输出保存为文件名为log.out文件

sar -d 1 10 -f log.out

读取文件名为log.out的日志文件

判断系统瓶颈:

1)怀疑CPU存在瓶颈,可用sar -u和sar -q来查看

2)怀疑内存存在瓶颈,可用sar -B、sar -r和sar -W等来查看

3)怀疑I/O存在瓶颈,可用sar -b、sar -u和sar -d等来查看

扩展参数:

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

-i:指定间隔时长,单位为秒

-p:显示易读性高的设备名称,也可结合-d和-n参数使用,如-dp、-np

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

-t:读取/var/log/sa/saXX的数据时显示其中记录的原始时间,如果没有这个参数使用用户的本地时间

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

-V:输出版本号信息

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

-y:输出TTY设备的活动信息

-n {DEV|EDEV|NFS|NFSD|SOCK|ALL}:分析输出网络设备状态统计信息

DEV:报告网络设备的统计信息

EDEV:报告网络设备的错误统计信息

NFS:报告NFS客户端的活动统计信息

NFSD:报告NFS服务器的活动统计信息

SOCK:报告网络套接字(sockets)的使用统计信息

ALL:报告所有类型的网络活动统计信息

-x {pid|SELF|ALL}:输出指定进程的统计信息

pid:用pid指定特定的进程

SELF:表示sar自身

ALL:表示所有进程

-X {pid|SELF|ALL}:输出指定进程的子进程的统计信息

-l {irq|SUM|ALL|XALL}:输出指定中断的统计信息

irq:指定中断号

SUM:指定输出每秒接收到的中断总数

ALL:指定输出前16个中断

XALL:指定输出全部的中断信息

-P {cpu|ALL}:指定输出CPU的统计信息