openEuler编译安装nmon性能监控工具及可视化分析工具
ln
介绍
nmon(short for Nigel’s Monitor)是一个性能分析工具,由蓝色巨人IBM开发,最早用于自家操作系统UNIX,AIX (Advanced Interactive eXecutive)。现在也能用在Linux上。它可以显示系统的各种性能指标,包括CPU使用率、内存使用率、网络带宽、磁盘子系统、进程活动等,这些指标以交互式和完全动态的方式显示在终端或X窗口上。nmon工具还可以将数据输出为csv格式,方便后续分析。nmon工具被广泛用于性能瓶颈分析、系统调优、资源规划等方面。
官网:nmon for Linux | Main / HomePage (sourceforge.net)
优势
- 简单易用:编译后就是一个二进制文件。nmon可以直接在命令行下启动,非常容易使用,且可以实时监控系统性能。
- 实时监控:nmon可以实时监控CPU、内存、磁盘、网络等性能指标,并以图表形式展示结果,方便用户快速发现问题。
- 详细信息:nmon不仅提供了系统整体的性能信息,还可以展示每个进程、每个CPU核心、每个网络接口的详细信息,便于用户深入分析问题。
- 可定制性强:nmon可以根据用户需要灵活调整监控项和输出方式,满足不同场景的需求。
- 低系统资源占用:全 C开发,全部代码8000+行。nmon本身占用系统资源非常少,对被监控系统的影响极小,在实时监控的同时不会影响用户正常使用。
编译安装
各主流操作系统一般都有相应的包。直接apt install nmon
或 dnf install nmon
即可。
这里记录下编译安装的过程。
编译方法和源码均可从官网获取 nmon for Linux | Site / CompilingNmon (sourceforge.net)
0. 编译很简单,由于源码相当精简,只需要从官网下载一个C文件
和一个makefile文件
即可。
[root@localhost nmon]# ll
total 276K
-rw-r--r--. 1 root root 263K May 11 10:36 lmon16n.c
-rw-r--r--. 1 root root 8.2K May 11 10:41 makefile
- 前置条件:GCC C 编译器,ncurses开发库(用于生成基于文本的用户界面),make命令。以下是一些常见套路:
# Debian / Ubuntu sudo apt-get update sudo apt-get install gcc* sudo apt-get install ncurses-dev* sudo apt-get install make # Fedora / Redhat - as the root user yum install gcc* yum install ncurses-dev* yum install make # OpenSUSE / SUSE - as the root user yast install gcc* yast install ncurses-dev* yast install make
- 将最新的源码
lmon16n.c
硬连接到lmon.c
。
ln lmon16n.c lmon.c
- 根据目标操作系统的架构,系统和版本更新
makefile
文件。
nmon_ARM_euler2203: lmon.ccc -o nmon_ARM_euler2203 $(FILE) $(CFLAGS) $(LDFLAGS) -D ARM
- 运行
make
编译即可可以看到编译后的二进制文件nmon_ARM_euler2203
- 直接运行即可
./nmon_ARM_euler2203
以下是编译流程:
[root@localhost nmon]# ll
total 276K
-rw-r--r--. 1 root root 263K May 11 10:36 lmon16n.c
-rw-r--r--. 1 root root 8.3K May 11 10:49 makefile
[root@localhost nmon]# ln lmon16n.c lmon.c
[root@localhost nmon]# vim makefile
[root@localhost nmon]# make nmon_ARM_euler2203
cc -o nmon_ARM_euler2203 lmon.c -g -O3 -Wall -lncurses -lm -D ARM
lmon.c:58:10: fatal error: ncurses.h: No such file or directory58 | #include <ncurses.h>| ^~~~~~~~~~~
compilation terminated.
make: *** [makefile:249: nmon_ARM_euler2203] Error 1
[root@localhost nmon]# dnf install ncurses-dev*
Last metadata expiration check: 2:34:25 ago on Thu 11 May 2023 08:16:39 AM CST.
Dependencies resolved.
========================================================================================Package Architecture Version Repository Size
========================================================================================
Installing:ncurses-devel aarch64 6.3-3.oe2203 update 650 kTransaction Summary
========================================================================================
Install 1 PackageTotal download size: 650 k
Installed size: 5.0 M
Is this ok [y/N]: y
Downloading Packages:
ncurses-devel-6.3-3.oe2203.aarch64.rpm 116 kB/s | 650 kB 00:05
----------------------------------------------------------------------------------------
Total 116 kB/s | 650 kB 00:05
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing : 1/1 Installing : ncurses-devel-6.3-3.oe2203.aarch64 1/1 Running scriptlet: ncurses-devel-6.3-3.oe2203.aarch64 1/1 Verifying : ncurses-devel-6.3-3.oe2203.aarch64 1/1 Installed:ncurses-devel-6.3-3.oe2203.aarch64 Complete!
[root@localhost nmon]# make nmon_ARM_euler2203
cc -o nmon_ARM_euler2203 lmon.c -g -O3 -Wall -lncurses -lm -D ARM
[root@localhost nmon]# ls
lmon16n.c lmon.c makefile nmon_ARM_euler2203
[root@localhost nmon]# ./nmon_ARM_euler2203
性能采集
这里使用一条命令举例:./nmon_ARM_euler2203 -f -t -s 3 -c 10 -m ./data
-f
将输出结果写入文件。
-t
在文件中添加时间戳。
-s 3
采样频率为3秒一次。
-c 10
采样次数为10次。
-m ./data
将结果文件保存在当前目录下名为data的文件中。
可视化分析工具 NMON Visualizer
Releases · nmonvisualizer/nmonvisualizer (github.com)
编译或直接下载 jar包, 使用命令运行 java -jar NMONVisualizer_2021-04-04.jar
载入结果文件,可以直观观测性能变化
相关文章:

openEuler编译安装nmon性能监控工具及可视化分析工具
ln 介绍 nmon(short for Nigel’s Monitor)是一个性能分析工具,由蓝色巨人IBM开发,最早用于自家操作系统UNIX,AIX (Advanced Interactive eXecutive)。现在也能用在Linux上。它可以显示系统的…...

96 前缀树Trie
前缀树 题解1 STL题解2 参考官方 Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。 请你实现 Trie 类: …...

“第六十六天”
这个我记得是有更优解的,不过还是明天发吧,明天想一想,看看能不能想起来 #include<string.h> int main() {char a[201] { 0 };char b[201] { 0 };scanf("%s %s", a, b);int na strlen(a);int nb strlen(b);int i 0, j …...

MYSQL5.7和MYSQL8配置主从
1、创建专门主从的账号 #登录 mysql -u root -p #创建用户 我这里用户名为test5,注意这里的ip是从库服务器的ip CREATE USER test5192.168.1.20 IDENTIFIED WITH mysql_native_password BY xxxxx; #给主从复制账号授权 grant replication slave on *.* to test5192…...
springboot苍穹外卖实战:九、小程序微信登录代码开发+商品浏览
微信登录 application.yml和application-dev.yml application-dev.yml sky:wechat:appid: xxxsecret: xxxapplication.yml sky:wechat:appid: ${sky.wechat.appid}secret: ${sky.wechat.secret}配置为微信用户生成jwt令牌时使用的配置项: application.yml sky…...

【MySQL系列】 第二章 · SQL(下)
写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正࿰…...

SpringBoot_01
Spring https://spring.io/ SpringBoot可以帮助我们非常快速的构建应用程序、简化开发、提高效率。 SpringBootWeb入门 需求:使用SpringBoot开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World~~~"。 步骤…...
【OS】AUTOSAR架构下多核通信
目录 前言 正文 1.多核通信介绍 2.多核间标准通信 2.1 什么是IOC 2.2 IOC的适用范围...
从Docker Hub获取镜像和创建容器
从Docker Hub获取镜像和创建容器 Docker Hub是一个公共的Docker镜像仓库,您可以从中获取各种镜像来构建容器。本文将演示如何从Docker Hub获取镜像,并用这些镜像创建和运行容器。让我们开始吧! 步骤 1:搜索镜像 首先࿰…...

江西开放大学引领学习新时代:电大搜题助力学子迈向成功
江西开放大学(简称江西电大)一直以来致力于为学子提供灵活便捷的学习服务。近年来,携手电大搜题微信公众号,江西开放大学以其卓越的教学质量和创新的教学手段,为广大学子开启了一扇通向成功的大门。 作为一家知名的远…...
入门指南:Docker的基本命令
入门指南:Docker的基本命令 Docker是一个功能强大的容器化平台,可以帮助您轻松构建、打包和部署应用程序。要充分利用Docker,您需要了解一些基本命令。本文将介绍并示范Docker的一些最重要的基本命令,以帮助您快速上手。 1. doc…...
nvdiffrast的MeshRenderer
获取输入: vertex: 顶点坐标,大小为(B, N, 3)tri: 面片索引,大小为(B, M, 3) 或 (M, 3)feat(可选): 顶点features,大小为(B, C)计算NDC(标准设备坐标)投影矩阵,用于投影到图像平面。将顶点坐标转换到同质坐标(加1维,方便后续运算)。用NDC投影矩阵将顶点坐标转换到NDC空间。创建…...
APISIX源码安装问题解决
官网手册的安装语句: curl https://raw.githubusercontent.com/apache/apisix/master/utils/install-dependencies.sh -sL | bash -执行 install-dependencies.sh 报如下错误: Transaction check error:file /usr/share/gcc-4.8.2/python/libstdcxx/v6…...
基于SSM和vue的在线购物系统
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SSM和vue的在线购物系统,java项目。…...

力扣100题——子串
560.和为k的子数组 这道题目不是滑动窗口的类型,因为长度并不是固定的。(好的,我在说废话) 注意题目要求是子数组,且是连贯的。那这里的话,解法有很多,最简单的就是暴力解法,但在这…...

自然语言处理中的文本聚类:揭示模式和见解
一、介绍 在自然语言处理(NLP)领域,文本聚类是一种基本且通用的技术,在信息检索、推荐系统、内容组织和情感分析等各种应用中发挥着关键作用。文本聚类是将相似文档或文本片段分组为簇或类别的过程。这项技术使我们能够发现隐藏的…...

C/C++内存管理——“C++”
各位CSDN的uu们你们好呀,好久没有更新小雅兰的C专栏啦,下面,小雅兰继续开始更新C专栏的内容!!!今天,小雅兰的内容是C和C的内存管理,下面,让我们进入C的世界吧!…...
jsp小知识
jsp小知识 1[单选题] 用户登录功能中,用到的数据库操作是( )。 正确答案: C 我的答案: C A. 增加 B. 删除 C. 查询 D. 修改 2[单选题] 下列说法错误的是( )。 正确答案: C 我的答案: C A. JDBC API包括一组支…...

Flutter:改变手机状态栏颜色,与appBar状态颜色抱持一致
前言 最近在搞app的开发,本来没怎么注意appBar与手机状态栏颜色的问题。但是朋友一说才注意到这两种的颜色是不一样的。 我的app 京东 qq音乐 这样一对比发现是有的丑啊,那么如何实现呢? 实现 怎么说呢,真不会。百度到的一些是…...
深入分析:一体化运维监控在金融行业的关键作用
金融行业,作为现代经济的核心支柱,对信息技术的依赖程度极高。在飞速发展的金融科技背景下,如何保障IT系统的稳定运行,成为了行业关注的焦点。一体化运维监控,通过实时监控、智能预警、快速定位及自动化恢复等功能&…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...