当前位置: 首页 > news >正文

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)

优势

  1. 简单易用:编译后就是一个二进制文件。nmon可以直接在命令行下启动,非常容易使用,且可以实时监控系统性能。
  2. 实时监控:nmon可以实时监控CPU、内存、磁盘、网络等性能指标,并以图表形式展示结果,方便用户快速发现问题。
  3. 详细信息:nmon不仅提供了系统整体的性能信息,还可以展示每个进程、每个CPU核心、每个网络接口的详细信息,便于用户深入分析问题。
  4. 可定制性强:nmon可以根据用户需要灵活调整监控项和输出方式,满足不同场景的需求。
  5. 低系统资源占用:全 C开发,全部代码8000+行。nmon本身占用系统资源非常少,对被监控系统的影响极小,在实时监控的同时不会影响用户正常使用。

编译安装

各主流操作系统一般都有相应的包。直接apt install nmondnf 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
  1. 前置条件: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
    
  2. 将最新的源码lmon16n.c硬连接到lmon.c
    ln lmon16n.c lmon.c
  3. 根据目标操作系统的架构,系统和版本更新makefile文件。
    image.png
nmon_ARM_euler2203: lmon.ccc -o nmon_ARM_euler2203 $(FILE) $(CFLAGS) $(LDFLAGS) -D ARM
  1. 运行make编译即可可以看到编译后的二进制文件nmon_ARM_euler2203
  2. 直接运行即可 ./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
image.png
载入结果文件,可以直观观测性能变化
image.png

http://www.lryc.cn/news/227623.html

相关文章:

  • 96 前缀树Trie
  • “第六十六天”
  • MYSQL5.7和MYSQL8配置主从
  • springboot苍穹外卖实战:九、小程序微信登录代码开发+商品浏览
  • 【MySQL系列】 第二章 · SQL(下)
  • SpringBoot_01
  • 【OS】AUTOSAR架构下多核通信
  • 从Docker Hub获取镜像和创建容器
  • 江西开放大学引领学习新时代:电大搜题助力学子迈向成功
  • 入门指南:Docker的基本命令
  • nvdiffrast的MeshRenderer
  • APISIX源码安装问题解决
  • 基于SSM和vue的在线购物系统
  • 力扣100题——子串
  • 自然语言处理中的文本聚类:揭示模式和见解
  • C/C++内存管理——“C++”
  • jsp小知识
  • Flutter:改变手机状态栏颜色,与appBar状态颜色抱持一致
  • 深入分析:一体化运维监控在金融行业的关键作用
  • 物联网AI MicroPython学习之语法 network网络配置模块
  • java根据前、中序遍历结果重新生成二叉树
  • 利用检测结果实现半自动标注
  • Android修行手册 - 万字梳理JNI开发正确技巧和错误缺陷
  • C++学习 --类和对象之继承
  • Redis之缓存
  • Redis6的IO多线程分析
  • kali linux安装教程
  • React进阶之路(四)-- React-router-v6、Mobx
  • 55基于matlab的1.高斯噪声2.瑞利噪声3.伽马噪声4.均匀分布噪声5.脉冲(椒盐)噪声
  • Codeforces Round 908 (Div. 2)视频详解