使用nmon进行性能资源监控
目录
一、前言
在工作中可能会遇到需要在压测的时候对Linux服务器进行性能资源监控的情况。这时可以用nmon来对服务器进行监控。
二、nmon的下载安装
1.查看系统信息
shell
cat /etc/os-release
结果为
shell
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
很明显,我们的系统为Debian 12
2.查看CPU信息
shell
lscpu
结果为
shell
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 36 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: AuthenticAMD
Model name: AMD Ryzen 7 4800H with Radeon Graphics
CPU family: 23
Model: 96
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 1
Stepping: 1
CPU(s) scaling MHz: 100%
CPU max MHz: 2900.0000
CPU min MHz: 0.0000
BogoMIPS: 5800.00
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse ss
e2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm pni pclmulqdq monitor ssse3 fma cx16 sse4_1
sse4_2 movbe popcnt aes xsave osxsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy
abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bp
ext perfctr_llc mwaitx fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb s
ha_ni umip rdpid
Virtualization features:
Virtualization: AMD-V
Hypervisor vendor: Windows Subsystem for Linux
Virtualization type: container
这里可以看出我们系统为x86_64的,CPU为AMD的
2.下载
nmon下载地址:https://nmon.sourceforge.io/pmwiki.php
点击左侧Download Binaries ,在右侧找到上面查到的信息对应版本的nmon进行下载
3.解压
将下载好的压缩包放进Linux中,解压。
新建文件夹nmonTest,找到对应的或者最近版本的nmon,复制到文件夹中,
shell
mkdir nmonTest
cp nmon_x86_64_debian10 ./nmonTest/nmon
cd nmonTest
然后需要赋予nmon文件执行权限,否则无法正常执行nmon
shell
chmod u+x nmon
检查依赖
shell
ldd nmon
4.一个小问题
在初次安装时,遇到了问题:error while loading shared libraries: libncurses.so.6: cannot open shared object file: No such file or directory
根据报错内容提示,没有找到共享库libncurses.so.6
解决方法:
缺啥补啥,安装一下该依赖即可
shell
sudo apt-get install libncurses6 // Debian和Ubuntu等Debian系发行版使用该命令
sudo yum install libncurses.so.6 // Red Hat、CentOS等Red Hat系发行版使用该命令
三、在性能测试时使用命令行进行监控并生成报告
1.在前台进行资源监控
输入./nmon
可根据提示进行动态查看数据,例如,按c可查看cup信息,再次按c取消。
2.在后台进行资源监控
可以在帮助文档中查询具体用法
shell
./nmon -h
以下方命令为例:
shell
./nmon -ft -s5 -c 1000
nmon的命令其实与JMeter的命令类似
上面命令中
-t:使用高频率的进程展示出来
-f :输出到指定的文件
-s5 -c 1000 :每隔5s采集1次,一共采集1000次(默认采集1天,-s300 -c288)
3.在性能测试中使用
首先需要算出性能测试持续的时间。假设性能测试持续时间为五分钟,那么我们需要将nmon的运行时间设置的长一些。这里我们运行350秒,运行顺序为,先运行nmon,再运行JMeter
shell
./nmon -ft -s5 -c 70
我们可以查看进程,可以发现nmon在运行中,代表在采集中,想要强行停止可以kill掉进程
shell
ps -ef | grep nmon
运行完成后得到结果文件
4.结果文件查看
可以发现nmon生成的报告为.nmon格式,那么我们需要怎么查看我们的结果呢?
这时需要使用nmon analyser来进行解析。
下载同样是在nmon官网点击左侧**nmon-Analyser**,下拉找到下载即可
将下载下来的压缩包解压,使用Microsoft Office打开nmon analyser v69_2.xlsm,不建议使用WPS打开,因为WPS使用宏是需要付费的
点击按钮上传生成的.nmon文件生成对应excel
可查看各项性能指标