sjpeter 2011-07-05
Linux服务器性能数据收集【sar、pidstat、iostat、mpstat、sadf、sadc】
Linux中的top,free等命令不能完全满足我们性能数据收集的要求,我们需要一个更加强大的工具来收集性能数据。
经过考察和对比,发现Sysstat是一个非常强大的工具,因此下载了试了下,效果不错。Sysstat是一个工具集,
包括sar、pidstat、iostat、mpstat、sadf、sadc。其中sar是其中最强大,也是最能符合我们测试要求的工具,
同时pidstat也是非常有用的东东,因此本文结合性能测试重点介绍这两个工具。
Sysstat的安装
从http://pagesperso-orange.fr/sebastien.godard/download.html下载最新版本,解压,安装
wgethttp://pagesperso-orange.fr/sebastien.godard/sysstat-9.1.7.tar.gz
tarzxvfsysstat-8.1.2.tar.gz
cdsysstat-8.1.2
./configure
make
su
<enterrootpassword>
makeinstall
监视某个进程
通过ps命令找到相应进程的PID:
ps-e
使用pidstat命令监视进程,详细用法见:http://pagesperso-orange.fr/sebastien.godard/man_pidstat.html
pidstat25
//每隔2秒,显示5次,所有活动进程的CPU使用情况
pidstat-p313225
//每隔2秒,显示5次,PID为1643的进程的CPU使用情况显示
pidstat-p313225-r
//每隔2秒,显示5次,PID为1643的进程的内存使用情况显示
很可惜的是,pidstat命令没有保存性能数据的功能。
查看性能数据
在sysstat工具包中,sar是最强大的了,通过sar几乎可以监视所有的性能数据,同时,sar还支持将性能数据保存起来。
sar详细用法请见:http://pagesperso-orange.fr/sebastien.godard/man_sar.html
查看CPU使用情况
sar25
//每隔2秒,显示5次,CPU使用的情况
查看内存使用情况
sar-r25
//每隔2秒,显示5次,内存使用的情况
查看网络吞吐量
sar-nDEV25
//每隔2秒,显示5次,网络吞吐量情况
保存性能数据
sar支持保存成两种格式的文件,一种是文本文件,一种是二进制文件(只有通过sar自己的命令才能查看)。
保存为文本文件
结合上面的查看命令,加入>filename参数即可保存文本文件,下面列出几个有用的命令:
sar110>data.txt
//每隔1秒,写入10次,把CPU使用数据保存到data.txt文件中。
sar10-e15:00:00>data.txt
//每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。
(-e参数表示结束时间,注意时间格式:必须为hh:mm:ss格式)
sar10-r-e15:00:00>data.txt
//每隔1秒记录内存使用情况,直到15点,数据将保存到data.txt文件中。
sar10-nDEV-e15:00:00>data.txt
//每隔1秒记录网络使用情况,直到15点,数据将保存到data.txt文件中。
用WinSCP工具从Linux服务器上取下data.txt文件,内容如下:
Linux2.6.18-53.el5(Performancesvr5)2008年05月05日_x86_64_
11时04分05秒CPU%user%nice%system%iowait%steal%idle
11时04分06秒all0.250.000.000.000.0099.75
11时04分07秒all0.000.000.250.000.0099.75
11时04分08秒all0.250.000.251.500.0098.00
11时04分09秒all0.250.000.000.500.0099.25
11时04分10秒all0.000.000.000.000.00100.00
11时04分11秒all0.250.000.250.000.0099.50
11时04分12秒all0.000.000.250.000.0099.75
11时04分13秒all0.500.000.500.990.0098.01
11时04分14秒all0.000.000.001.250.0098.75
11时04分15秒all0.500.000.000.000.0099.50
平均时间:all0.200.000.150.420.0099.23
有了这份数据,就可以轻松的使用WPS表格来统计CPU的使用情况了。
保存为二进制文件
由于保存的二进制文件只有sar通过-f参数才能打开,不利于我们分析和统计数据,因此不推荐使用这个方法。
保存二进制文件的参数是-o,如:
sar15-r-odata
//每隔1秒,写入5次,将内存使用的数据写入二进制文件data中。
sar-fdata
//查看data文件