nmon을 사용하여 Linux 시스템 성능 문제 해결 및 모니터링

WBOY
풀어 주다: 2024-02-09 14:20:13
앞으로
1038명이 탐색했습니다.

Nigel's Monitor(nmon)는 원래 IBM이 AIX 운영 체제용으로 개발한 후 나중에 Linux 시스템으로 포팅한 시스템 성능 모니터링 도구입니다(다중 CPU 아키텍처 지원).

nmon 提供了一个简洁的界面,可以监控系统的各个方面,如 CPU 利用率、内存、磁盘繁忙度和网络利用率等。这是它的一个主要优点。如果没有 nmon,您需要使用专门的监控工具,如 top(用于监控进程)、iostat(用于监控磁盘)和 ifstat CPU 활용도, 메모리, 디스크 사용량, 네트워크 활용도 등 시스템의 다양한 측면을 모니터링할 수 있는 간단한 인터페이스를 제공합니다. 이것이 주요 장점 중 하나입니다.

가 없는 경우 top(프로세스를 모니터링하는 데 사용), iostat(모니터링 디스크용) 및 ifstat(네트워크 모니터링에 사용)를 통해 다양한 리소스 모니터링 . 이러한 도구는 모두 데이터를 다르게 표시합니다.

nmon。通过使用 nmon,我能够解决一些难以发现的问题,包括最初看起来像是网络瓶颈的问题。我使用 nmon저는 약 10년 전에 AIX 시스템 관리자로

를 처음 사용했습니다.

를 사용하여 처음에는 네트워크 병목 현상처럼 보였던 문제를 포함하여 찾기 어려운 몇 가지 문제를 해결할 수 있었습니다. nmon 来收集和存储性能数据以供分析。有关 Linux 版本的 nmon를 사용하여 동시에 여러 리소스를 확인했는데, 결국 너무 많은 파일을 열어서 발생하는 애플리케이션 문제라는 것을 알게 되었습니다.

대화형 모니터링 시스템 외에도

배치 모드를 사용하여 분석을 위한 성능 데이터를 수집하고 저장할 수도 있습니다.

Linux 버전에 대한 자세한 내용은 프로젝트 공식 웹사이트를 참조하세요. 이 글에서는 이 강력한 모니터링 도구를 소개하고 설치부터 시작하겠습니다.

nmonnmon 설치

nmon

많은 Linux 배포판의 기본 저장소에서 사용할 수 있습니다. 예를 들어 Fedora35에서 DNF를 사용하여 설치할 수 있습니다.

으아악 nmonRed Hat Enterprise Linux 또는 CentOS의 경우

는 EPEL(Enterprise Linux용 추가 패키지) 저장소에서 사용할 수 있습니다.

dnf 安装 nmon설치하려면

먼저 EPEL을 활성화해야 합니다.

으아악 nmon다음으로 dnf 설치

: 🎜 으아악 🎜이제 🎜 설치가 완료되었으므로 이를 사용하여 시스템을 모니터링하세요! 🎜

以交互的方式使用 nmon

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

$ nmon

┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:04:27────┐
│                                                                 │
│------------------------------                                   │
│ _ __  _ __ ___   ___  _ __    For help type H or ...            │
│| '_ \| '_ ` _ \ / _ \| '_ \    nmon -?  - hint                  │
│| | | | | | | | | (_) | | | |   nmon -h  - full details          │
│|_| |_|_| |_| |_|\___/|_| |_|                                    │
│                               To stop nmon type q to Quit       │
│------------------------------                                   │
│                                                                 │
│Fedora release 35 (Thirty Five) VERSION="35 (Thirty Five)"       │
│Vendor=AuthenticAMD Model=AMD EPYC-Milan Processor               │
│MHz=1911.004 bogomips=3822.00     lscpu:CPU=4 Little Endian      │
│ProcessorChips=4 PhysicalCores=1        Sockets=4 Cores=1 Thrds=1│
│                 VirtualCPUs =4         MHz=0 max=0 min=0        │
│                                                                 │
│Use these keys to toggle statistics on/off:                      │
│  c = CPU         l = CPU Long-term     - = Faster screen updates│
│  C = " WideView  U = Utilisation       + = Slower screen updates│
│  m = Memory      V = Virtual memory    j = File Systems         │
│  d = Disks       n = Network           . = only busy disks/procs│
│  r = Resource    N = NFS               h = more options         │
│  k = Kernel      t = Top-processes     q = Quit                 │
│─────────────────────────────────────────────────────────────────│
로그인 후 복사

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

┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:05:58─┐
│ CPU Utilisation ─────────────────────────────────────────────│
│---------------------------+---------------------------------+│
│CPU User%  Sys% Wait%  Idle|0          |25   |50 |75   100|   │
│  1   3.6  17.2   0.0  79.2|Ussssssss>                    |   │
│  2   2.1   6.2   0.0  91.7|Usss    >                     |   │
│  3   0.0   1.1   0.0  98.9| >                            |   │
│  4   6.1  17.2   0.0   0.5|UUUssssssss>                  |   │
│---------------------------+---------------------------------+│
│Avg   3.0  10.3   0.0  86.7|Usssss>                       |   │
│---------------------------+---------------------------------+│
│──────────────────────────────────────────────────────────────│
로그인 후 복사

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

┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:17:01─┐
│ CPU Utilisation ─────────────────────────────────────────────│
│---------------------------+---------------------------------+│
│CPU User%  Sys% Wait%  Idle|0         |25    |50  |75  100|   │
│  1   2.6  10.3   0.0  87.1|Usssss     >                  |   │
│  2   0.0   2.2   0.0  97.8|s           >                 |   │
│  3   6.5  11.0   0.0  82.5|UUUsssss>                     |   │
│  4   0.0   0.5   0.0  99.5|               >              |   │
│---------------------------+---------------------------------+│
│Avg   2.4   5.9   0.0  91.6|Uss     >                     |   │
│---------------------------+---------------------------------+│
│ Network I/O ─────────────────────────────────────────────────│
│I/F Name Recv=KB/s Trans=KB/s p_in p_out in_sz out_sz Peak->..│
│      lo      0.0       0.0       0.0    0.0     0.0    0.0...│
│  enp1s0      0.0       0.0       0.5    0.0    52.0    0.0...│
│  enp7s0    218.6    5923.4    3335.5 9989.68   67.1  607.2...│
│ Network Error Counters ──────────────────────────────────────│
│I/F Name iErrors iDrop iOverrun iFrame oErrors   oDrop oOver..│
│      lo       0       0       0       0       0       0   ...│
│  enp1s0       0   34419       0       0       0       0   ...│
│  enp7s0       0   34419       0       0       0       0   ...│
│──────────────────────────────────────────────────────────────│
로그인 후 복사

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

使用 nmon 来排查与监控 Linux 系统的性能

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

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

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

收集性能数据

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

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

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

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

$ nmon -f -s60 -c60 -t
로그인 후 복사

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

$ ps -ef | grep nmon
ricardo 1849 1 0 12:27 pts/0 00:00:00 nmon -f -s60 -c60 -t
로그인 후 복사

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

$ ls -l
total 36
-rw-r--r--. 1 ricardo ricardo 36395 Feb 13 12:28 f35ks01_220213_1227.nmon
로그인 후 복사

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

$ head f35ks01_220213_1227.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,10,
AAA,host,f35ks01
AAA,user,ricardo
AAA,OS,Linux,5.16.8-200.fc35.x86_64,#1 SMP PREEMPT Tue Feb 8 20:58:59 UTC 2022,x86_64
AAA,runname,f35ks01
로그인 후 복사

除了这些方法之外,nmon 开发团队还提供了一个脚本,该脚本可将这些数据转换为 Web 浏览器能可视化查看的图表。接下来我们看看如何做到这一点。

生成图表

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

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

$ curl -LO http://sourceforge.net/projects/nmon/files/nmonchart40.tar
로그인 후 복사

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

$ mkdir nmonchart

$ tar xvf nmonchart40.tar -C nmonchart
로그인 후 복사

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

$ sudo dnf install -y ksh
로그인 후 복사

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

$ ./nmonchart/nmonchart f35ks01_220213_1227.nmon 
로그인 후 복사

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

$ ls -lg
total 4164
-rw-r--r--. 1 ricardo 113822 Feb 14 18:52 f35ks01_220213_1227.html
-rw-r--r--. 1 ricardo 93436 Feb 13 13:26 f35ks01_220213_1227.nmon
drwx------. 2 ricardo 4096 Aug 28 2020 nmonchart
로그인 후 복사

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

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

可视化性能图表

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

您还可以使用 Web 服务器提供这些文件。我最喜欢的方法之一是在 Podman 容器中使用 Nginx,正如我在将 20 个单行 Linux 命令添加到您的工具箱中所建议的那样。

首先,创建一个目录并将 HTML 文件移到那里:

$ mkdir html

$ mv f35ks01_220213_1227.html html/
로그인 후 복사

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

$ podman run --rm -v ./html:/usr/share/nginx/html:ro,Z -p 8080:80 -d nginx
로그인 후 복사

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

$ sudo firewall-cmd --add-port 8080/tcp 
로그인 후 복사

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

使用 nmon 来排查与监控 Linux 系统的性能

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

总结

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


위 내용은 nmon을 사용하여 Linux 시스템 성능 문제 해결 및 모니터링의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:lxlinux.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿