偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

使用 nmon 來(lái)排查與監(jiān)控 Linux 系統(tǒng)的性能

系統(tǒng) Linux
Nigel's Monitor (nmon) 是一個(gè)系統(tǒng)性能監(jiān)控工具,其最初由 IBM 為 AIX 操作系統(tǒng)研發(fā),后來(lái)被移植到 Linux 中(在多個(gè) CPU 架構(gòu)上運(yùn)行)。

nmon 允許您在一個(gè)簡(jiǎn)潔的界面中來(lái)監(jiān)控系統(tǒng)的各個(gè)方面,如 CPU 利用率、內(nèi)存、磁盤(pán)繁忙度、網(wǎng)絡(luò)利用率等。這是它的一個(gè)主要的好處。假如沒(méi)有 nmon,您必須使用專(zhuān)門(mén)的監(jiān)控工具,如 top(監(jiān)控進(jìn)程)、iostat(監(jiān)控磁盤(pán))和 ifstat(監(jiān)控網(wǎng)絡(luò))來(lái)監(jiān)控各種資源。這其中的每一個(gè)呈現(xiàn)數(shù)據(jù)的方式都是截然不同的。

大約 10 年前,作為 AIX 系統(tǒng)管理員的我第一次使用 nmon。通過(guò)使用 nmon,我可以解決一些難以發(fā)現(xiàn)的問(wèn)題,包括最初的那個(gè)看起來(lái)像似網(wǎng)絡(luò)瓶頸的問(wèn)題。我通過(guò)使用 nmon 來(lái)同時(shí)檢查多個(gè)資源,之后發(fā)現(xiàn)這是由于打開(kāi)太多文件導(dǎo)致的一個(gè)應(yīng)用程序問(wèn)題。

除了為您交互式監(jiān)控系統(tǒng)外,您還可以在批處理模式下使用 nmon 來(lái)收集和存儲(chǔ)性能數(shù)據(jù)以供分析。有關(guān)用于 Linux 的 nmon 的更多信息,請(qǐng)參閱該項(xiàng)目的官方網(wǎng)站。

本文著眼于這個(gè)強(qiáng)大的監(jiān)控工具,從安裝它開(kāi)始。

安裝 nmon

nmon 在許多 Linux 發(fā)行版的默認(rèn)存儲(chǔ)庫(kù)中都是可用的。例如,我們可以在 Fedora35 上使用 DNF 來(lái)安裝它:

$ sudo dnf -y install nmon

對(duì)于紅帽企業(yè)版 Linux 或 CentOS,nmon 在 EPEL(Extra Packages for Enterprise Linux) 的存儲(chǔ)庫(kù)中可用。

要安裝 nmon,首先需啟用 EPEL:

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

接下來(lái)使用 dnf 安裝 nmon:

$ sudo dnf -y install nmon

現(xiàn)在您已經(jīng)安裝了 nmon,使用它來(lái)監(jiān)控您的系統(tǒng)吧!

以交互的方式使用 nmon

安裝完應(yīng)用程序后,您可以運(yùn)行 nmon。之后您會(huì)看到一個(gè)包含系統(tǒng)信息和一個(gè)小幫助菜單的初始屏幕,它顯示了您可以按哪些鍵來(lái)切換不同的指標(biāo):

$ 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 鍵會(huì)切換為 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 鍵會(huì)切換為網(wǎng)絡(luò)顯示,并自動(dòng)將其堆疊在 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 ...│
│──────────────────────────────────────────────────────────────│

繼續(xù)按下其他按鍵可在同一個(gè)視圖中堆疊其他指標(biāo)。例如,可使用 D 鍵來(lái)顯式磁盤(pán) I/O,可使用 M 鍵來(lái)顯式內(nèi)存信息,可使用 T 鍵來(lái)顯式Top 進(jìn)程。

除了堆疊新顯示外,您還可以按點(diǎn)(.)鍵僅顯示繁忙的 CPU 和磁盤(pán),也可以 + 和 - 鍵來(lái)增加或減少屏幕刷新時(shí)間。使用 H 鍵顯示幫助。

由于您可以隨時(shí)啟用和禁用不同的監(jiān)視器和指標(biāo),所以 nmon 是一個(gè)可幫助您了解系統(tǒng)行為的高度靈活的工具。它還可以通過(guò)同時(shí)顯示不同的指標(biāo)來(lái)幫助解決問(wèn)題,通過(guò)提供系統(tǒng)的整體視圖以提高您理解問(wèn)題的能力。

完成后,按 Q 鍵退出并結(jié)束監(jiān)控會(huì)話(huà)。

收集性能數(shù)據(jù)

除了提供系統(tǒng)的整體交互式視圖外,您還可以在批處理模式下運(yùn)行 nmon,這樣就可以從系統(tǒng)中收集長(zhǎng)時(shí)間的性能數(shù)據(jù)以進(jìn)行后驗(yàn)分析。

除了交互模式提供的實(shí)時(shí)指標(biāo)外,此功能還允許您了解系統(tǒng)在較長(zhǎng)時(shí)間內(nèi)的行為。這是一項(xiàng)強(qiáng)大的功能,可以通過(guò)它進(jìn)行容量規(guī)劃,并有機(jī)會(huì)解決難以實(shí)時(shí)發(fā)現(xiàn)的零星問(wèn)題。

要在批處理模式下運(yùn)行 nmon,請(qǐng)?jiān)趩?dòng)應(yīng)用程序時(shí)使用標(biāo)志 -f 參數(shù)(它必須是提供的第一個(gè)參數(shù))。默認(rèn)情況下,在一天內(nèi),nmon 每五分鐘收集一次數(shù)據(jù)。您可以用參數(shù) -s 來(lái)指定收集間隔和參數(shù) -c 來(lái)指定快照數(shù)量。

例如,開(kāi)啟 nmon 批處理模式,我們想在一小時(shí)內(nèi),每分鐘收集數(shù)據(jù)一次,同時(shí)包括捕獲頂級(jí)進(jìn)程 -t,執(zhí)行以下命令:

$ nmon -f -s60 -c60 -t

您的終端提示符將會(huì)立即返回,因?yàn)楫?dāng)您執(zhí)行此命令時(shí)應(yīng)用程序正在后臺(tái)運(yùn)行。您可以接著使用 ps 命令,然后就可以看到它正在運(yùn)行了:

$ ps -ef | grep nmon
ricardo 1849 1 0 12:27 pts/0 00:00:00 nmon -f -s60 -c60 -t

在批處理模式下,nmon 使用逗號(hào)分隔值 (Comma-Separated Value, CSV) 格式將收集的數(shù)據(jù)保存在當(dāng)前目錄中,其擴(kuò)展名為 .nmon:

$ ls -l
total 36
-rw-r--r--. 1 ricardo ricardo 36395 Feb 13 12:28 f35ks01_220213_1227.nmon

由于這是一個(gè) CSV 文件,因此您可以使用其他 Linux 文本操作(命令行)工具對(duì)其進(jìn)行處理,或者使用電子表格軟件將其打開(kāi),以進(jìn)行進(jìn)一步分析。

$ 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 開(kāi)發(fā)團(tuán)隊(duì)還提供了一個(gè)腳本,該腳本可將這些數(shù)據(jù)轉(zhuǎn)換為 Web 瀏覽器能可視化查看的圖表。接下來(lái)我們看看如何做到這一點(diǎn)。

生成圖表

CSV 是一種靈活的格式,它允許您使用電子表格處理軟件等不同的應(yīng)用程序?qū)С?、分析和查看這些數(shù)據(jù)。為了使這個(gè)過(guò)程更加容易,nmon 的開(kāi)發(fā)人員創(chuàng)造了 nmonchart。此 shell 腳本使用 Google Charts(JavaScript)將這些數(shù)據(jù)轉(zhuǎn)換為 HTML,以使其在圖形環(huán)境中可視化數(shù)據(jù)并與之交互。

若要使用 nmoncart,請(qǐng)從 nmon 主頁(yè)下載:

$ curl -LO http://sourceforge.net/projects/nmon/files/nmonchart40.tar

然后使用 tar 來(lái)提取包的內(nèi)容:

$ mkdir nmonchart
$ tar xvf nmonchart40.tar -C nmonchart

nmonchart 需要使用 ksh(Korn SHell),因此要?jiǎng)?chuàng)建圖表,首先應(yīng)使用 dnf 在您的系統(tǒng)中安裝 ksh:

$ sudo dnf install -y ksh

接下來(lái),使用以下命令轉(zhuǎn)換 .nmon 文件(該文件是在批處理模式下執(zhí)行 nmon 時(shí)創(chuàng)建的):

$ ./nmonchart/nmonchart f35ks01_220213_1227.nmon

該腳本創(chuàng)建一個(gè)與源 .nmon 文件同名的 HTML 文件。或者,您可以將目標(biāo)文件名作為第二個(gè)參數(shù)傳遞給 nmonchart。這是一個(gè)例子:

$ 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

您的系統(tǒng)圖表現(xiàn)已準(zhǔn)備就緒。您的下一步是查看它們。

推薦一個(gè)關(guān)于 bash shell 腳本的書(shū)籍————《Bash shell scripting cheat sheet》

可視化性能圖表

nmonchart 為您提供的每個(gè) .nmon 源文件創(chuàng)建一個(gè) HTML 文件,其中嵌入了所需的圖表 JavaScript 庫(kù)。如果本地計(jì)算機(jī)上有 HTML 文件,請(qǐng)直接在 Web 瀏覽器中查看它。

您還可以使用 Web 服務(wù)器提供這些文件。我最喜歡的方法之一是在 Podman 容器中使用 Nginx,正如我在將 20 個(gè)單行 Linux 命令添加到您的工具箱中所建議的那樣。

首先,創(chuàng)建一個(gè)目錄并將 HTML 文件移到那里:

$ mkdir html
$ mv f35ks01_220213_1227.html html/

然后,在 8080 端口上使用 Podman 去服務(wù)來(lái)自于 Ngnix 的 html 目錄中的內(nèi)容:

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

如果需要的話(huà),請(qǐng)?jiān)诜?wù)器防火墻上打開(kāi) 8080 端口以允許流量通過(guò):

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

然后,為了查看圖標(biāo),請(qǐng)將您的瀏覽器指向您的 URL http://<YOUR_SERVER_IP_ADDR>:8080/f35ks01_220213_1227.html:

單擊屏幕頂部的任何按鈕以查看相應(yīng)的圖表(圖表是交互式的)。您可以放大和縮小以查看更精細(xì)的數(shù)據(jù),或?qū)⑹髽?biāo)懸停在圖表上以查看給定時(shí)間的詳細(xì)數(shù)據(jù)。

總結(jié)

nmon 是一款靈活且功能強(qiáng)大的系統(tǒng)監(jiān)控應(yīng)用程序,它可幫助您更好地了解系統(tǒng),并在出現(xiàn)問(wèn)題時(shí)及時(shí)地對(duì)其進(jìn)行故障排除。它結(jié)合了監(jiān)控能力、整合來(lái)自不同系統(tǒng)資源的實(shí)時(shí)數(shù)據(jù)的能力,以及長(zhǎng)期性能數(shù)據(jù)收集和分析的能力。這使其成為您的系統(tǒng)管理員的絕佳工具。

責(zé)任編輯:龐桂玉 來(lái)源: 運(yùn)維派
相關(guān)推薦

2017-08-11 19:13:01

LinuxNmon系統(tǒng)監(jiān)控工具

2015-12-17 14:32:46

NmonLinux性能

2014-06-18 09:44:05

NmonNmon命令行Linux性能監(jiān)測(cè)

2014-08-01 15:04:27

linuxnmon

2019-03-04 10:45:57

Linux Cockp系統(tǒng)性能命令

2020-12-09 10:34:51

htopLinux命令

2019-04-11 08:45:27

2014-05-09 14:33:35

2022-07-26 10:28:00

Linux監(jiān)控命令

2017-03-01 12:19:17

rsync Linux系統(tǒng)

2010-05-07 15:40:18

ibmdwLinux

2016-09-26 13:50:52

Linux系統(tǒng)性能

2010-12-24 13:25:44

Linux性能監(jiān)控CPU

2018-03-05 14:00:19

Linux性能瓶頸命令

2009-11-19 16:04:12

2020-02-27 13:23:30

LinuxGlances監(jiān)控工具

2018-08-13 09:57:15

LinuxFio硬盤(pán)性能

2018-01-30 17:35:39

LinuxPythonNmon分析器

2010-05-26 17:39:38

Linux性能監(jiān)控

2011-05-11 17:26:17

Minify
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)