sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数据 。sar命令在sysetat rpm中提供 。示例中使用sysstat版本5.0.5,这是稳定的最新版本之一 。关于版本和下载信息,请访问sysstat主页http://perso.wanadoo.fr/sebastien.godard/ 。
sar可以显示CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断、网络等性能数据 。最重要的sar功能是创建数据文件 。每一个Linux系统都应该通过cron工作收集sar数据 。该sar数据文件为系统管理员提供历史性能信息 。这个功能非常重要,它将sar和其他性能工具区分开 。如果一个夜晚批处理工作正常运行两次,直到下一个早上才会发现这种情况(除非被叫醒) 。我们需要具备研究12小时以前的性能数据的能力 。sar数据收集器提供了这种能力 。有许多报告语法,我们首先讨论数据收集 。
3.2.1 ;sar数据收集器sar数据收集通过/usr/lib/sa中的一个二进制可执行文件和两个脚本来完成 。sar数据收集器是一个位于/usr/lib/sa/sadc的二进制可执行文件 。sadc的工作是写入数据收集文件/var/1og/sa/ 。可以为sadc提供几个选项 。常见语法是:
间隔是取样间的秒数,iterations是要取得的样本数量,file name定义输出文件 。简单的sadc语法是/usr/lib/sa/sadc 360 5/tmp/sadc.out 。这个命令在5分钟间隔取得5个样本并将它们保存在/tmp/sadc.out 。我们应该定期收集样本,因此需要一个由cron运行的脚本 。应该把样本放在一个有意义的地方,如在前一节中使用top脚本时那样 。sysstat rpm提供/usr/lib/sa/sa1脚本来完成所有这些事情 。
sa1(8)手册页比sa1脚本本身要长得多 。/usr/lib/sa/sa1是一个非常简单的脚本,使用语法sadc -F -L 1 1 /var/log/sa/sa##来运行sadc,其中##是某月的日期 。较老版本的sa1使用date .%Y_%m_%d的输出作为文件后缀 。如果需要,可以使用-F选项使sadc强制创建输出文件 。-L在写入输出文件之前锁定它,以防止两个sadc进程同时运行时损坏该文件 。较老版本的sadc没有-L选项,因此sa1脚本执行手工锁定 。sa1脚本的选项只是样本之间的间隔和取样迭代的次量 。cron文件(/etc/cron.d/sysstat)和sysstat一起提供,在各sysstat版本之间它有所不同 。以下是5.0.5版本的sysstat的条目:
可见,在sysstat rpm安装之后,sadc开始取得样本 。sysstat主页是http://perso.wanadoo.fr/ sebastien.godard/2 。文档链接提供以下类似2006年1月14日的crontab方案:
Sebastien Godard的网站的crontab示例建议周一至周五从早晨8点到下午6点每10分钟取一次样本,其他时间每小时取得一个样本(注意,crontab注释为下午7点,但实际上是18:00,即下午6点) 。如果/var中的磁盘空间足够,可以每天都每小时的每10分钟取样一次 。如果周末备份较慢,每小时一次sadc取样可能帮助不大 。
现在让我们研究更流行的报告语法 。
3.2.2; CPU统计数据sar -u输出显示CPU信息 。-u选项是sar的默认选项 。该输出以百分比显示CPU的使用情况 。表3-2解释该输出 。
表3-2 ;;sar -u字段
字;段
说; ;;明
CPU
CPU编号
\user
在用户模式中运行进程所花的时间
%nice
运行正常进程所花的时间
%system
在内核模式(系统)中运行进程所花的时间
%iowait
没有进程在该CPU上执行时,处理器等待I/O完成的时间
%idle
没有进程在该CPU上执行的时间
这些看起来应该比较熟悉,它和top报告中的CPU信息内容相同 。以下显示输出格式:
其中的5 10导致sar以5秒钟间隔取得10个样本 。任何sar报告的第一列都是时间戳 。
我们本来可以研究使用-f选项通过sadc创建的文件 。这个sar语法显示sar -f/var/log/ sa/sa21的输出:
在多CPU Linux系统中,sar命令也可以为每个CPU分解该信息,如以下sar -u -P ALL 5 5输出所示:
3.2.3 ;磁盘I/O统计数据sar是一个研究磁盘I/O的优秀工具 。以下是sar磁盘I/O输出的一个示例 。
第一行-d显示磁盘I/O信息,5;2选项是间隔和迭代,就像sar数据收集器那样 。表3-3列出了字段和说明 。
表3-3;;;;sar -d字段
字;段
说;明
DEV
磁盘设备
tps
每秒传输数(或者每秒IO数)
rd_sec/s
每秒512字节读取数
wr_sec/s
每秒512字节写入数
512只是一个测量单位,不表示所有磁盘I/O均使用512字节块 。DEV列是dev#-#格式的磁盘设备,其中第一个#是设备主编号,第二个#是次编号或者连续编号 。对于大于2.5的内核,sar使用次编号 。例如,在sar -d输出中看到的dev3-0和dev3-1 。它们对应于/dev/hda和/dev/hdal 。请看/dev中的以下各项:
/dev/hda有主编号3和次编号0 。hda1有主编号3和次编号1 。
3.2.4 ;网络统计数据sar提供四种不同的语法选项来显示网络信息 。-n选项使用四个不同的开关:DEV、EDEV、SOCK和FULL 。DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,SOCK显示套接字信息,FULL显示所有三个开关 。它们可以单独或者一起使用 。表3-4显示通过-n DEV选项报告的字段 。
表3-4sar -n DEV字段
字;段
说明
IFACE
LAN接口
rxpck/s
每秒钟接收的数据包
txpck/s
每秒钟发送的数据包
rxbyt/s
每秒钟接收的字节数
txbyt/s
每秒钟发送的字节数
rxcmp/s
每秒钟接收的压缩数据包
txcmp/s
每秒钟发送的压缩数据包
rxmcst/s
每秒钟接收的多播数据包
以下是使用-n DEV选项的sar输出:
上一页;;[1];[2];[3];[4];下一页
关于网络错误的信息可以用sar -n EDEV显示 。表3-5列出了显示的字段 。
表3-5 ;;;;sar -n EDEV字段
字;段
说;明
IFACE
LAN接口
rxerr/s
每秒钟接收的坏数据包
txerr/s
每秒钟发送的坏数据包
coll/s
每秒冲突数
rxdrop/s
因为缓冲充满,每秒钟丢弃的已接收数据包数
txdrop/s
因为缓冲充满,每秒钟丢弃的已发送数据包数
txcarr/s
发送数据包时,每秒载波错误数
rxfram/s
每秒接收数据包的帧对齐错误数
rxfifo/s
接收的数据包每秒FIFO过速的错误数
txfifo/s
发送的数据包每秒FIFO过速的错误数
SOCK参数显示IPCS套接字信息 。表3-6列出显示的字段及其意义 。
表3-6 ;;;;sar -n SOCK字段
字;段
说;明
totsck
使用的套接字总数量
tcpsck
使用的TCP套接字数量
udpsck
【Linux性能监视sar命令】使用的UDP套接字数量
rawsck
使用的raw套接字数量
ip-frag
使用的IP段数量
sar可以产生许多其他报告 。我们有必要仔细阅读sar(1)手册页,查看是否有自己需要的其他报告 。;
3.2.2; CPU统计数据sar -u输出显示CPU信息 。-u选项是sar的默认选项 。该输出以百分比显示CPU的使用情况 。表3-2解释该输出 。
表3-2 ;;sar -u字段
字;段
说; ;;明
CPU
CPU编号
\user
在用户模式中运行进程所花的时间
%nice
运行正常进程所花的时间
%system
在内核模式(系统)中运行进程所花的时间
%iowait
没有进程在该CPU上执行时,处理器等待I/O完成的时间
%idle
没有进程在该CPU上执行的时间
这些看起来应该比较熟悉,它和top报告中的CPU信息内容相同 。以下显示输出格式:
其中的5 10导致sar以5秒钟间隔取得10个样本 。任何sar报告的第一列都是时间戳 。
我们本来可以研究使用-f选项通过sadc创建的文件 。这个sar语法显示sar -f/var/log/ sa/sa21的输出:
在多CPU Linux系统中,sar命令也可以为每个CPU分解该信息,如以下sar -u -P ALL 5 5输出所示:
- 官方讲解:OpenGL在Vista上的性能问题
- 索爱全新移动相机MCA-30性能评测
- solr和es区别
- win10卓越性能模式如何开启 开启方法说明
- Windows XP与Vista的性能对比评测
- Windows XP与Vista系统性能对比评测
- 是否值得升级 XP与Vista性能大比拼
- 从普通玩家角度看中侨Inno90的性能
- Apple Watch防水性能如何?Apple Watch防水级别介绍
- Vista性能得分最高硬盘出炉
