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

Linux性能监控神器:深入nmon详解与使用

nmon 是一款在 Linux 系统上广泛使用的性能监控工具,由 IBM 开发。它提供了对系统资源的实时监控,包括 CPU、内存、网络、磁盘 I/O 等。nmon 的优势在于它能够以直观的文本界面显示系统性能数据,并支持生成性能数据的日志文件,供后续分析使用。

安装 nmon

  • Debian/Ubuntu

    sudo apt-get install nmon
    
  • RHEL/CentOS

    sudo yum install nmon
    

启动 nmon

启动 nmon 非常简单,只需在终端输入以下命令:

nmon

启动后,nmon 将显示一个界面,提供多种性能监控选项。可以使用键盘按键选择你想要监控的系统资源。

1. 交互模式

nmon 使用键盘快捷键来切换和查看不同的系统性能指标。以下是常用的按键和其功能:

  • c - 查看 CPU 使用情况,显示每个 CPU 核心的使用率。
  • m - 查看 内存 使用情况,包括物理内存、虚拟内存和交换区的使用率。
  • d - 查看 磁盘 I/O 情况,包括读写速率和每个磁盘设备的 I/O 使用情况。
  • n - 查看 网络 统计数据,显示网络接口的传入和传出流量。
  • k - 查看 内核 相关信息,如上下文切换、进程切换等。
  • t - 查看 Top 进程 列表,类似于 top 命令,显示当前最耗资源的进程。
  • v - 查看 虚拟内存 使用情况。
  • r - 查看 资源 使用情况,包括 CPU 负载平均值、进程统计等。
  • q - 退出 nmon

生成性能日志文件

如果需要记录系统性能数据以供后续分析,可以使用 nmon 的日志功能。执行以下命令启动 nmon 并生成日志文件:

nmon -f -s <interval> -c <count>
  • -f: 启用日志文件输出,默认生成以日期和主机名命名的 .nmon 文件。
  • -s : 设置采样时间间隔,以秒为单位。
  • -c : 设置采样次数。

例如,以下命令每 10 秒记录一次性能数据,总共记录 100 次:

nmon -f -s 10 -c 100

分析日志文件

生成的 .nmon 日志文件可以使用 nmon_analyser 等工具进行分析。nmon_analyser 是一个 Excel 插件,可以将 .nmon 日志数据转换为图形报表。

nmon_analyser工具下载

常见使用示例

  1. 实时监控 CPU 和内存
    启动 nmon 后,按 cm 键分别查看 CPU 和内存的使用情况。

  2. 监控网络和磁盘 I/O
    启动 nmon 后,按 nd 键分别查看网络接口流量和磁盘 I/O 活动。

  3. 记录系统性能数据
    使用 nmon -f -s 5 -c 120 命令每 5 秒记录一次数据,持续 10 分钟。

交互模式nmon 的默认模式,也是最常用的模式。在这个模式下,nmon 直接在终端显示系统性能信息,并允许用户通过键盘输入来选择要监控的资源。

2. 数据收集模式(批处理模式)

数据收集模式nmon 的一种非交互模式,用于将系统性能数据记录到一个文件中,便于后续分析。

使用方法:
nmon -f -s <interval> -c <count>
  • -f:启用日志文件输出。默认生成一个以日期和主机名命名的 .nmon 文件。
  • -s <interval>:设置采样时间间隔(秒)。
  • -c <count>:设置采样次数。
示例:
nmon -f -s 10 -c 60

这将每 10 秒采样一次,总共采样 60 次,并将数据保存到一个 .nmon 文件中。

场景:

适用于需要长时间监控并记录系统性能数据,以便后续通过工具(如 nmon_analyser)进行分析的情况。

3. 守护进程模式

守护进程模式 允许 nmon 在后台运行,同时持续监控系统性能,并将数据保存到文件中。

使用方法:
nmon -f -s <interval> -c <count> &
  • &:将 nmon 进程放入后台运行。
示例:
nmon -f -s 30 -c 2880 &

这将 nmon 放入后台,每 30 秒采样一次,采样 2880 次(24 小时)。

场景:

适用于不希望 nmon 占用前台终端,但仍希望它持续监控系统的情况。

4. 配置文件模式

配置文件模式 允许用户预先定义需要监控的系统资源,并以此配置文件为依据启动 nmon。这使得批量监控不同系统时更加灵活和自动化。

使用方法:

首先,创建一个配置文件(如 nmon_config.txt),内容包括所需监控的资源(如 c, m, d, n),然后启动 nmon

nmon -f -s <interval> -c <count> -C <config_file>
  • -C <config_file>:指定配置文件路径。
示例:

假设 nmon_config.txt 文件内容如下:

c
m
n
d

启动命令为:

nmon -f -s 15 -c 240 -C nmon_config.txt

这将根据配置文件每 15 秒采样一次,采样 240 次。

场景:

适用于批量部署或自动化脚本中,需要预定义监控配置的场景。

5. 在线分析模式

在线分析模式nmon 的一种特殊模式,通常结合 Web 界面或其他图形化工具来实时查看性能数据。

使用方法:

nmon 本身没有直接的图形化界面,但你可以将 nmon 生成的数据通过其他工具(如 nmonchart, nmon_visualizer 等)实时或事后展示。

6. 无人值守模式

无人值守模式 通常与数据收集模式类似,但其重点在于长时间运行监控,并可能结合脚本进行自动化管理和报警。

使用方法:

通常与 cron 作业结合使用,以便定时启动 nmon 进行监控。

示例:

cron 中添加任务,每天 00:00 开始监控:

0 0 * * * /usr/bin/nmon -f -s 60 -c 1440

这将每天运行 nmon,每分钟采样一次,采样 1440 次(24 小时)。

场景:

适用于需要长期、无人值守的系统性能监控,并可能通过脚本自动处理和分析数据。

总结

nmon 是一个功能强大且轻量级的工具,适合用来实时监控和记录 Linux 系统的性能数据。通过它,你可以轻松了解系统的运行状态,并在性能出现瓶颈时快速定位问题。如果需要长期的性能监控或分析,它生成的日志文件也非常有用。


http://www.kler.cn/a/290954.html

相关文章:

  • 算法设计期末复习
  • 你的第一个博客-第一弹
  • Qt5HttpServer : Qt官方的HTTP服务器
  • day11|150,239,347
  • 线性代数期末总复习的点点滴滴(1)
  • 基于java web在线商城购物系统源码+论文
  • 经验笔记:Maven 与 Gradle —— Java 构建工具对比
  • 每日一练4:牛牛的快递(含链接)
  • @DateTimeFormat和@JsonFormat的区别和使用场景
  • 前端工程化之【模块化规范】
  • 黑马JavaWeb开发笔记15——用JAVA进行Web开发时候的请求、响应流程,B\S架构、C\S架构(概述)
  • log4j漏洞原理以及复现
  • 【JUC】12-CAS
  • Nordic Collegiate Programming ContestNCPC 2021
  • Linux基础 -- 获取CPU负载信息
  • 在react 中还有另外一种three.js 渲染方式
  • 生活因科技而美好:一键解锁PDF处理的无限可能
  • 算法打卡 Day29(回溯算法)-复原 IP 地址 + 子集 + 子集 Ⅱ
  • Gin框架中的全局中间件与中间件传值
  • IDEA 安装lombok插件不兼容的问题及解决方法
  • 【弱监督时间动作定位】Probabilistic Vision-Language Representation for WSTAL 论文阅读
  • Linux shell调试:高效定位错误提高脚本可靠性
  • 修改SpringBoot启动图标banner
  • 使用AI写WebSocket知识是一种怎么样的体验?
  • 17. 如何决定使用ArrayList或LinkedList?在什么情况下选择其中之一?
  • 【Linux】进程周边:进程概念