使用sar分析系统性能

都知道Linux系统使用sar会收集系统运行的各种数据,可以用sar分析过去一段时间CPU,内存,网络使用等情况,分析系统瓶颈,在分析线上故障或性能问题时非常有用,但是一直没有好好用过,基本连io分析都不会,今天做个笔记记录以下sar的使用。

概述

sar 命令用于收集,报告,或者保存Unix/Linux系统的活动信息,一般将这些信息保存在 /var/log/sa/ 目录下,这些信息包括CPU使用率, 内存页面和使用率,网络IO和传输统计,进程创建活动,块设备活动和每秒中断计数等。

常说的sar来源于 sysstat 包,包括sar,sa1, sa2 三个工具。sar用户分析、显示 sa1 和 sa2 工具记录的日志。 sa2 工具每天在 /var/log/sa 目录下如一个报告,文件名以月份第N天命名。 sa1 工具将每天的系统活动信息以二进制数据写入到文件中。

配置

sysstat的配置文件在 /etc/sysconfig/sysstat 可以配置日至文件保存多少天,最长为一个月。各项配置在文件中都有说明。

常用命令

sar [option] [interval [count]]

常用选项:

  • -A 所用,等价于 -bBdFHqSuvwWy -I SUM -I ALL -m ALL -n ALL -r ALL -u ALL -P ALL
  • -B 报告换页(pagging)统计
  • -b 报告IO和数据传输速率统计
  • -d 报告每个块设备的活动
  • -F [MOUNT] 显示当前挂载文件系统的统计,伪文件系统(pseudo-fs)会被忽略。
  • -f [filename] 从指定文件获取信息,默认使用当前时间对应的文件
  • --human 对大小数值使用易读的单位打印
  • -P {cpu_list|ALL} 报告CPU统计,可以指定某个或某几个CPU。0是第一个CPU。
  • -p pretty print device name。
  • -q 报告队列长度和平均负载
  • -r 报告内存使用统计
  • -S 报告swap空间使用统计
  • -s [hh:mm[:ss]] 设置数据的开始时间,只有指定从文件读取数据时可用,时间使用24小时形式。默认开始时间时 08:00:00
  • -e [hh:mm[:ss]] 设置结束时间
  • -I {int_list|SUM|ALL} 统计中断信息,指定中断列表或打印统计信息或所有中断统计。
  • -n {keyword [,...]|ALL} 显示网络统计,可用的keyword包括 DEV, EDEV, FC, ICMP, EICMP, ICMP6, EICMP6, IP, EIP, IP6, EIP6, NFS, NFSD, SOCK, SOCK6, SOFT, TCP, ETCP, UDP and UDP6. 使用 sar -n ALL 1 查看当前网络情况,每秒刷新一次。
  • -t 使用用户本地时间显示记录
  • -u [ALL] 报告CPU使用率统计
  • -v 报告inode,文件和其它内核表的状态。
  • -W 报告 swapping 统计
  • -w 报告任务创建和系统切换活动
  • -y 报告 TTY 设备活动

Ref: