linux性能检测之sar详解
sar也是sysstat中的一员。
一、介绍
1.1 简介
sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数据。sar命令在sysetat rpm中提供。
sar可以显示CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断、网络等性能数据。最重要的sar功能是创建数据文件。每一个Linux系统都应该通过cron工作收集sar数据。该sar数据文件为系统管理员提供历史性能信息。这个功能非常重要,它将sar和其他性能工具区分开。
sar具有两种功能,第一种功能就是累计统计,周期地记录当时的信息。第二种功能就是可以实时的查看现在的性能指标信息。
为了实现 sar 的累计统计,系统必须周期地记录当时的信息,这是通过调用 /usr/lib/sa/ 中的三个工具实现的:
sa1 :收集并存储每天系统动态信息到一个二进制的文件中,用作 sadc 的前端程序
sa2 :收集每天的系统活跃信息写入总结性的报告,用作 sar 的前端程序
sadc :系统动态数据收集工具,收集的数据被写入一个二进制的文件中,它被用作 sar 工具的后端
#cat /etc/cron.d/sysstat #三个定时任务将收集的信息写入到/var/log/sa/目录下面以sa日期的形式存储。
Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1 #默认sar采集系统性能数据的间隔为10分钟,这个粒度太粗,需要修改为1分钟。
0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A #每天的23:53分生成当天的性能数据。
另外,文件 /var/log/sa/saDD 为二进制文件,不能使用 more、less 等文本工具查看,必须用 sar 或 sadf 命令查看。DD为当前日期。
1.2 格式:
sar [ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -i interval ] [ -m ] [ -p ] [ -q ] [ -r ] [ -R ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ] [ -j { ID | LABEL | PATH |
UUID | ... } ] [ -n { keyword [,...] | ALL } ] [ -I { int [,...] | SUM | ALL | XALL } ] [ -P { cpu [,...] | ALL } ] [ -o [ filename ] | -f [ filename ] ] [ --legacy ] [ -s [ hh:mm:ss ] ] [ -e
[ hh:mm:ss ] ] [ interval [ count ] ]
1.3 选项
-A : 这相当于指定-bBdqrRSuvwWy -I SUM -I XALL -n ALL -u ALL -P ALL。
-b : 报告I / O和传输速率统计。
-B : 报告分页统计.
-C : 从文件读取数据时,告诉sar显示sadc插入的注释。
-d : 输出每一个块设备的活动信息.
-e [hh:mm:ss] : 设置报告的结束时间。 默认结束时间为18:00:00。 小时必须以24小时格式提供。 当从文件读取或写入数据时,可以使用此选项(选项-f或-o)。
-f [filename] : 从filename中提取记录(由-o filename标记创建)。 filename参数的默认值是当前的每日数据文件,即/ var / log / sa / sadd文件。 -f选项是不包括-o选项。
-h : 显示一条简短的帮助信息,然后退出。
-i interval : 指定间隔时长,单位为秒.
-I {int [,...] | SUM | ALL | XALL} : 报告给定中断的统计信息。 int是中断号。 在命令行上指定多个-I int参数将查看多个独立中断。SUM表示要显示每秒接收的中断总数。 ALL关键字表示要报告前16个中断的统计信息,而XALL关键字表示将报告所有中断的统计信息,包括潜在的APIC中断源。 请注意,中断统计信息取决于sadc选项“-S INT”被收集。
-j { ID | LABEL | PATH | UUID | ... } : 显示持久的设备名称。 将此选项与选项-d配合使用。 选项ID,LABEL等指定持久名称的类型。 这些选项不限于此具有必需持久性名称的目录存在于/ dev/disk中。 如果设备没有找到持久性名称,则设备名称会打印完整. /dev/disk/目录下面有id,uuid,path三个目录。
-m { keyword [,...] | ALL }: 报告电源管理统计。 请注意,这些统计信息取决于sadc选项“-S POWER”。可能的关键字是CPU,FAN,FREQ,IN,TEMP和USB。
-n { keyword [,...] | ALL } : 报告网络统计可能的关键字是DEV,EDEV,NFS,NFSD,SOCK,IP,EIP,ICMP,EICMP,TCP,ETCP,UDP,SOCK6,IP6,EIP6,ICMP6,EICMP6和UDP6。
-o [filename] : 以二进制形式将文件保存在文件中。 每个阅读都在一个单独的记录。 filename参数的默认值是当前的日常数据文件,即/ var / log / sa / sadd文件。 -o选项不包括-f选项。 内核中可用的所有数据都保存在文件中(实际上,sar通过选项“-S ALL”调用其数据收集器sadc。
-P {cpu [,...] | 全部} : 针对指定的处理器或处理器报告每个处理器的统计信息。 指定每个单独处理器的ALL关键字报告统计信息,以及所有过程的全局信息,sors。 请注意,处理器0是第一个处理器。
-p : 显示友好设备名字,将此选项与选项-d配合使用。 默认名称打印为dev m-n,其中m和n是设备的主要和次要编号。 用于此选项将显示设备的名称(应)应显示在/ dev中。 名称映射由/etc/sysconfig/sysstat.ioconf控制。
-q : 报告队列长度和负载平均值。
-r : 报告内存利用率统计信息。
-R : 报告内存统计信息。
-s [hh:mm:ss] : 设置数据的开始时间,导致sar命令提取在指定的时间或之后的时间标记的记录。 默认开始时间为08:00:00。 时间一定是以24小时格式给出。 只有在从文件读取数据(选项-f)时,才能使用此选项。
-S : 报告交换空间利用率统计。
-t : 从日常数据文件读取数据时,表示sar应显示数据文件创建者的原始区域设置时间戳。 没有这个选项,sar命令在用户的区域设置时间内显示时间戳。
-u [ALL] : 报告CPU利用率。 ALL关键字表示应显示所有CPU字段。
-v : 报告inode,文件和其他内核表的状态。
-V : 打印版本号,然后退出。
-w : 报告任务创建和系统切换活动。
-W : 报表交换统计信息。
博文来自:www.51niux.com
二、示例
2.1 I/O和传送速率监控
# sar -b #不加参数的话,默认是读取定时任务产生的日志文件,将/var/log/sa/saDD里的信息读取出来打印在屏幕上,可见输出是十分钟的间隔,都是当天的信息,一直到当前最近的时间结束。
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain) 03/23/17 _x86_64_ (12 CPU)
00:00:01 tps rtps wtps bread/s bwrtn/s
00:10:01 3.21 0.06 3.15 1.84 13.98
#tps:发给物理设备的每秒传输总数。 传输是对物理设备的I / O请求。 多个逻辑请求可以组合成单个I / O请求到设备。 传输的大小不确定。每秒钟物理设备的 I/O 传输总量。
#rtps:发送到物理设备的每秒读取请求总数。每秒钟从物理设备读入的数据总量。
#wtps:发送到物理设备的每秒写入请求总数。每秒钟向物理设备写入的数据总量。
#bread/s:以每秒块为单位从设备读取的总数据量。 块相当于扇区,因此大小为512字节。
bwrtn/s:以每秒块为单位写入设备的总数量。
# sar -b 2 3 #这种就是实时输出信息,2秒钟刷新一次,输出三次。
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain) 03/23/17 _x86_64_ (12 CPU)
10:07:12 tps rtps wtps bread/s bwrtn/s
10:07:14 4.48 0.00 4.48 0.00 23.88
10:07:16 0.00 0.00 0.00 0.00 0.00
10:07:18 0.00 0.00 0.00 0.00 0.00
Average: 1.50 0.00 1.50 0.00 7.99
2.2 查询分页统计
#sar -B
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (32 CPU)
00时00分01秒 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
00时10分01秒 15.48 383.73 1222.21 0.00 572.28 0.00 0.00 0.00 0.00
00时20分01秒 1.52 325.47 1244.63 0.00 550.86 0.00 0.00 0.00 0.00
00时30分01秒 3.06 303.24 1227.47 0.00 546.21 0.00 0.00 0.00 0.00
#pgpgin/s:从磁盘读入系统每秒分页的总千字节数。
#pgpgout/s:每秒钟向磁盘写出的系统页面的KB总数。
#fault/s : 每秒制作的页面错误(major + minor)数量。 这不是生成I / O的页面错误的计数,因为一些页面错误可以在没有I / O的情况下解决。
#majflt/s : 系统每秒钟发生的主要故障数量,需要从磁盘加载内存页面的数量。
#pgfree/s : 由系统每秒放置在空闲列表上的页数。
#pgscank/s : kswapd守护程序每秒扫描的页数。
#pgscand/s : 每秒直接扫描的页数。
#pgsteal/s : 系统每秒从缓存(pagecache和swapcache)中回收的页数,以满足其内存需求。
#%vmeff : 计算为pgsteal / pgscan,这是页面回收效率的度量标准。 如果接近100%,几乎从非活动列表尾部的每个页面都将被收回。 如果它变得太低(例如小于30%),则虚拟存储器有一些困难。 如果在时间间隔内没有扫描页面,则该字段显示为零。
2.3 查看系统CPU的使用信息
# sar -C 2 3 #加不加-C 效果都是一样的。
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain) 03/23/17 _x86_64_ (12 CPU)
11:26:39 CPU %user %nice %system %iowait %steal %idle
11:26:41 all 0.84 0.00 0.21 0.00 0.00 98.96
11:26:43 all 0.75 0.00 0.25 0.00 0.00 99.00
11:26:45 all 0.75 0.00 0.17 0.00 0.00 99.08
Average: all 0.78 0.00 0.21 0.00 0.00 99.01
# sar 2 3 #每2秒钟刷新一次,一共刷新三次。跟sar -u 2 3效果一样
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain) 03/23/17 _x86_64_ (12 CPU)
11:26:48 CPU %user %nice %system %iowait %steal %idle
11:26:50 all 0.75 0.00 0.13 0.00 0.00 99.12
11:26:52 all 0.67 0.00 0.17 0.00 0.00 99.16
11:26:54 all 0.71 0.00 0.13 0.00 0.00 99.16
Average: all 0.71 0.00 0.14 0.00 0.00 99.15
#CPU:all 表示统计信息为所有 CPU 的平均值。
#%user:在用户级别(应用程序)执行时CPU占用率的百分比。 请注意,此字段包括运行虚拟处理器的时间。
#%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
#%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
#%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。若 %iowait 的值过高,表示硬盘存在I/O瓶颈
#%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
#%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量。 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。
# sar -P 0 #显示编号为0的CPU的统计信息。
# sar -P ALL #显示all和每个CPU的统计信息。
# sar -u ALL 2 2 #显示CPU比较详细的信息
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain) 03/23/17 _x86_64_ (12 CPU)
16:52:15 CPU %usr %nice %sys %iowait %steal %irq %soft %guest %gnice %idle
16:52:17 all 0.63 0.00 0.17 0.00 0.00 0.00 0.00 0.08 0.00 99.12
16:52:19 all 0.63 0.00 0.17 0.00 0.00 0.00 0.00 0.08 0.00 99.12
Average: all 0.63 0.00 0.17 0.00 0.00 0.00 0.00 0.08 0.00 99.12
#%usr : 在用户级别(应用程序)执行时CPU占用率的百分比。 请注意,此字段不包括运行虚拟处理器的时间。
#%nice : 在优先级高的用户级别执行时CPU占用率的百分比。
# %sys:在系统级别(内核)上执行时CPU占用率的百分比。 请注意,此字段不包括维护硬件或软件中断所花费的时间。
#%iowait:CPU或CPU在系统有未完成的磁盘I / O请求期间空闲的时间百分比。
#%steal:当虚拟机管理程序为另一个虚拟处理器服务时,虚拟CPU或CPU在非自愿等待中花费的时间百分比。
#%irq:CPU或CPU用于服务硬件中断的时间百分比。
#%soft:CPU或CPU用于服务软件中断所花费的时间百分比。
#%guest:CPU或CPU运行虚拟处理器所花费的时间百分比。
#%gnice:CPU或CPU花费的时间用于运行接收客人的时间百分比。
#%idle : CPU或CPU空闲且系统没有未完成的磁盘I / O请求的时间百分比。
2.4 输出块设备的活动信息
#sar -d -p 2 3 #-d要配合着-p,才能可视化的显示,不然显示 dev8-0这种格式
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
11时38分43秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11时38分45秒 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11时38分45秒 sdb 164.40 8238.74 15736.13 145.83 7.27 44.21 0.83 13.61
11时38分45秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11时38分47秒 sda 2.31 0.00 92.49 40.00 0.00 1.75 1.75 0.40
11时38分47秒 sdb 115.61 16647.40 739.88 150.40 0.31 2.72 0.43 4.97
11时38分47秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11时38分49秒 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11时38分49秒 sdb 153.33 3880.00 19275.56 151.01 10.48 68.37 0.92 14.11
平均时间: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
平均时间: sda 0.74 0.00 29.41 40.00 0.00 1.75 1.75 0.13
平均时间: sdb 145.22 9470.59 12138.24 148.80 6.12 42.15 0.76 11.03
#DEV:设备名称
#tps:指示发送到设备的每秒传输次数。多个逻辑请求可以合并到设备的单个I / O请求中。 转移是不确定的尺寸。
#rd_sec/s:从设备读取的扇区数。 扇区的大小为512字节。
#wr_sec/s:写入设备的扇区数。 扇区的大小为512字节。
#avgrq-sz:发给设备的请求的平均大小(以扇区为单位)。
#avgqu-sz:发送到设备的请求的平均队列长度。
#await:发给设备的I / O请求的平均时间(以毫秒为单位)。 这包括请求在队列中花费的时间以及为维护请求所花费的时间。
#svctm:发送到设备的I / O请求的平均服务时间(以毫秒为单位)。警告! 不要再相信这个领域了。 此字段将在未来的sysstat版本中被删除。
#%util:向设备发出I / O请求所耗费的时间百分比(设备的带宽利用率)。 当该值接近100%时说明磁盘读写将近饱和。
2.5 设置报告的结束时间和开始时间
# sar -s 01:00:00 -e 02:00:00 #加入我看历史状态信息就想从当天的凌晨1点到2点之间的记录,可以指定时间,不然的话会将0点到现在所有的报告打印出来。
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain) 03/23/17 _x86_64_ (12 CPU)
01:00:01 CPU %user %nice %system %iowait %steal %idle
01:10:01 all 0.73 0.00 0.15 0.00 0.00 99.12
01:20:01 all 0.73 0.00 0.16 0.00 0.00 99.11
01:30:02 all 0.73 0.00 0.15 0.00 0.00 99.12
01:40:01 all 0.73 0.00 0.15 0.00 0.00 99.12
01:50:01 all 0.73 0.00 0.15 0.00 0.00 99.11
Average: all 0.73 0.00 0.15 0.00 0.00 99.12
2.6 查看其它日志的负载记录
#sar -f /var/log/sa/sa15 -e 01:00:00 #因为sar默认都是查看当天的日期嘛,而sar的日志文件又是二进制的,如果我想翻看旧的历史记录怎么办呢?比如查看本月15号的记录,就需要用到-f指定配置文件了,如果不加-e 时间的话,默认就是显示15号整天的CPU的统计信息,如果加了时间的话,就会显示到我指定时间。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月15日 _x86_64_ (12 CPU)
00时00分02秒 CPU %user %nice %system %iowait %steal %idle
00时10分01秒 all 0.95 0.00 0.89 1.08 0.00 97.08
00时20分01秒 all 0.13 0.00 0.47 0.63 0.00 98.76
00时30分01秒 all 0.14 0.00 0.41 0.65 0.00 98.80
00时40分01秒 all 0.10 0.00 0.25 0.15 0.00 99.49
00时50分01秒 all 0.10 0.00 0.30 0.24 0.00 99.36
平均时间: all 0.28 0.00 0.47 0.55 0.00 98.70
# sar -u -o test 2 1 #可以手动的将采集的数据以二进制的形式写入到test文件中。
2.7 sar -I 中断的使用
# sar -I SUM #如果不加多少秒刷新一次的话,因为历史记录是不记录中断的,所以会查不到内容。
Requested activities not available in file /var/log/sa/sa23
# sar -I 3,5 2 2 #这是查询中断号是3和5,每2秒刷新一次,刷新2次的信息。
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain) 03/23/17 _x86_64_ (12 CPU)
13:51:41 INTR intr/s
13:51:43 3 0.00
13:51:43 5 0.00
13:51:43 INTR intr/s
13:51:45 3 0.00
13:51:45 5 0.00
Average: INTR intr/s
Average: 3 0.00
Average: 5 0.00
#INTR : 中断号
#intr/s: 每秒的中断次数
# sar -I SUM 2 2 #每秒的中断总数
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain) 03/23/17 _x86_64_ (12 CPU)
13:56:00 INTR intr/s
13:56:02 sum 438.50
13:56:04 sum 507.50
Average: sum 473.00
# sar -I ALL 2 2 #显示前十六个中断号,以及中断号对应每秒的中断数
# sar -I XALL 2 2 #表示将报告所有中断的统计信息,包括潜在的APIC中断源。
2.8 用m进行电源管理统计(新版本10版本才有的,旧版本没有这个选项)
# sar -m ALL 1 1 #显示所有的统计信息
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain) 03/23/17 _x86_64_ (12 CPU)
14:50:29 CPU MHz
14:50:30 all 1215.47
14:50:29 TEMP degC %temp DEVICE
14:50:30 1 30.00 43.48 coretemp-isa-0000
14:50:30 2 30.00 43.48 coretemp-isa-0000
14:50:30 3 25.00 36.23 coretemp-isa-0000
14:50:30 4 24.00 34.78 coretemp-isa-0000
14:50:30 5 30.00 43.48 coretemp-isa-0000
14:50:30 6 29.00 42.03 coretemp-isa-0000
14:50:30 7 24.00 34.78 coretemp-isa-0000
14:50:29 BUS idvendor idprod maxpower manufact product
14:50:30 1 8087 24 0
14:50:30 2 8087 24 0
14:50:30 1 424 2512 4
14:50:30 1 1a40 101 200 USB 2.0 Hub
14:50:30 1 624 248 200 no manufacturer Gadget USB HUB
14:50:30 1 413c 2107 200 Dell Dell USB Entry Keyboard
14:50:30 1 624 249 0 Avocent Keyboard/Mouse Function
# MHz:瞬时CPU时钟频率,单位MHz。
# sar -m USB 1 1 #显示USB的统计信息
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain) 03/23/17 _x86_64_ (12 CPU)
14:52:44 BUS idvendor idprod maxpower manufact product
14:52:45 1 8087 24 0
14:52:45 2 8087 24 0
14:52:45 1 424 2512 4
14:52:45 1 1a40 101 200 USB 2.0 Hub
14:52:45 1 624 248 200 no manufacturer Gadget USB HUB
14:52:45 1 413c 2107 200 Dell Dell USB Entry Keyboard
14:52:45 1 624 249 0 Avocent Keyboard/Mouse Function
#BUS:USB设备的根集线器号。
#idvendor:供应商ID号码(由USB组织分配)。
#idprod:产品编号(由制造商分配)。
#maxpower:器件的最大功耗(以mA表示)。
#manufact:制造商名称。
#product:产品名称。
博文来自:www.51niux.com
2.9 查看网络信息(总结了一部分剩下的可以看man文档)
#sar -n DEV 1 1 #使用DEV关键字,报告来自网络设备的统计信息。如果不加刷新周期为1秒,和刷新1次,就是查看历史的网络信息。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
15时02分46秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
15时02分47秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
15时02分47秒 eth0 2.04 5095.92 0.12 7232.75 0.00 0.00 0.00
15时02分47秒 eth1 2931.63 1142.86 210.94 1360.29 0.00 0.00 1.02
15时02分47秒 bond0 2933.67 6238.78 211.06 8593.04 0.00 0.00 1.02
平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
平均时间: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: eth0 2.04 5095.92 0.12 7232.75 0.00 0.00 0.00
平均时间: eth1 2931.63 1142.86 210.94 1360.29 0.00 0.00 1.02
平均时间: bond0 2933.67 6238.78 211.06 8593.04 0.00 0.00 1.02
#IFACE : 报告统计信息的网络接口名称。
#rxpck/s : 每秒接收的数据包总数。
#txpck/s : 每秒传输的报文总数。
#rxkB/s:每秒接收的千字节总数。
#txkB/s:每秒传输的总千字节数。
#rxcmp/s:每秒接收的压缩数据包数。
#txcmp/s:每秒传输的压缩包数。
#rxmcst/s : 每秒接收的组播数据包数。
#sar -n EDEV 1 1 #使用EDEV关键字,报告来自网络设备的故障(错误)的统计信息。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
15时12分58秒 IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
15时12分59秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
15时12分59秒 eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
15时12分59秒 eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
15时12分59秒 bond0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
平均时间: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: bond0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#IFACE:报告统计信息的网络接口名称。
#rxerr/s:每秒接收的坏数据包总数。
#txerr/s:发送数据包时每秒发生的错误总数。
#coll/s:发送数据包时每秒发生的冲突数。
#rxdrop/s:由于linux缓冲区中缺少空间,每秒丢弃的接收数据包数。
#txdrop/s:由于linux缓冲区中没有空间,每秒丢弃的传输数据包数。
#txcarr/s:发送数据包时每秒发生的载波错误数。
#rxfram/s:接收到的数据包每秒发生的帧对齐错误数。
#rxfifo/s:接收到的数据包每秒发生的FIFO溢出错误数。
#txfifo/s:发送数据包每秒发生的FIFO溢出错误数。
#sar -n SOCK 1 1 #使用SOCK关键字,报告使用的套接字的统计信息(IPv4)。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
15时19分17秒 totsck tcpsck udpsck rawsck ip-frag tcp-tw
15时19分18秒 211 114 8 0 0 334
平均时间: 211 114 8 0 0 334
#totsck:系统使用的套接字总数。
#tcpsck:目前使用的TCP套接字数。
#udpsck:目前使用的UDP套接字数。
#rawsck : 目前使用的RAW套接字数量。
#ip-frag : 当前队列中的IP片段数。
#tcp-tw : TIME_WAIT状态下的TCP套接字数。
#sar -n IP 1 1 #使用IP关键字,报告IPv4网络流量统计。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
15时29分14秒 irec/s fwddgm/s idel/s orq/s asmrq/s asmok/s fragok/s fragcrt/s
15时29分15秒 4725.51 0.00 4725.51 1836.73 0.00 0.00 0.00 0.00
平均时间: 4725.51 0.00 4725.51 1836.73 0.00 0.00 0.00 0.00
#irec/s : 从每秒接口接收的输入数据报的总数,包括错误[ipInReceives]中收到的数据报。
#fwddgm/s : 每秒输入数据报的数量,这个实体不是它们的最终IP目的地,结果是尝试找到将它们转发到最终目标地址的路由。最终目的地[ipForwDatagrams]。
#idel/s :每秒成功传送给IP用户协议(包括ICMP)[ipInDelivers]的输入数据报总数。
#orq/s:在传输请求中ip本地IP用户协议(包括ICMP)每秒提供的IP数据报的总数[ipOutRequests]。 请注意,此计数器不包括任何以fwddgm/s计数的数据报。
#asmrq/s:每秒接收的IP片段的数量需要在该实体重新组合[ipReasmReqds]。
#asmok/s:IP数据报的数量每秒成功重新组合[ipReasmOKs]。
#fragok/s:在该实体每秒成功分片的IP数据报的数量[ipFragOKs]。
#fragcrt/s:由于此实体[ipFragCreates]分段导致的每秒生成的IP数据报片段数。
#sar -n EIP 1 1 #IPV4的错误统计信息
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
15时37分58秒 ihdrerr/s iadrerr/s iukwnpr/s idisc/s odisc/s onort/s asmf/s fragf/s
15时37分59秒 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#ihdrerr/s:由于其IP头中的错误,每秒丢弃的输入数据报的数量,包括错误的校验和,版本号不匹配,其他格式错误,超时时间,涵盖处理其IP选项等。[ipInHdrErrors]
#iadrerr/s:每秒丢弃的输入数据报的数量,因为其IP头的目标字段中的IP地址不是要在该实体接收的有效地址。 该计数包括无效地址(例如,0.0.0.0)和不受支持的类(例如E类)的地址。 对于不是IP路由器的实体,因此不转发数据报,此计数器包括丢弃的数据克,因为目标地址不是本地地址[ipInAddrErrors]。
#iukwnpr/s:由于未知或不受支持的协议[ipInUnknownProtos],本地寻址的数据报的数量已成功接收,但每秒丢弃。
#idisc/s:每秒输入IP数据报的数量,没有遇到任何问题,以防止其继续处理,但被丢弃(例如,由于缺乏缓冲区空间)[ipInDis-card]。 请注意,该计数器不包括在等待重新组装时丢弃的任何数据报。
#odisc/s : 每秒输出IP数据报的数量,没有遇到任何问题,以防止它们传输到目的地,但被丢弃(例如,由于缺乏缓冲区空间)[ipOutDiscards]。 请注意,如果任何此类数据包符合此(自由裁量)丢弃标准,则此计数器将包括以fwddgm / s计数的数据报。
#onort/s : 每秒丢弃的IP数据报的数量,因为没有路由可以发送到目的地[ipOutNoRoutes]。 请注意,该计数器包括符合此“无路由”标准的以fwddgm / s计数的任何数据包。 请注意,这包括主机无法路由的任何数据报,因为它的所有默认路由器都关闭。
#asmf/s : 通过IP重组算法每秒检测到的故障次数(无论什么原因:超时,错误等)[ipReasmFails]。 注意,这不一定是丢弃的IP片段的计数,因为一些算法可以通过在它们被接收时将它们组合而失去对片段数的追踪。
#fragf/s : 每秒丢弃的IP数据报的数量,因为它们需要在该实体上分段,但不能(例如因为它们的不分段标志被设置为[ipFrag-Fails]]。
#sar -n TCP 1 1 #使用TCP关键字,报告TCPv4网络流量统计信息。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
15时46分34秒 active/s passive/s iseg/s oseg/s
15时46分35秒 5.15 74.23 3692.78 1770.10
平均时间: 5.15 74.23 3692.78 1770.10
#active/s : TCP连接从每秒CLOSED状态直接转换到SYN-SENT状态的次数[tcpActiveOpens]的次数。
#passive/s : TCP连接从每秒LISTEN状态直接转换到SYN-RCVD状态的次数[tcpPassiveOpens]的次数。
#iseg/s : 每秒收到的段数,包括错误接收的段数[tcpInSegs]。 该计数包括在当前建立的连接上接收到的段。
#oseg/s : 每秒发送的段的总数,包括当前连接数,但不包含仅重新发送的八位字节[tcpOutSegs]的段数。
#sar -n ETCP 1 1 #使用ETCP关键字,报告有关TCPv4网络错误的统计信息。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
15时55分01秒 atmptf/s estres/s retrans/s isegerr/s orsts/s
15时55分02秒 0.00 4.30 110.75 0.00 2.15
平均时间: 0.00 4.30 110.75 0.00 2.15
#atmptf/s : 每秒TCP连接的次数已经从SYN-SENT状态或SYN-RCVD状态直接转换到CLOSED状态,加上每秒TCP连接已经直接转换到LISTEN状态的次数 SYN-RCVD状态[tcpAttemptFails]。
#estres/s : 每秒TCP连接的次数已经从ESTABLISHED状态或CLOSE-WAIT状态[tcpEstabResets]直接转换到CLOSED状态。
#retrans/s : 每秒发送的段的总数,即包含一个或多个先前发送的八位字节[tcpRetransSegs]的TCP段的数量。
#isegerr/s : 错误接收的段的总数(例如,不良TCP校验和)/秒[tcpInErrs]。
#orsts/s : 每秒发送的包含RST标志[tcpOutRsts]的TCP段数。
2.10 进程队列长度和平均负载状态监控
#sar -q 2 3 #每2秒刷新一次输出三次,查看进程队列长度和平均负载
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
16时19分35秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
16时19分37秒 0 388 0.70 1.17 1.18
16时19分39秒 0 388 0.70 1.17 1.18
16时19分41秒 0 388 0.70 1.17 1.18
平均时间: 0 388 0.70 1.17 1.18
#runq-sz: 运行队列的长度(等待运行的进程数)。
#plist-sz: 进程列表中进程(processes)和线程(threads)的数量。
#ldavg-1: 最后一分钟的系统负载平均值。 负载平均值计算为可运行或正在运行的任务的平均数(R状态)以及指定间隔内不间断休眠(D状态)中的任务数。
#ldavg-5: 系统负载平均为5分钟。
#ldavg-15:系统负载平均为15分钟。
#blocked:当前阻塞的任务数,等待I / O完成。
当然负载情况也可以通过下面的文件进行查看:
# cat /proc/loadavg
0.09 0.08 0.06 1/276 30896
2.11 报告内存统计以及交换分区的状态信息
#sar -R 2 3 #输出内存页面的统计信息
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
16时27分29秒 frmpg/s bufpg/s campg/s
16时27分31秒 1802.12 0.53 -1740.21
16时27分33秒 -1540.84 1.05 1523.04
16时27分35秒 1523.98 -5.26 -1447.37
平均时间: 556.99 -1.09 -518.15
#frmpg/s:每秒释放系统的内存页数。 负值表示系统分配的页数。 请注意,根据机器架构,页面的大小为4 kB或8 kB。
#bufpg/s :用于系统每秒缓冲区的其他内存页数。 负值表示系统使用的缓冲区页数较少。
#campg/s : 每秒高速缓存的其他内存页数。 负值表示缓存中较少的页面。
# sar -r 2 3 #报告内存利用率统计信息。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
16时27分37秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
16时27分39秒 127840 7874248 98.40 340892 5420712 3730788 22.76
16时27分41秒 143836 7858252 98.20 340880 5403784 3730788 22.76
16时27分43秒 151648 7850440 98.10 340876 5395844 3730788 22.76
平均时间: 141108 7860980 98.24 340883 5406780 3730788 22.76
#kbmemfree : 可用内存量以千字节计。这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
#kbmemused : 已用内存量(千字节)。 这不考虑内核本身使用的内存。这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
#%memused : 已用内存的百分比。是kbmemused处于内存总大小的百分比。
#kbbuffers : 用作内核的缓冲区的内存量(以千字节为单位)。
#kbcached : 内存使用的内存量,以千字节为单位。
#kbcommit : 当前工作负载所需的内存量(以千字节计)。 这是估计需要多少RAM /交换来保证永远不会有内存不足。
#%commit : 相对于内存总量(RAM +交换),当前工作负载所需的内存所占百分比。 这个数字可能会大于100%,因为内核通常会占用内存。
#kbactive : 活动内存量(千字节)(最近已被使用的内存,通常不会被回收,除非绝对必要)。
#kbinact:不活动内存量(以千字节计算的内存(最近使用的内存),更有资格被用于其他目的)。
#kbdirty : 以KB为单位的内存量等待写入磁盘。
# sar -S 2 3 #报告交换空间利用率统计。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
16时38分50秒 kbswpfree kbswpused %swpused kbswpcad %swpcad
16时38分52秒 8355180 33420 0.40 2460 7.36
16时38分54秒 8355180 33420 0.40 2460 7.36
16时38分56秒 8355180 33420 0.40 2460 7.36
平均时间: 8355180 33420 0.40 2460 7.36
#kbswpfree : 空闲交换空间量(千字节)。
#kbswpused : 使用交换空间的量(以千字节计)。
#%swpused : 已用交换空间的百分比。
#kbswpcad : 高速缓存交换内存量,单位为千字节。 这是一旦被交换出来的内存,被交换回来,但仍然在交换区域(如果需要内存,则不需要再次交换,因为它已经在交换区域,这样可以节省I / O )。
#%swpcad : 缓存的交换内存占用交换空间的百分比。
#sar -W 2 2 #报告交换分区统计信息。这里一般都为0.00,如果有数了就说明内存有问题要用到swap分区了。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
17时07分25秒 pswpin/s pswpout/s
17时07分27秒 0.00 0.00
17时07分29秒 0.00 0.00
平均时间: 0.00 0.00
#pswpin/s:系统每秒引入的交换分区页面总数。
#pswpout/s:系统每秒引出的交换分区页面总数。
2.12 查看inode,文件和其他内核表的报告状态。
#sar -v 2 2
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
17时03分15秒 dentunusd file-nr inode-nr pty-nr
17时03分17秒 12635 1024 26932 211
17时03分19秒 12804 1024 27014 211
平均时间: 12720 1024 26973 211
#dentunusd :目录缓存中未使用的缓存条目数。
#file-nr : 系统使用的文件句柄数。
#inode-nr:系统使用的inode处理程序数。
#pty-nr:系统使用的伪终端(pty)数。
2.13 报告任务创建和系统切换活动
#sar -w 2 2
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
17时11分54秒 proc/s cswch/s
17时11分56秒 0.00 7488.30
17时11分58秒 0.00 9195.60
平均时间: 0.00 8368.56
#proc/s:每秒创建的任务总数。
#cswch/s :每秒上下文切换的总数。
2.14 报告TTY设备活动
#sar -y 2 2
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月23日 _x86_64_ (12 CPU)
17时13分52秒 TTY rcvin/s xmtin/s framerr/s prtyerr/s brk/s ovrun/s
17时13分54秒 0 0.00 0.00 0.00 0.00 0.00 0.00
17时13分54秒 1 0.00 0.00 0.00 0.00 0.00 0.00
17时13分54秒 TTY rcvin/s xmtin/s framerr/s prtyerr/s brk/s ovrun/s
17时13分56秒 0 0.00 0.00 0.00 0.00 0.00 0.00
17时13分56秒 1 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: TTY rcvin/s xmtin/s framerr/s prtyerr/s brk/s ovrun/s
平均时间: 0 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: 1 0.00 0.00 0.00 0.00 0.00 0.00
#TTY : 字符型设备编号
#rcvin/s : 当前串行线路每秒接收中断数。 串行行号在TTY列中给出。
#xmtin/s : 当前串行线路每秒发送中断数。
#framerr/s : 当前串行线路每秒帧错误数。
#prtyerr/s : 当前串行线路的每秒奇偶校验错误数。
#brk/s : 当前串行线路的每秒断裂次数。
#ovrun/s : 当前串行线路每秒溢出错误的数量。