查看历史数据的Sar命令

有时,我们要检查系统的性能值,比如cpu负载,以确定系统出现某种故障(经常崩溃或突然变慢)的原因。而top、uptime、w等简单命令只能查看当前负载,不能查看过去某段时间的cpu负载。

下面是一个性能分析的命令,可以用来检查过去某段时间的cpu负载(系统性能)。

要检查某段时间内的cpu使用情况,请跳到第7节。

一.搜救概念

Sysstat是Linux系统中常用的工具包,sar是用来监控Linux系统性能的工具之一。

Sysstat工具包包含两类工具:即时查看工具(iostat、mpstat、SAR);累积统计工具

因此,sar命令也称为系统活动报告。不仅可以实时查看服务器的性能,还可以进行累计统计。

第二,sar监测的范围

文件的读写

系统调用的使用

磁盘I/O使用情况

CPU使用统计

内存使用

流程活动

国际残奥委会相关活动

三、sar命令使用环境

Sar命令格式:

Sar+命令行选项(可选)+间隔(可选)+次数(可选)

通常用于判断系统瓶颈问题。

查询CPU可以用sar -u和sar -q查看查询内存,用sar -B、sar -r和sar -W查看查询io,用sar -b、sar -u和sar -d查看。

四、sar命令累积统计的实现过程

系统将通过调用/usr/lib64/sa/中的三个工具(sa1 sa2 sadc)实现定期记录当时系统性能的信息的功能。

Sa1:收集每天的系统性能信息,写入二进制文件,这是sadc的前端程序。

Sa2:收集每天的系统活动信息,写入一个汇总文件,作为sar的前端程序。

Sadc:收集系统的动态数据,写入二进制文件,作为sar工具的后端。

动词 (verb的缩写)合成孔径雷达测井

Sar有一个类似于日志切割的功能,它会根据/etc/cron.d/sysstat中的调度任务将日志放入/var/log/sa/中。

注意:日志是一个二进制文件,不能用more、less和vim工具查看。必须使用sar或sadf。

您可以根据需要修改计划任务。

如果要检查服务器在某段时间内的性能,其中一个方法就是使用sar命令来检查当天的日志文件。

sar -f /var/log/sa/sa15

[root @ lib 64]# sar-f/var/log/sa/sa 15 Linux 3.10.0-327 . el7 . x86 _ 64(ops-node 7)07/15/2018 _ x86 _ 64 _(24 CPU)12:00:01 amcpu % user % nice % system % iowait % steal % idle

注意:

sar查看性能或其日志时使用的12/24小时制;日志从昨晚的12砍到今天的12。默认情况下,只保留一个月的日志。

不及物动词sar命令参数和输出项的详细说明

1格式

用法:sar+option+time interval(可选)+times(可选)

间隔:以秒为单位的采样周期;计数:采样次数;默认值为1选项:命令行选项。

2个常见选项

-A?所有报告的总和-B?内存页面的输出统计-b?输出I/O和传输速率统计?输出进程统计数据和每秒创建的进程数?输出每个块设备的活动信息-H?输出交换空间利用率信息?输出帮助信息-p?输出友好的设备名称以便于查看,通常与-d和-n参数结合使用-q?输出进程队列长度和系统平均负载状态统计?内存页面的输出统计-r?内存和交换空间的输出统计?输出交换空间利用率信息?在/var/log/sa/下读取日志的数据时,显示其中记录的原始时间-u?整体CPU使用率的输出统计-V?输出版本信息-v?输出内核表状态统计(inode、文件和其他内核表的统计)-W?系统交换的输出统计-w?输出任务创建和系统转换统计-y?输出终端设备的活动信息-I?添加参数前输出指定中断的统计信息{...|SUM|ALL|XALL}?...?指定中断数总和?指定输出每秒接收的中断总数?指定第一个16中断。XALL指定输出所有中断信息-P?输出指定部分CPU的统计信息,然后加上参数{cpu|ALL}cpu?指定cpuALL?单个和整体cpu-n的输出统计?输出网络设备(网卡)的统计信息,然后添加参数{ dev | edev | NFS | nfsd | sock | all } dev?网络设备的输出统计EDEV网络设备的输出错误统计NFS?输出NFS客户端的活动统计NFSD输出NFS服务器的活动统计SOCK输出网络套接字的使用统计ALL?输出所有类型的网络活动统计?从文件中读取数据信息。一般可以读取sar日志,也可以读取-o选项生成的文件,后面是文件名-o?将sar的输出信息保存到一个文件中,然后添加文件名-i?以秒为单位指定间隔长度?指定输出统计数据的开始时间(格式:hh:mm:ss;比如01: 00: 00)?-e?指定输出统计信息的截止时间,通常与-S选项一起使用。没有数值时,默认为18:00:00(格式为HH:MM:SS;例如09: 00: 00)

3输出项目

& lt1 & gt;cpu的输出

sar -u

%usr?CPU处于用户模式,执行进程的时间百分比是%nice?CPU在用户模式下用于nice操作,占总CPU时间的百分比%系统CPU处于系统模式(内核模式),执行进程的时间百分比%iowait CPU用于等待I/O操作完成(等待输入输出完成),占总CPU时间的百分比%steal hypervisor等待虚拟CPU为另一个虚拟进程提供服务%idle?CPU空闲时间的百分比

注意:

如果%iowait的值太高,则意味着硬盘存在I/O瓶颈。如果%idle的值很高,则意味着CPU处于空闲状态。如果%idle的值很高但系统响应很慢,可能是CPU在等待内存分配,此时应该增加内存容量。如果%idle的值持续低于10,则系统的CPU处理能力相对较低,说明CPU是系统中最需要的资源。

& lt2 & gtI/O和传输率输出

sar -b

tps每秒从磁盘设备请求数据的次数,包括读取和写入请求,这是RTP和WTP的总和。每次IO发出后,多个请求会合并成一个I/O磁盘请求,其中tps是指请求合并后的请求计数rtps?每秒对磁盘设备的读请求数?每秒对磁盘设备的写入请求数每秒从物理设备读取的数据(以块/秒为单位)每秒写入物理设备的数据(以块/秒为单位)

& lt3 & gt设备使用量输出

合成孔径雷达

DEV磁盘设备,加上参数-p可以打印出sda等磁盘设备的名称;如果不添加参数-p,设备将显示为每秒钟诸如dev253-0之类的tps从磁盘设备请求数据的次数,包括读取和写入请求,这是rtps和wtps的总和。每次IO发出后,多个请求会合并成一个I/O磁盘请求,其中tps指请求计数rd_sec/s?每秒的扇区读取次数?每秒写入扇区的次数avgrq-sz?每个设备I/O操作的平均数据大小(扇区)avgqu-sz?磁盘请求队列等待的平均长度?从请求磁盘到完成svctm处理,每个请求的平均消耗时间,包括请求队列的等待时间(以毫秒计)。系统处理每个请求的平均时间,不包括花费在请求队列中的时间。I/O请求占CPU的百分比

& lt4 & gt网络设备统计信息输出

EDEV特区

IFACE?网络设备名称rxpck/s每秒接收的数据包数txpck/s每秒发送的数据包数rxbyt/s每秒接收的字节数(以字节为单位)每秒发送的字节数txbyt/s(以字节为单位)每秒接收的数据数rxkb/s(以kB为单位)每秒发送的数据数(以kB为单位)rxcmp/s每秒接收的压缩数据包数txcmp/s每秒发送的压缩数据包数rxmcst/s?网络设备故障排除每秒接收的多播数据包总数

& lt5 & gt网络设备故障信息输出

Edev | egrep' eth0 | iface '(这次指定etho0,其他网卡也可以填)。

I接口网络设备名称rxerr/s每秒接收的坏数据包数txerr/s每秒发送数据包时的错误数coll/s每秒发送数据包时的冲突数rxdrop/s每秒丢弃的数据包数(由于缺少缓存)txdrop/s每秒发送数据包时丢弃的数据包数txcarr/s每秒发送错误数rxfram/s每秒接收数据包时的帧检查错误数rxfifo/s每秒发送数据包时的缓冲区溢出错误数txfifo/s缓冲区数

& lt6 & gt存储器分页状态输出

sar -B

每秒pgpgin/s从磁盘空间或交换空间替换到内存的字节数(KB)每秒pgpg out/s从内存替换到磁盘空间或交换空间的字节数(KB)每秒fault/s系统每秒生成的缺失页数(主缺失页加上辅助缺失页)主FLT/s每秒生成的主缺失页数pgfree/s每秒放入空闲队列的页数pgscank/ s kswapd每秒扫描的页数pgscand/s每秒直接扫描的页数pgsteal/s每秒从缓存中清除以满足内存需求的页数%vmeff每秒清除的页数占总扫描页数的百分比。

& lt7 & gt流程队列长度和平均负载状态输出

sar -q

runq-sz?运行队列的长度,等待运行的进程的数量。

plist-sz进程列表中的进程和线程数

ldavg-1?过去1分钟内的平均系统负载

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

Ldavg-15过去15分钟内的平均系统负载。

& lt8 & gt内存和交换空间状态输出

合成孔径雷达

Kbmemfree空闲内存(KB)kbmemused内存,不包括内核使用的内存(KB)%memused内存百分比kbbuffers内核缓冲区,使用的内存量(KB) KB缓存的内核缓存数据使用的内存量(KB)kbcommit保证当前系统需要的内存,即内存(RAM+swap)%commitkbcommit占所有内存总量的百分比,以确保不溢出。

& lt9 & gt系统交换活动信息输出

sar -W

pswpin/s?系统每秒换入的交换页数

pswpout/s?系统每秒换出的交换页数。

七、sar使用实例——检查某段时间内的情况。

& lt1 & gt;从1到凌晨3点检查cpu

sar -s 01:00:00 -e 03:00:00

& lt2 & gt检查系统从1到凌晨3点的平均负载。

要查看某段时间内的其他表演,添加相应的选项。

sar-s 01:00:00-e 03:00:00-q

& lt3 & gt本月3号检查cpu。

注意:

这个操作需要检查sar日志(在第5节中介绍过)。

默认情况下,只保存一个月。

在查看性能或其日志时,sar应注意它使用的是12还是24小时制。

伐木从昨晚的12到今天的12。

cd/var/log/sa/sar -f sa03