> 文章列表 > sar基本命令格式操作及使用方法学习笔记

sar基本命令格式操作及使用方法学习笔记

sar基本命令格式操作及使用方法学习笔记

目录

  • SAR说明
  • Centos7安装
  • Sar命令
  • sar命令显示时间改为24小时制
  • 查询某天某个时间段内的数据

SAR说明

sar是一个采集,报告和存储计算机负载信息的工具。自下载安装好后每10分钟对系统性能进行一次采集,每天的日志文件保存再/var/log/sa/下,sa17就表示当月或上月17号的数据,sar15存储当天日志。
有的时候,我们要通过对系统的cpu负载等性能数值的查看,来判排查系统产生某种故障(经常死机或者运行速度突然变慢)的原因。但是,简单的top,uptime,w等命令只可以查看当前的负载,而无法查看过去的某一时间段的cpu的负载情况。
sar 命令很强大,是分析系统性能的重要工具之一,通过该命令可以全面地获取系统的 CPU、运行队列、磁盘读写(I/O)、分区(交换区)、内存、CPU 中断和网络等性能数据。

官方个人文档:SYSSTAT

Centos7安装

使用命令 yum -y install sysstat

安装完成重启即可

Sar命令

sar 相关帮助信息以及格式

Usage: sar [ options ] [ <interval> [ <count> ] ]
# options 表示操作,要查询的信息类型 【必选】
# interval 是统计间隔 【可选】
# count 是执行统计次数 【可选】
# 如果interval和count不选择,则查询当天的统计信息
Main options and reports:-b      I/O and transfer rate statistics-B      Paging statistics-d      Block device statistics-F [ MOUNT ]Filesystems statistics-H      Hugepages utilization statistics-I { <int> | SUM | ALL | XALL }Interrupts statistics-m { <keyword> [,...] | ALL }Power management statisticsKeywords are:CPU     CPU instantaneous clock frequencyFAN     Fans speedFREQ    CPU average clock frequencyIN      Voltage inputsTEMP    Devices temperatureUSB     USB devices plugged into the system-n { <keyword> [,...] | ALL }Network statisticsKeywords are:DEV     Network interfacesEDEV    Network interfaces (errors)NFS     NFS clientNFSD    NFS serverSOCK    Sockets (v4)IP      IP traffic      (v4)EIP     IP traffic      (v4) (errors)ICMP    ICMP traffic    (v4)EICMP   ICMP traffic    (v4) (errors)TCP     TCP traffic     (v4)ETCP    TCP traffic     (v4) (errors)UDP     UDP traffic     (v4)SOCK6   Sockets (v6)IP6     IP traffic      (v6)EIP6    IP traffic      (v6) (errors)ICMP6   ICMP traffic    (v6)EICMP6  ICMP traffic    (v6) (errors)UDP6    UDP traffic     (v6)-q      Queue length and load average statistics-r      Memory utilization statistics-R      Memory statistics-S      Swap space utilization statistics-u [ ALL ]CPU utilization statistics-v      Kernel table statistics-w      Task creation and system switching statistics-W      Swapping statistics-y      TTY device statistics

常用命令

默认监控: sar 1 1     //  CPU和IOWAIT统计状态 
(1) sar -b 1 1        // IO传送速率
(2) sar -B 1 1        // 页交换速率
(3) sar -c 1 1        // 进程创建的速率
(4) sar -d 1 1        // 块设备的活跃信息
(5) sar -n DEV 1 1    // 网路设备的状态信息
(6) sar -n SOCK 1 1   // SOCK的使用情况
(7) sar -n ALL 1 1    // 所有的网络状态信息
(8) sar -P ALL 1 1    // 每颗CPU的使用状态信息和IOWAIT统计状态 
(9) sar -q 1 1        // 队列的长度(等待运行的进程数)和负载的状态
(10) sar -r 1 1      // 内存和swap空间使用情况
(11) sar -R 1 1       // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12) sar -u 1 1       // CPU的使用情况和IOWAIT信息(同默认监控)
(13) sar -v 1 1       // inode, file and other kernel tablesd的状态信息
(14) sar -w 1 1       // 每秒上下文交换的数目
(15) sar -W 1 1       // SWAP交换的统计信息(监控状态同iostat 的si so)
(16) sar -x 2906 1 1  // 显示指定进程(2906)的统计信息,信息包括:进程造成的错误、用户级和系统级用户CPU的占用情况、运行在哪颗CPU上
(17) sar -y 1 1       // TTY设备的活动状态

获取所有的监控信息,包括I/O,CPU,内存等

sar -A [X] [X]
sar -A -f /var/log/sa/saXX #查看某天的监控日志信息

获取系统分页信息

sar -B [X] [X] or sar -B -f /var/log/sa/saXX

sar基本命令格式操作及使用方法学习笔记

pgpgin/s 系统每秒从磁盘分页的总KB数。
pgpgout/s 系统每秒分页到磁盘的总KB数。
fault/s 系统每秒发生的页面错误数(主要+次要)。这不是生成I/O的页面错误的计数,因为有些页面错误可以在没有I/O的情况下解决。
majflt/s 系统每秒发生的主要故障数,即需要从磁盘加载内存页的故障数。
pgfree/s 系统每秒在空闲列表中放置的页数。
pgscank/s kswapd后台进程每秒扫描的页数。
pgscand/s 每秒直接扫描的页数。。
pgsteal/s 系统每秒从缓存(pagecache和swapcache)中回收以满足其内存需求的页数。
%vmeff 计算为pgsteal/pgscan,这是页面回收效率的度量。如果接近100%,那么几乎所有从非活动列表尾部脱落的页面都会被收割。如果它变得太低(例如,小于30%),那么虚拟内存就有一些困难。如果在此时间间隔内未扫描任何页面,则此字段显示为零。

获取磁盘I/O和传输速率统计信息

sar -b [X] [X]  or sar -b -f /var/log/sa/saX

sar基本命令格式操作及使用方法学习笔记

tps 每秒发送到物理设备的传输总数。传输是对物理设备的I/O请求。多个逻辑请求可以合并为对设备的单个I/O请求。转移的大小不确定。
rtps 每秒向物理设备发出的读取请求总数。
wtps 每秒向物理设备发出的写入请求总数。
bread/s 每秒从设备读取的数据总量(以块为单位)。块相当于扇区,因此具有512字节的大小。
bwrtn/s 每秒写入设备的数据总量(以块为单位)。

查看网卡监控信息

使用DEV关键字,报告来自网络设备的统计信息。除非使用选项“--iface=”指定了限制列表,否则将显示所有网络接口的统计信息
sar -n DEV [X] [X]
# Possible keywords are DEV, EDEV, FC, ICMP, EICMP, ICMP6, EICMP6, IP, EIP, IP6, EIP6, NFS, NFSD, SOCK, SOCK6, SOFT, TCP, ETCP, UDP and UDP6.

sar基本命令格式操作及使用方法学习笔记

IFACE 网卡名称
rxpck/s 每秒接收的数据包总数。
txpck/s 每秒传输的数据包总数。
rxkB/s 每秒接收的总KB数。
txkB/s 每秒传输的总KB数。
rxcmp/s 每秒接收的压缩数据包数(对于cslip等)。
txcmp/s 每秒传输的压缩数据包数。
rxmcst/s 每秒接收的多播数据包数。

查看CPU监控信息

sar -u [X] [X]  or  sar -u -f /var/log/sa/saXX
sar -u [可选:ALL] [X] [X] #显示所有字段

报告CPU利用率。ALL关键字表示应显示所有CPU字段。

sar基本命令格式操作及使用方法学习笔记

CPU ALL表示统计信息为所有CPU的平均值。
%user 在用户态执行时发生的CPU利用率百分比。请注意,此字段包括运行虚拟处理器所花费的时间。
%nice 在具有良好优先级的用户态执行时发生的CPU利用率百分比。
%system 在内核态执行时发生的CPU利用率百分比。请注意,此字段包括服务硬件和软件中断所花费的时间。
%iowait 一个或多个CPU空闲的时间百分比,在此期间系统有未完成的磁盘I/O请求。
%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比。
%idle 一个或多个CPU空闲且系统没有未完成的磁盘I/O请求的时间百分比。
主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。

内存空间使用情况

sar -r [X] [X]  or  sar -r -f /var/log/sa/saXX

sar基本命令格式操作及使用方法学习笔记

kbmemfree 空闲的物理内存大小
kbmemused 使用中的物理内存大小
%memused 物理内存使用率
kbbuffers 内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcached 缓存大小
kbcommit 保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)
%commit 这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值
kbactive 经常被访问的内存量(单位:KB)
kbinact 不经常被访问的内存量(单位KB)
kbdirty 等待写回磁盘的内存量(单位KB)

sar命令显示时间改为24小时制

sar基本命令格式操作及使用方法学习笔记
sar默认显示为12小时制,这里提取数据比较麻烦,对于后续的数据处理也麻烦,让其输出变为24小时制,为后续处理提供方便

LC_TIME = posix sar [options] [<interval>] [<count>]

这样的格式输入命令执行就会得到24小时制的统计数据。除了前面加上了LC_TIME = posix,其他使用方法都一样。

sar基本命令格式操作及使用方法学习笔记

查询某天某个时间段内的数据

sar -s 3:00:00 -e 4:00:00 [命令]
# 或者从文件中读取
sar -s 3:00:00 -e 4:00:00 [命令] -f /var/log/sa/saXX