Python版的Nmon分析器:让你远离excel宏

系统 Linux 后端
Nigel's monitor,也叫做 “Nmon”,是一个很好的监控、记录和分析 Linux/*nix 系统性能随时间变化的工具。Nmon 最初由 IBM 开发并于 2009 年夏天开源。时至今日 Nmon 已经在所有 Linux 平台和架构上都可用了。

Python版的Nmon分析器:让你远离excel宏

Nigel's monitor,也叫做 “Nmon”,是一个很好的监控、记录和分析 Linux/*nix 系统性能随时间变化的工具。Nmon 最初由 IBM 开发并于 2009 年夏天开源。时至今日 Nmon 已经在所有 Linux 平台和架构上都可用了。它提供了很棒的当前系统统计信息的基于命令行的实时可视化报告,这些统计信息包括 CPU、RAM、网络和磁盘 I/O。然而,Nmon 最棒的特性是可以随着时间的推移记录系统性能快照。

比如:nmon -f -s 1

nmon CPU and Disk utilization

nmon CPU and Disk utilization

会创建一个日志文件,该日志文件最开头是一些系统的元数据(AAA - BBBV 部分),后面是所监控的系统属性的定时快照,比如 CPU 和内存的使用情况。这个输出的文件很难直接由电子表格应用来处理,因此诞生了 Nmon_Analyzer excel 宏。如果你用的是 Windows/Mac 并安装了 Microsoft Office,那么这个工具非常不错。如果没有这个环境那也可以使用 Nmon2rrd 工具,这个工具能将日志文件转换 RRD 输入文件,进而生成图形。这个过程很死板而且有点麻烦。现在出现了一个更灵活的工具,我向你们介绍一下 pyNmonAnalyzer,它提供了一个可定制化的解决方案来生成结构化的 CSV 文件和带有用 matplotlib 生成的图片的简单 HTML 报告。

 

入门介绍

系统需求:

从名字中就能看出我们需要有 python。此外 pyNmonAnalyzer 还依赖于 matplotlib 和 numpy。若你使用的是 debian 衍生的系统,则你需要先安装这些包:

  1. $ sudo apt-get install python-numpy python-matplotlib

 

获取 pyNmonAnalyzer:

你可以克隆 git 仓库:

  1. $ git clone git@github.com:madmaze/pyNmonAnalyzer.git

或者,直接从这里下载:pyNmonAnalyzer-1.0.zip 。(LCTT 译注:这是个 5 年前的项目但是一直在陆陆续续的进行维护)

接下来我们需要一个 Nmon 文件,如果没有的话,可以使用发行版中提供的实例或者自己录制一个样本:nmon -F test.nmon -s 1 -c 120,会录制 120 个快照,每秒一个,存储到 test.nmon 文件中。

让我们来看看基本的帮助信息:

  1. $ ./pyNmonAnalyzer.py -h
  2. usage: pyNmonAnalyzer.py [-h] [-x] [-d] [-o OUTDIR] [-c] [-b] [-r CONFFNAME]
  3. input_file
  4.  
  5. nmonParser converts Nmon monitor files into time-sorted
  6. CSV/Spreadsheets for easier analysis, without the use of the
  7. MS Excel Macro. Also included is an option to build an HTML
  8. report with graphs, which is configured through report.config.
  9.  
  10. positional arguments:
  11. input_file Input NMON file
  12.  
  13. optional arguments:
  14. -h, --help show this help message and exit
  15. -x, --overwrite overwrite existing results (Default: False)
  16. -d, --debug debug? (Default: False)
  17. -o OUTDIR, --output OUTDIR
  18. Output dir for CSV (Default: ./data/)
  19. -c, --csv CSV output? (Default: False)
  20. -b, --buildReport report output? (Default: False)
  21. -r CONFFNAME, --reportConfig CONFFNAME
  22. Report config file, if none exists: we will write the
  23. default config file out (Default: ./report.config)

该工具有两个主要的选项

  1. 将 nmon 文件传唤成一系列独立的 CSV 文件
  2. 使用 matplotlib 生成带图形的 HTML 报告

下面命令既会生成 CSV 文件,也会生成 HTML 报告:

  1. $ ./pyNmonAnalyzer.py -c -b test.nmon

这会创建一个 ./data 目录,其中有一个存放 CSV 文件的目录 (./data/csv/),一个存放 PNG 图片的目录 (./data/img/) 以及一个 HTML 报告 (./data/report.html)。

默认情况下,HTML 报告中会用图片展示 CPU、磁盘繁忙程度、内存使用情况和网络传输情况。所有这些都定义在一个不言自明的配置文件中 (report.config)。目前这个工具还不是特别的灵活,因为 CPU 和 MEM 除了 onoff 外,无法做其他的配置。不过下一步将会改进作图的方法并允许用户灵活地指定针对哪些数据使用哪种作图方法。

目前这些报告还十分的枯燥而且只能打印出基本的几种标记图表,不过它的功能还在不断的完善中。目前在开发的是一个向导来让配置调整变得更容易。如果有任何建议,找到任何 bug 或者有任何功能需求,欢迎与我交流。 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2011-08-09 09:49:47

2011-06-27 10:35:21

Excel

2010-08-31 15:03:18

网络钓鱼

2011-06-22 15:47:16

2016-03-28 09:39:54

2019-09-29 16:17:25

Java代码性能编程语言

2020-08-26 19:24:51

iOS 14App Attest防护

2009-12-23 16:22:15

2010-11-09 14:06:47

SQL Server查

2020-02-24 09:25:33

代码开发工具

2010-09-02 09:15:33

协议分析器Wi-Fi

2009-03-03 09:56:00

协议分析器WLAN

2015-09-22 09:23:04

2010-01-05 16:55:44

JSON 文本

2023-08-30 09:16:38

PandasPython

2022-12-08 15:25:10

Clang分析工具CSA

2009-11-27 14:02:15

无线路由器断线故障

2009-11-10 16:20:52

2010-03-22 16:19:04

邮箱服务器邮件安全

2019-11-11 08:32:29

​Python开发自动化
点赞
收藏

51CTO技术栈公众号