暂无图片
Linux sar简介
最近更新:2023-08-21 09:24:07

适用范围

Linux操作系统

目的

Linux sar查看相关历史性能数据

问题原因

数据库历史某个时段出现故障,可能需要查看故障时段操作系统的负载,如果相关环境又没有部署oswbb、nmon等数据,则Linux sar提供了历史的性能数据,熟悉Linux sar的特性,也可以对系统历史性能负载做相关评估

详细方案

一、Linux sar命令

1.sar是做什么的?

主要负责收集、汇报与存储系统运行信息。

2.sar怎么控制信息输出的时间间隔和次数?

有两个参数非常有用,就是“时间间隔”和“输出次数”。 例如:sar 0 表示输出的信息是从开机到现在为止的平均值 sar 60 5 表示每60秒输出一次,共输出5次,历时300秒。 sar 60 0 表示每60秒输出一次,一直到关机为止。注意:sar 0 0 这样是行不通的。

3.保存sar输出的信息

sar提供了一个选项:-o filename。 例如:sar 5 6 -o sys_info sar -f sys_info 用于读取存储的信息文件,不能使用cat,否则将显示乱码。

如果没有在使用-o时指定保存的文件名,sar会将信息保存在“/var/log/saDD”文件中,其中DD表示当天的日期数字。 例如:sar 5 6 -o 就会保存在/var/log/sa/sa27文件中,当前日期是2011年6月27日。

4.sar输出查看cpu之外的信息

常用选项包括: -b:报告I/O使用情况以及传输速率。(只适用于2.5及之前的内核,所以新内核有可能不支持这个选项) -B:报告“页”使用情况 -c:报告进程创建情况 -d:报告每一个块设备的使用情况(当你使用时,你会发现在DEV列有类似dev1-7格式的字符串,其中1代表设备的主序号,n代表设备的从序号,而且rd_sec/s列和wr_sec/s列的单位都是512bytes,也就是512B,也就是0.5KB) -I:汇报中断情况 -n:汇报网络情况 -P:设定CPU -q:汇报队列长度和负载信息 -r:汇报内存和交换区使用情况 -R:汇报内存情况 -u:汇报CPU使用情况 -v:汇报i节点、文件和其他内核表信息 -w:汇报系统上下文切换情况 -x:可以针对某个特定PID给出统计信息, 可以直接指定进程ID号; 也可以指定为SELF,这样就是检测sar进程本身; 如果设定为ALL,则表示汇报所有系统进程信息。 -X:汇报特定PID的子进程的信息 -y:设定TTY设备的信息。

5.对网络的专门实例

sar命令使用-n选项可以回报网络相关信息,可用参数包括:DEV、EDEV、SOCK、FULL。 例如:sar -n DEV 1 2 将显示lo、eth0、eth1等信息 IFACE:就是网络设备的名称; rxpck/s:每秒钟接收到的包数目 txpck/s:每秒钟发送出去的包数目 rxbyt/s:每秒钟接收到的字节数 txbyt/s:每秒钟发送出去的字节数 rxcmp/s:每秒钟接收到的压缩包数目 txcmp/s:每秒钟发送出去的压缩包数目 txmcst/s:每秒钟接收到的多播包的包数目 sar -n EDEV 1 3 会针对网络设备回报其失败情况 rxerr/s:每秒钟接收到的损坏的包的数目 txerr/s:当发送包时,每秒钟发生的错误数 coll/s:当发送包时,每秒钟发生的冲撞(collisions)数(这个是在半双工模式下才有) rxdrop/s:由于缓冲区满,网络设备接收端,每秒钟丢掉的网络包的数目 txdrop/s:由于缓冲区满,网络设备发送端,每秒钟丢掉的网络包的数目 txcarr/s:当发送数据包时,每秒钟载波错误发生的次数 rxfram/s:在接收数据包时,每秒钟发生的帧对齐错误的次数 rxfifo/s:在接收数据包时,每秒钟缓冲区溢出错误发生的次数 txfifo/s:在发送数据包时,每秒钟缓冲区溢出错误发生的次数 sar -n SOCK 1 3 会针对socket连接进行汇报 totsck:被使用的socket的总数目 tcpsck:当前正在被使用于TCP的socket数目 udpsck:当前正在被使用于UDP的socket数目 rawsck:当前正在被使用于RAW的socket数目 ip-frag:当前的IP分片的数目 sar -n FULL 1 3 相当于上述DEV、EDEV和SOCK三者的综合。

6.对磁盘的专门实例

-d的输出显示了一个度量时间段内各种与磁盘相关的统计数据

二、sar默认的历史信息

sar采集结果默认保存在/var/log/sa/目录下, 文件名saxx. 默认只保留7天的文件,查看指定文件CPU使用记录:

[root@ora121c-standby-node02 sa]# sar -f /var/log/sa/sa14
Linux 2.6.32-358.el6.x86_64 (ora121c-standby-node02)    01/14/2022      _x86_64_        (1 CPU)

04:30:31 PM       LINUX RESTART

04:40:02 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
04:50:01 PM     all     14.81      0.00      6.86      1.83      0.00     76.50
05:00:01 PM     all      1.72      0.00      1.49      0.55      0.00     96.25
......