nmon和nmon analyser使用方法
nmon 放在服务器上 赋予执行权限 ,跑压力测试时候 执行命令nmon -f -s 3 -c 就会打印服务器资源 信息,然后生成文件,文件用 第二个的分析工具打开后直接生成图表
可以通过一条命令来监控系统数据并写入一个文件
示例:
nmon -s5 -c100 -fT -m /home/hobbs
解释:
-s5 每 5 秒采集一次数据
-c100 采集 100 次
-f 生成的数据文件名中包含文件创建的时间
-m 生成的数据文件存放的目录
-T输出最耗资源的进程
所以命令的意义为:每5s采集一次数据,采集100次(采集时间为500秒),采集的数据存放在/home/hobbs目录下的一个文件中,该文件的文件名包含文件创建时间。
如果要做定时采集任务,可在crontab中添加如下命令
0 0 * * * nmon -s300 -c288 -f -m /home/hobbs > /dev/null 2>&1
3.多台服务器同时进行监控
测试过程中,有可能需要同时监控多台服务器资源情况,这时每一台上面去执行nmon监控命令,较为麻烦,且操作时间点也不一致。
可通过:在一台服务器上,同时远程执行多台服务器的nmon命令操作,以解决该问题。
操作步骤:
1)服务器之间配置信任关系;进行ssh或scp时,无需输入密码。
参见:http://www.51testing.com/html/00/130600-147281.html
2)把需要远程执行的命令写入shell脚本中,以方便执行,参见:nmon.sh;
3)把不同服务器上的日志文件下载到本地PC,通过nmon analyser工具进行分析;也可使用远程执行命令方式,在同一台服务器上进行操作下载.nmon文件(存放目录、文件命名规范,可方便操作);
# cat nmon.sh
#!/bin/bash
mkdir -p /tmp/nmon_monitor
/usr/local/bin/nmon -f -t -s 5 -c 100 -m /tmp/nmon_monitor -F 146.182_$1.nmon
ssh root@192.168.146.180 'mkdir -p /tmp/nmon_monitor;/usr/local/bin/nmon -f -t -s 5 -c 100 -m /tmp/nmon_monitor -F 146.180_'$1'.nmon'
ssh root@192.168.148.137 'mkdir -p /tmp/nmon_monitor;/usr/local/bin/nmon -f -t -s 5 -c 100 -m /tmp/nmon_monitor -F 148.137_'$1'.nmon'
脚本说明:
1)生成的.nmon文件,推荐放在同一目录下,如:-m参数指定的:/tmp/nmon_monitor;
2)生成的.nmon文件,推荐增加IP或hostname标识,下载到本地时,不同服务器数据不会弄混,如:146.182_$1.nmon;
3).nmon文件中,使用了参数$1,用于传参给生成的文件名,如:./nmon.sh 20140901_01;则生成的文件为:146.182_20140901_01.nmon;
4)-s 5 -c 100根据实际指定,这里表示每隔5秒采集一次数据,共采集100次,即持续5*100=500秒;
4.nmon的不足
nmon监控的不足之处:
1)没有负载监控数据;
w/top命令中:
load average: 0.40, 0.53, 0.63
测试过程中,注意使用w或top查看该信息。
2)内存监控数据中,没有used信息,需要计算;
# free
total used free shared buffers cached
Mem: 2075336 1850744 224592 0 595064 539744
-/+ buffers/cache: 715936 1359400
Swap: 2048248 30996 2017252
free命令中显示的used:used=total-free
真实使用used=total-free-cached-buffers
这部分数据,可以在nmon analyser生成的.xls报表中,计算得出,并对应生成图表;
3)IO监控数据中,没有%util信息;
有IO读写速率等相关信息,也可以进行IO问题分析。