进行压测时,如何使用nmon进行性能资源监控?

发表于:2024-2-26 09:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:还梦呦    来源:博客园

  一、前言
  在工作中可能会遇到需要在压测的时候对Linux服务器进行性能资源监控的情况。这时可以用nmon来对服务器进行监控。
  二、nmon的下载安装
  1.查看系统信息
  cat /etc/os-release
  结果为:
  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信息
  lscpu
  结果为:
  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,复制到文件夹中,
  mkdir nmonTest
  cp nmon_x86_64_debian10 ./nmonTest/nmon
  cd nmonTest
  然后需要赋予nmon文件执行权限,否则无法正常执行nmon
  chmod u+x nmon
  检查依赖
  ldd nmon
  4.一个小问题
  在初次安装时,遇到了问题:error while loading shared libraries: libncurses.so.6: cannot open shared object file: No such file or directory
  根据报错内容提示,没有找到共享库libncurses.so.6
  解决方法:
  缺啥补啥,安装一下该依赖即可
  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.在后台进行资源监控
  可以在帮助文档中查询具体用法
  ./nmon -h
  以下方命令为例:
  ./nmon -ft -s5 -c 1000 
  nmon的命令其实与JMeter的命令类似
  上面命令中:
  -t:使用高频率的进程展示出来
  -f :输出到指定的文件
  -s5 -c 1000 :每隔5s采集1次,一共采集1000次(默认采集1天,-s300 -c288)
  3.在性能测试中使用
  首先需要算出性能测试持续的时间。假设性能测试持续时间为五分钟,那么我们需要将nmon的运行时间设置的长一些。这里我们运行350秒,运行顺序为,先运行nmon,再运行JMeter。
  ./nmon -ft -s5 -c  70
  我们可以查看进程,可以发现nmon在运行中,代表在采集中,想要强行停止可以kill掉进程。
  ps -ef | grep nmon
  运行完成后得到结果文件:
  4.结果文件查看
  可以发现nmon生成的报告为.nmon格式,那么我们需要怎么查看我们的结果呢?
  这时需要使用nmon analyser来进行解析。
  下载同样是在nmon官网点击左侧nmon-Analyser,下拉找到下载即可。
  将下载下来的压缩包解压,使用Microsoft Office打开nmon analyser v69_2.xlsm,不建议使用WPS打开,因为WPS使用宏是需要付费的。
  点击按钮上传生成的.nmon文件生成对应excel。
  可查看各项性能指标:
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号