栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【Linux的开胃小菜】使用 nmon 来排查与监控 Linux 系统的性能

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Linux的开胃小菜】使用 nmon 来排查与监控 Linux 系统的性能


Nigel’s Monitor (nmon) :是一个系统性能监控工具,其最初由 IBM 为 AIX 操作系统研发,后来被移植到 Linux 中(在多个 CPU 架构上运行)。

nmon 允许你在一个简洁的界面中来监控系统的各个方面,如 CPU 利用率、内存、磁盘繁忙度、网络利用率等。这是它的一个主要的好处。假如没有 nmon,你必须使用专门的监控工具,如 top(监控进程)、iostat(监控磁盘)和 ifstat(监控网络)来监控各种资源。这其中的每一个呈现数据的方式都是截然不同的。

除了为你交互式监控系统外,还可以在批处理模式下使用 nmon 来收集和存储性能数据以供分析。有关用于 Linux 的 nmon 的更多信息,请参阅该项目的官方网站。

本文着眼于这个强大的监控工具,从安装它开始====>

一、安装 nmon

nmon 在多数 Linux 发行版的默认存储库中都是可用的。例如,我们可以在 Fedora35 上使用 DNF 来直接安装它:

sudo dnf -y install nmon

对于红帽企业版 Linux 或 CentOS,nmon 在 EPEL (Extra Packages for Enterprise Linux) 的存储库中可用。

要安装 nmon,首先需启用 EPEL:

$ sudo dnf -y install 
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

$ sudo dnf repolist   #显示仓库列表及其简要信息

接下来使用 dnf 安装 nmon:

$ sudo dnf -y install nmon

现在您已经安装了 nmon,使用它来监控您的系统吧!

二、以交互方式使用 nmon

安装完应用程序后,您可以运行 nmon。之后会看到一个包含系统信息和一个小帮助菜单的初始屏幕,它显示了您可以按哪些键来切换不同的指标:

$ nmon
lnmonq16kqHostn[H for help]qqqqqRefresh= 1secs qqq19:27.16qq 2               8                                             k
x                                                                                                                          x
x   -                                                                                                                      x
x    _ __  _ __ ___   ___  _ __    	 For help type H or ...                                                            x
x   | '_ | '_ ` _  / _ | '_           nmon -?  - hint                                                                  x
x   | | | | | | | | | (_) | | | |         nmon -h  - full details                                                          x
x   |_| |_|_| |_| |_|___/|_| |_|                                                                                          x
x                                        To stop nmon type q to Quit                                                       x
x   -                                                                                                                      x
x                                                                                                                          x
x   CentOS Linux release 8.2.2004 (Core)  VERSION="8 (Core)"                                                               x
x   Vendor=GenuineIntel Model=Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz                                                    x
x   MHz=2808.000 bogomips=5616.00          lscpu:CPU=2 Little Endian                                                       x
x   ProcessorChips=2 PhysicalCores=1             Sockets=2 Cores=1 Thrds=1                                                 x
x                    VirtualCPUs =2              MHz=2808 max=0 min=0                                                      x
x                                                                                                                          x
x   Use these keys to toggle statistics on/off:                                                                            x
x     c = CPU         l = CPU Long-term     - = Faster screen updates                                                      x
x     C = " WideView  U = Utilisation       + = Slower screen updates                                                      x
x     m = Memory      V = Virtual memory    j = File Systems                                                               x
x     d = Disks       n = Network           . = only busy disks/procs                                                      x
x     r = Resource    N = NFS               h = more options                                                               x
x     k = Kernel      t = Top-processes     q = Quit                                                                       

范例:按 C 键会切换为 CPU 利用率显式:

| x x 2 0.0 0.5 0.0 99.5|> | x x-+-+ x xAvg 0.0 0.0 0.0 100.0|> | x x-+-+ x xqx](https://img-blog.csdnimg.cn/a6df98de05b14b5fb301e02aa41bf2e5.png) " />

范例:按 n 键会切换为网络显示,并自动将其堆叠在 CPU 显示的下方:

继续按下其他按键可在同一个视图中堆叠其他指标。
范例:可使用 D 键来显式磁盘 I/O,可使用 m 键来显式内存信息,可使用 t 键来显式Top 进程。



除了堆叠新显示外,您还可以按 点(.) 键仅显示繁忙的 CPU 和磁盘,也可以 + 和 - 键来增加或减少屏幕刷新时间。使用 H 键显示帮助。

由于可以随时 启用 和 禁用 不同的监视器和指标,所以nmon是一个可帮助您了解系统行为的高度灵活的工具。它还可以通过同时显示不同的指标来帮助解决问题,通过提供系统的整体视图以提高您理解问题的能力。

完成后,按 q 键退出并结束监控会话。

三、收集性能数据

除了提供系统的整体交互式视图外,您还可以在批处理模式下运行 nmon,这样就可以从系统中收集长时间的性能数据以进行后验分析。

除了交互模式提供的实时指标外,此功能还允许您了解系统在较长时间内的行为。这是一项强大的功能,可以通过它进行容量规划,并有机会解决难以实时发现的零星问题。

要在批处理模式下运行 nmon,请在启动应用程序时使用标志 -f 参数(它必须是提供的第一个参数)。默认情况下,在一天内,nmon 每五分钟收集一次数据。您可以用参数 -s 来指定收集间隔和参数 -c 来指定快照数量。

范例: 开启 nmon 批处理模式,我们想在一小时内,每分钟收集数据一次,同时包括捕获顶级进程 -t,
执行以下命令:

#nmon -f -s60 -c60 -t

终端提示符将会立即返回,因为当您执行此命令时应用程序正在后台运行。您可以接着使用 ps 命令,然后就可以看到它正在运行了:

#ps -ef | grep nmon
root       32589       1  0 19:55 pts/0    00:00:00 nmon -f -s60 -c60 -t

在批处理模式下,nmon 使用逗号分隔值 (Comma-Separated Value, CSV) 格式 将收集的数据保存在当前目录中,其扩展名为 .nmon:

#ls -l
total 35
-rw-r--r--  1 root root 33466 Jun 10 19:57 Centos8_220610_1955.nmon

由于这是一个 CSV 文件,因此你可以使用其他 Linux 文本操作(命令行)工具对其进行处理,或者使用电子表格软件将其打开,以进行进一步分析。

#head Centos8_220610_1955.nmon
AAA,progname,nmon
AAA,command,nmon -f -s60 -c60 -t 
AAA,version,16k
AAA,disks_per_line,150
AAA,max_disks,256,set by -d option
AAA,disks,7,
AAA,host,Centos8
AAA,user,root
AAA,OS,Linux,4.18.0-193.el8.x86_64,#1 SMP Fri May 8 10:59:10 UTC 2020,x86_64
AAA,runname,Centos8
四、生成图表

CSV 是一种灵活的格式,它允许您使用电子表格处理软件等不同的应用程序导出、分析和查看这些数据。为了使这个过程更加容易,nmon 的开发人员创造了 nmonchart。此 shell 脚本使用 Google Charts(JavaScript)将这些数据转换为 HTML,以使其在图形环境中可视化数据并与之交互。

若要使用 nmoncart,请从 nmon 主页下载:

#curl -LO http://sourceforge.net/projects/nmon/files/nmonchart40.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   536    0   536    0     0    211      0 --:--:--  0:00:02 --:--:--   211
100   701    0   701    0     0    189      0 --:--:--  0:00:03 --:--:-- 11491
100   717    0   717    0     0    167      0 --:--:--  0:00:04 --:--:--   167
100   948    0   948    0     0    205      0 --:--:--  0:00:04 --:--:--     0
100   305  100   305    0     0     52      0  0:00:05  0:00:05 --:--:-- 16052
100 3950k  100 3950k    0     0   381k      0  0:00:10  0:00:10 --:--:-- 1132k

然后使用 tar 来提取包的内容:

#mkdir nmonchart/
#tar xvf nmonchart40.tar -C nmonchart

nmonchart 需要使用 ksh(Korn SHell),因此要创建图表,首先应使用 dnf 在您的系统中安装 ksh:

sudo dnf install -y ksh

接下来,使用以下命令转换 .nmon 文件(该文件是在批处理模式下执行 nmon 时创建的):

#./nmonchart/nmonchart Centos8_220610_1955.nmon

该脚本创建一个与源 .nmon 文件同名的 HTML 文件。或者,您可以将目标文件名作为第二个参数传递给 nmonchart。这是一个例子:

#ls -lg
total 4060
-rw-r--r-- 1 root   63620 Jun 10 20:09 Centos8_220610_1955.html
-rw-r--r-- 1 root   43448 Jun 10 20:11 Centos8_220610_1955.nmon
drwx------ 2  201     187 Aug 29  2020 nmonchart
-rw-r--r-- 1 root 4044800 Jun 10 20:04 nmonchart40.tar

您的系统图表现已准备就绪。您的下一步是查看它们。

题外:推荐一个关于 bash shell 脚本的好书籍————《Bash shell scripting cheat sheet》

五、可视化性能图表

nmonchart 为您提供的每个 .nmon 源文件创建一个 HTML 文件,其中嵌入了所需的图表 JavaScript 库。如果本地计算机上有 HTML 文件,请直接在 Web 浏览器中查看它。

您还可以使用 Web 服务器提供这些文件。我最喜欢的方法之一是在 Podman 容器中使用 Nginx

将 HTML 文件移到那里:

#mv Centos8_220610_1955.html  /usr/share/nginx/html/

然后,在 8080 端口上使用 Podman 去服务来自于 Ngnix 的 html 目录中的内容:

podman run --rm -v ./html:/usr/share/nginx/html:ro,Z -p 8080:80 -d nginx

关于podman简介和使用

如果安全需要的话,请在服务器防火墙上打开 8080 端口以允许流量通过:

sudo firewall-cmd --add-port 8080/tcp 

然后,为了查看图标,请将您的浏览器指向您的 URL http://:8080/Centos8_220610_1955.html:

单击屏幕顶部的任何按钮以查看相应的图表(图表是交互式的),可以放大和缩小以查看更精细的数据,或将鼠标悬停在图表上以查看给定时间的详细数据。

六:总结

nmon 是一款灵活且功能强大的系统监控应用程序,它可帮助您更好地了解系统,并在出现问题时及时地对其进行故障排除。它结合了监控能力、整合来自不同系统资源的实时数据的能力,以及长期性能数据收集和分析的能力。这使其成为您的系统管理员的绝佳工具。


It’s time for you to start living your life. 是时候开始为你自己而活。
本篇完_
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/962968.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号