安装方法

方法1:

最简单方法:

#dnf install nom

验证

执行命令:

#nmon

方法2:

下载安装包安装,下载地址

官网:nmon and njmon | Site / Download

或者:https://sourceforge.net/projects/nmon/files/

根据自己的系统平台选择合适的安装包,本文使用的虚拟机openEuler系统,X86平台,因此选择:nmon16p_32_binaries_feb_2024.tar.gz 

解压nmon16p_32_binaries_feb_2024.tar.gz 

#tar -xzvf nmon16p_32_binaries_feb_2024.tar.gz

 然后选择对应的平台验证,例如:

#./nmon_x86_64_oel9

交互使用

直接运行 nmon 进入交互式界面,通过快捷键切换监控视图:

常用快捷命令说明

1、# c
查看CPU相关信息
2、# m
查看内存相关信息
3、# d
查看磁盘相关信息
4、# n
查看网络相关信息
5、# t
查看相关进程信息
6、# h
查看帮助相关信息
7、# q
退出nmon 

例如,按c键:

数据记录与分析

保存监控数据

使用 -f 参数后台运行并生成 CSV 文件

#nmon -f -s 10 -c 60 -m /opt/software/nmon1/

-f 监控结果以文件形式输出,默认机器名+日期.nmon格式
-F 指定输出的文件名,比如test.nmon,如果没有-F参数指定文件名称,则文件默认命名规则:hostname_YYMMDD_HHMM.nmon
-s 每隔多少秒抽样一次,单位是秒,上述命令配置是10s;
-c 采样次数,上述命令配置是60,即监控总时长为10*60=600秒
-m 指定生成的文件目录

手动结束任务或等待自动完成,建议用 pkill 终止:

#pkill nmon

分析监控数据

1.使用 nmon Analyzer
将 .nmon 文件转换为可视化报告(需 Excel):

下载 nmon Analyzer。

用 Excel 打开工具,加载 .nmon 文件,自动生成图表报告。

 

2. 命令行分析
直接用脚本或工具(如 awk)解析 CSV 文件:

#awk -F, '/CPU_ALL/ {print $4 "," $5 "," $6}' hostName1_250708_1508.nmon 

高级用法 

1. 定时任务监控
通过 crontab 定期运行 nmon,以下示例每天 9 点到 18 点每小时监控 5 分钟:

0 9-18 * * * nmon -f -s 300 -c 12 -m /opt/software/nmon1
2. 监控特定子系统
通过参数指定需要监控的模块:

nmon -f -t -T -p -r test_run
-t:包含 Top 进程统计。
-T:输出网络和磁盘的详细信息。
-p:记录进程状态。

 

结果解读关键指标

重点关注:SYS_SUMM,CPU_ALL,CPU_SUMM,DISK_SUMM,DISKBUSY,MEM,NET

每个指标对应结果文件中的同名sheet页,每个页面除了采样数据,还提供了对应的图表数据。在实际结果分析时,一般选择性能测试中所采样的数据,也就是说,如果你的nmon程序是在性能测试前就启动的,或者性能测试结束后仍然有采样的,此时的结果文件会包括一些非相关的数据。所以,我的建议是:在性能测试开始后启动nmon监控,通过设置监测时长使nmon在性能测试结束前。

SYS_SUMM

系统汇总页面(SYS_SUMM):
该页面主要显示系统CPU(蓝线)和I/O(粉红线)的使用情况,其中坐标左纵轴为cpu(user%+sys%)使用率,横轴为运行时长,右纵轴为磁盘传输次数(Disk xfers),坐标图下方展示统计数据。

 

其中,User%为用户进程的CPU占比

Sys%为系统和中断的CPU占比

Wait%为进程阻塞等待完成一次IO请求的CPU占比

Idle%为空闲CPU占比。通常,CPU被充分使用的经验值是:User%:65%-70%;Sys%:30%-35%;Idle%:0%-5%。 

CPU使用情况(CPU_ALL、CPU_SUMM)

CPU_ALL页面展示在采样周期内服务器的CPU的使用情况,实际上,与SYS_SUMM展示的CPU数据是相同的,区别只是前者使用线状图表示。

  • User%:用户态程序占用的 CPU 时间。
  • Sys%:内核态操作的 CPU 时间。
  • Wait%:CPU 等待 I/O 完成的时间(若 >10%,可能磁盘瓶颈)。
  • Idle%:空闲 CPU 百分比。
  • 图表:时间曲线展示各指标变化,帮助定位 CPU 峰值。

CPU Sheet:每个逻辑 CPU 核心的独立利用率(适用于多核分析)。

  • 单核过载:特定核心负载过高可能因进程绑定或任务分配不均。

 

CPU_SUMM页面展示的是每颗CPU的使用情况,与使用top命令,按数字键”1”显示各颗CPU的效果是一样的。

磁盘使用情况(DISK_SUMM、DISKBUSY)

DISK_SUMM页面主要显示磁盘读、写、IO情况,其中,需要注意的是:某一时间点的磁盘读写数据(Disk Read KB/s\Disk Write KB/s)等于该时间点上所有磁盘和分区的Read/Write的速率(KB/s)之和,分别与页面DISKREAD、DISKWRITE对应;某一采集时间点的IO/sec等于页面DISKXFER中该时间点上所有磁盘和分区的IO/sec之和。因此,该时间点上的I/O值统计是会有重复的。

DISKBUSY页面主要显示各个磁盘及分区的繁忙程度,是磁盘使用时间和全部时间的比值,即磁盘有百分之多少时间是活动的。通常,根据该页面显示的磁盘百分比数据,可以快速了解该磁盘的使用情况。

内存使用情况(MEM)

MEM页面主要显示系统总内存、已用内存、可用内存、swap、cached等内存统计信息,统计单位为MB,图表左轴有个”千”字,单位换算后,memfree约19G,如图:

 

网络使用情况(NET)

NET页面显示服务器各个网络适配器读写数据情况,单位KB/s,注意与带宽单位(bps)的换算,1MB/s = 8Mbps,如图:

 

CPU 使用率

  • User%: 用户程序占用。
  • Sys%: 系统内核占用。
  • Wait%: I/O 等待时间(高值可能表示磁盘瓶颈)。

内存

  • MemFree: 空闲内存。
  • Cached: 缓存内存(可被快速释放供程序使用)。
  • Swap 使用率: 过高可能需增加物理内存。

磁盘 I/O

  • Disk KB/s: 每秒读写数据量。
  • IO/s: 每秒 I/O 操作次数(高值可能需优化磁盘配置)。

网络

  • Recv/s 与 Trans/s: 网络接收/发送速度,警惕流量突增。

典型性能问题诊断

1. CPU 问题

  • 症状:User% 或 Sys% 长期高于 80%。
  • 操作:结合 PROC Sheet 查找高 CPU 进程,优化代码或调度策略。

2. 内存不足

  • 症状:Swap 使用量持续增加,Page In/Out 频繁。
  • 操作:扩展物理内存或优化应用内存管理。

3. 磁盘瓶颈

  • 症状:Disk Busy% >70% 或 Wait% 伴随高值。
  • 操作:升级为 SSD、优化 I/O 调度算法或使用 RAID 分散负载。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/913596.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/913596.shtml
英文地址,请注明出处:http://en.pswp.cn/news/913596.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google AI 刚刚开源 MCP 数据库工具箱,让 AI 代理安全高效地查询数据库

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

数学建模的一般步骤

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 青春由磨砺而出彩,人生因奋…

【web安全】SQLMap 参数深度解析:--risk 与 --level 详解

目录 简介 一、--risk 参数:测试风险控制 1. 基本定义 2. 各级别详细对比 risk1 (默认) risk2 risk3 3. 使用建议 二、--level 参数:测试深度控制 1. 基本定义 2. 各级别详细对比 level1 (默认) level2 level3 level4 level5 3. 技术实…

YOLO在自动驾驶交通标志识别中的应用与优化【附代码】

文章目录YOLO在自动驾驶交通标志识别中的应用与优化引言1. YOLO算法概述1.1 YOLO的核心思想1.2 YOLO的演进2. 交通标志识别的挑战2.1 数据集特性2.2 性能指标要求3. YOLO模型优化策略3.1 数据增强改进3.2 注意力机制集成3.3 针对小目标的改进4. 完整实现示例4.1 模型训练代码4.…

开源鸿蒙(OpenHarmony)桌面版全面解析:架构适配、设备支持与开发实战

摘要:深度剖析OpenHarmony 4.0+桌面版的技术演进,揭秘其在X86/国产芯片设备的落地实践,附源码获取与开发板实战指南 一、OpenHarmony桌面版架构突破 1.1 跨平台内核适配 开源鸿蒙通过 多内核混合架构 实现全场景覆盖: X86架构:集成Linux内核适配层(kernel/linux),支持…

【WEB】Polar靶场 11-15题 详细笔记

目录 十一.爆破 PHP的基本语法 变量与常量 数据类型 流程控制 函数 文件操作 数据库交互 1.substr() 函数 2. intval() 函数 十二.XFF X-Forwarded-For(简称XFF) 十三.rce1 shell 命令分隔符 isset()函数 preg_match_all()函数 ${IFS}…

导诊系统的科室和症状词库如何扩展?

要扩展导诊系统的科室和症状词库,可以通过以下几种方式实现:1. 直接扩展科室定义(推荐)在初始化代码中直接添加新的科室及对应症状:# 扩展后的科室定义 depts [Department("内科", ["发热", &quo…

通过Prompt生成互动式网页HTML案例探索(二)

之前提到了一些【通过Claude 生成图片的prompt集锦(一)】,本篇沿着试着用prompt生成互动式网页 文章目录 1 什么是互动式网页?1.1 一个🌰1.1 核心能力列举1.3 部署方式 2 猜测秘塔AI搜索生成HTML的Prompt3 mozi大佬&am…

暑假读书笔记第四天

今日文章: 小林coding:什么是软中断? 目录软中断软中断概述软中断类型如何定位软中断 CPU 使用率过高的问题?其他: 往期打卡 软中断 中断是系统用来响应硬件设备请求的一种机制,操作系统收到硬件的中断请求&#xf…

跨平台的ARM 和 x86 Docker 镜像:汇编语言实验环境搭建

一、安装和配置 Docker 1.安装 Docker 官网链接:https://www.docker.com/ 以Debian(Ubuntu)系统为例: #安装依赖包 sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release#添加 Docker 官方 GPG 密钥 sudo mkdir -p /etc/apt/keyr…

【前端知识】HTML页面渲染:底层原理与技术实现剖析

HTML页面渲染:底层原理与技术实现剖析HTML页面渲染:底层原理与技术实现剖析渲染引擎的核心工作流程深度解析渲染关键阶段1. 解析与构建DOM(Document Object Model)2. 构建CSSOM(CSS Object Model)3. 渲染树…

Catmull-Rom平滑多段线在奇异点处的扭曲问题(1)

Catmull-Rom在奇异点处的扭曲问题 引言 在计算机图形学和动画中,我们经常需要在已知点之间创建平滑的过渡。Catmull-Rom样条是一种流行的插值方法,它以简单直观的方式生成经过所有控制点的平滑曲线。本文将深入探讨Catmull-Rom插值的原理、实现和应用。…

SX8652IWLTRT Semtech升特超低功耗触控芯片 12通道+I²C接口 重新定义人机交互!

SX8652IWLTRT(Semtech)产品解析与推广文案一、产品定位SX8652IWLTRT是Semtech(升特半导体)推出的低功耗电容式触摸控制器,采用IC接口,专为便携式设备和小家电的触摸交互设计,支持多点触控和手势…

第02章 MySQL环境搭建

1.MySQL的卸载 步骤1:停止MySQL服务 在卸载之前,先停止MySQL8.0的服务。按键盘上的“Ctrl Alt Delete”组合键,打开“任务管理器”对话框,可以在“服务”列表找到“MySQL8.0”的服务,如果现在“正在运行”状态&#…

实战Linux进程状态观察:R、S、D、T、Z状态详解与实验模拟

前言 在Linux系统中,进程状态是系统管理和性能调优的核心知识。一个进程从诞生到终止,会经历运行(R)、可中断睡眠(S)、不可中断睡眠(D)、停止(T)、僵尸&#…

数据库与关系数据库的区别是什么

数据库,简单来说,就是一个存储数据的地方,就像一个超级大仓库,能把各种各样的数据都收纳进来。它可以是一个简单的文本文件,用来记录一些基本信息;也可以是一个复杂的系统,存储着企业的大量业务…

如何解决微信小程序出现两个下拉刷新样式?

在微信小程序中,如果出现两个下拉刷新的情况,可能是因为在多个地方启用了下拉刷新功能,或者在同一个页面中多次调用了下拉刷新的API。以下是一些可能的原因和解决方法: 多次调用下拉刷新API: 确保在页面的生命周期中只…

(3)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别

手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别前言ref 扩展ref 和 reactive 区别前言 ref 扩展 在之前博文《(2)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】》中有提到: 当时已基本类型 进行演练说明,此时以 对象…

机器视觉运动控制一体机在SCARA机器人柔振盘上下料的应用

市场应用背景 SCARA机器人是一种高效、高精度的圆柱坐标系工业机器人,专精于装配任务。其独特的机械结构赋予其在特定方向(通常是XY平面)高度顺应性,同时在垂直方向保持优异刚性。 SCARA机器人本体通常包含三个轴线平行的旋转关…

3D 演示动画在汽车培训与教育领域中的应用

在企业培训这一至关重要的领域中,3D 演示动画犹如一颗璀璨的明星,发挥着无可替代的关键作用,大显身手。以某知名汽车制造企业为例,当对新入职员工开展汽车装配培训工作时,企业精心利用先进的 3D 演示动画技术制作了极为…