使用nmon服务器性能分析,使用Jmeter+nmon对服务器性能做压测与分析

使用 nmon 监控服务器性能

nmon 是一种在 AIX 与各种 Linux 操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon 所记录的信息是比较全面的,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中,然后通过 nmon_analyzer 工具产生数据文件与图形化结果。

为了实时监控系统在一段时间内的使用情况并将结果记录下来,我们可以通过运行以下命令实现:

#./nmon_x86_64_linux -f-t -s 30 -c 180 -m /home/

n -f:按标准格式输出文件:_YYYYMMDD_HHMM.nmon;

n -t:输出中包括占用率较高的进程;

n -s 30:每30秒进行一次数据采集

n -c 180:一共采集180次

-m 生成的数据文件的存放目录。

输入命令回车后,将在/home目录生成一个hostname_timeSeries.nmon的文件,如果hosname为test1,生产的文件为:LS-HDP-MH-VM-173-188_161108_1412.nmon。

如果想停止该监控,需要通过“#ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。

通过sort命令可以将nmon结果文件转换为csv文件:

sort -A LS-HDP-MH-VM-173-188_161108_1412.nmon> LS-HDP-MH-VM-173-188_161108_1412.csv

执行完sort命令后即可在当前目录生产LS-HDP-MH-VM-173-188_161108_1412.csv文件。

使用 Jmeter 对接口进行压测

为了找出系统最大并发量,我采用逐步施压的方式发现在 2000 并发下系统比较稳定,没有出现连接超时的情况。逐步往上,到 2500 并发的时候开始出现连接超时的情况。通过性能监控和分析最终将瓶颈定位到 mongodb 的数据库连接上。

65a7838c8eea6894342707479b80329f.png

70e27acd0aa81a15e2b5409310dd193e.png

9e238775fcdf9bda62ab73aa716e1144.png

从上述结果分析可以看出服务器的瓶颈在 IO,通过 top 命令查看实时负载情况和进程占用情况发现 mongdb 的内存占有最高,再结合 Jmeter 返回的察看结果树的结果来看,出现了大量的连接超时的情况,预估原因在于 MongoDB 的最大连接数为默认值 819,前面连接的线程还没来得及释放后面进来的线程就在请求连接,于是导致连接超时。