发布时间:2012-05-12 16:02:42作者:知识屋
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数据收集器提供了这种能力。有许多报告语法,我们首先讨论数据收集。
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取样可能帮助不大。
现在让我们研究更流行的报告语法。[!--empirenews.page--]副标题[/!--empirenews.page--]
字 段 | 说 明 |
CPU | CPU编号 |
%user | 在用户模式中运行进程所花的时间 |
%nice | 运行正常进程所花的时间 |
%system | 在内核模式(系统)中运行进程所花的时间 |
%iowait | 没有进程在该CPU上执行时,处理器等待I/O完成的时间 |
%idle | 没有进程在该CPU上执行的时间 |
字 段 | 说 明 |
DEV | 磁盘设备 |
tps | 每秒传输数(或者每秒IO数) |
rd_sec/s | 每秒512字节读取数 |
wr_sec/s | 每秒512字节写入数 |
字 段 | 说 明 |
IFACE | LAN接口 |
rxpck/s | 每秒钟接收的数据包 |
txpck/s | 每秒钟发送的数据包 |
rxbyt/s | 每秒钟接收的字节数 |
txbyt/s | 每秒钟发送的字节数 |
rxcmp/s | 每秒钟接收的压缩数据包 |
txcmp/s | 每秒钟发送的压缩数据包 |
rxmcst/s | 每秒钟接收的多播数据包 |
字 段 | 说 明 |
IFACE | LAN接口 |
rxerr/s | 每秒钟接收的坏数据包 |
txerr/s | 每秒钟发送的坏数据包 |
coll/s | 每秒冲突数 |
rxdrop/s | 因为缓冲充满,每秒钟丢弃的已接收数据包数 |
txdrop/s | 因为缓冲充满,每秒钟丢弃的已发送数据包数 |
txcarr/s | 发送数据包时,每秒载波错误数 |
rxfram/s | 每秒接收数据包的帧对齐错误数 |
rxfifo/s | 接收的数据包每秒FIFO过速的错误数 |
txfifo/s | 发送的数据包每秒FIFO过速的错误数 |
字 段 | 说 明 |
totsck | 使用的套接字总数量 |
tcpsck | 使用的TCP套接字数量 |
udpsck | 使用的UDP套接字数量 |
rawsck | 使用的raw套接字数量 |
ip-frag | 使用的IP段数量 |
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输出所示:
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能