Monitor Nigel (nmon
) adalah alat pemantauan kinerja sistem yang awalnya dikembangkan oleh IBM untuk sistem operasi AIX dan kemudian di-porting untuk Linux pada beberapa arsitektur CPU.
Manfaat utama nmon
adalah memungkinkan Anda untuk memantau berbagai aspek sistem Anda, seperti penggunaan CPU, memori, kesibukan disk, penggunaan jaringan, dan banyak lagi, dalam satu tampilan yang ringkas. Tanpa nmon
, Anda harus menggunakan alat pemantauan khusus seperti top
untuk proses, iostat
untuk disk, dan ifstat
untuk jaringan untuk memantau berbagai sumber daya. Masing-masing menyajikan data secara berbeda.
Saya menggunakan nmon
untuk pertama kalinya sekitar 10 tahun yang lalu sebagai sysadmin AIX. Dengan menggunakan nmon
, saya dapat memecahkan beberapa masalah yang sulit dikenali, termasuk masalah yang awalnya tampak seperti kemacetan jaringan. Dengan memeriksa beberapa sumber daya secara bersamaan menggunakan nmon
, saya menemukan itu adalah masalah aplikasi yang disebabkan oleh terlalu banyak membuka file.
Selain memantau sistem Anda secara interaktif, Anda juga dapat menggunakan nmon
dalam mode batch untuk mengumpulkan dan menyimpan data kinerja untuk analisis. Untuk informasi lebih lanjut tentang nmon
untuk Linux, lihat halaman resmi proyek.
Artikel ini membahas alat pemantauan yang kuat ini. Mulailah dengan menginstalnya.
Instal nmon
nmon
tersedia di repositori default dari banyak distribusi Linux. Misalnya, gunakan DNF untuk menginstalnya di Fedora 35:
$ sudo dnf -y install nmon
Untuk Red Hat Enterprise Linux atau CentOS, nmon
tersedia di repositori Extra Packages for Enterprise Linux (EPEL).
Untuk menginstal nmon
, pertama-tama aktifkan EPEL:
$ sudo dnf -y install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo dnf repolist
Kemudian instal nmon
menggunakan dnf
:
$ sudo dnf -y install nmon
Sekarang Anda telah menginstal nmon
, gunakan untuk memantau sistem Anda.
Gunakan nmon secara interaktif
Dengan aplikasi yang terinstal, Anda dapat memantau sistem Anda secara interaktif dengan menjalankan nmon
. Anda disajikan dengan layar awal yang berisi informasi sistem dan sedikit menu bantuan, menampilkan tombol mana yang dapat Anda tekan untuk beralih metrik yang berbeda:
$ 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 │
│─────────────────────────────────────────────────────────────────│
Misalnya, menekan C mengaktifkan tampilan penggunaan 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> | │
│---------------------------+---------------------------------+│
│──────────────────────────────────────────────────────────────│
Menekan N mengaktifkan tampilan jaringan dan secara otomatis menumpuknya di bawah tampilan 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 ...│
│──────────────────────────────────────────────────────────────│
Terus tekan tombol lain untuk menumpuk metrik tambahan dalam tampilan yang sama. Misalnya, gunakan D untuk I/O Disk, M untuk Memori, dan T untuk proses Teratas.
Selain menumpuk monitor baru, Anda juga dapat menekan tombol titik atau titik (.) untuk hanya menampilkan CPU dan disk yang sibuk, serta + dan - untuk menambah atau mengurangi waktu refresh layar. Gunakan H untuk menampilkan bantuan.
Karena Anda dapat mengaktifkan dan menonaktifkan monitor dan metrik yang berbeda kapan saja, nmon
adalah alat yang sangat fleksibel yang membantu Anda memahami perilaku sistem Anda. Ini juga membantu memecahkan masalah dengan menampilkan metrik yang berbeda secara bersamaan, memberikan pandangan menyeluruh tentang sistem dan meningkatkan kemampuan Anda untuk memahami masalah.
Setelah selesai, tekan Q untuk keluar dan mengakhiri sesi pemantauan.
Kumpulkan data kinerja
Selain memberikan tampilan holistik dan interaktif dari sistem Anda, Anda juga dapat menjalankan nmon
dalam mode batch untuk mengumpulkan data kinerja jangka panjang dari sistem Anda untuk analisis posterior.
Fitur ini memungkinkan Anda untuk memahami bagaimana sistem Anda berperilaku selama periode yang lebih lama, selain metrik waktu nyata yang disediakan oleh mode interaktif. Ini adalah fitur canggih yang memungkinkan perencanaan kapasitas dan peluang untuk memecahkan masalah sporadis yang sulit ditangkap secara langsung.
Untuk menjalankan nmon
secara batch, gunakan flag -f
saat meluncurkan aplikasi. Itu harus menjadi parameter pertama yang disediakan. Secara default, nmon
mengumpulkan data setiap lima menit selama satu hari. Anda dapat mengubah nilai default ini dengan menentukan parameter -s
untuk interval pengumpulan dan -c
untuk jumlah snapshot.
Misalnya, untuk mengaktifkan nmon
dalam mode batch, mengumpulkan data setiap menit selama satu jam, termasuk menangkap proses teratas -t
, jalankan perintah ini:
$ nmon -f -s60 -c60 -t
Prompt terminal Anda segera kembali, saat aplikasi berjalan di latar belakang saat Anda menjalankan perintah ini. Anda dapat melihatnya berjalan dengan menggunakan ps
:
$ ps -ef | grep nmon
ricardo 1849 1 0 12:27 pts/0 00:00:00 nmon -f -s60 -c60 -t
Dalam mode batch, nmon
menyimpan data yang dikumpulkan menggunakan format comma-separated value (CSV) dengan ekstensi .nmon
di direktori saat ini:
$ ls -l
total 36
-rw-r--r--. 1 ricardo ricardo 36395 Feb 13 12:28 f35ks01_220213_1227.nmon
Karena ini adalah file CSV, Anda dapat memprosesnya menggunakan alat baris perintah manipulasi teks Linux lainnya, atau membukanya menggunakan perangkat lunak spreadsheet untuk analisis lebih lanjut.
$ 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
Selain metode ini, nmon
tim pengembangan menyediakan skrip untuk mengubah data ini menjadi bagan yang dapat Anda visualisasikan menggunakan browser web Anda. Saya akan melihat bagaimana melakukannya selanjutnya.
[ Bukanlah Linux jika tidak ada selusin cara untuk melakukan tugas apa pun. Untuk info tentang berbagai cara menginstal software, download panduan ini untuk menginstal aplikasi di Linux. ]
Buat diagram
CSV adalah format fleksibel yang memungkinkan Anda mengekspor, menganalisis, dan melihat data ini menggunakan berbagai aplikasi seperti perangkat lunak pengolah spreadsheet. nmon
pengembang membuat nmonchart
untuk membuatnya sedikit lebih mudah. Skrip shell ini mengubah data ini menjadi HTML menggunakan Google Charts JavaScript untuk memvisualisasikan dan berinteraksi dengan data dalam lingkungan grafis.
Untuk menggunakan nmoncart
, unduh dari nmon
halaman rumah:
$ curl -LO http://sourceforge.net/projects/nmon/files/nmonchart40.tar
Kemudian ekstrak isi paket menggunakan tar
:
$ mkdir nmonchart
$ tar xvf nmonchart40.tar -C nmonchart
nmonchart
menggunakan kulit Korn (ksh), jadi untuk membuat grafik, instal dulu ksh
di sistem Anda menggunakan dnf
:
$ sudo dnf install -y ksh
Selanjutnya, konversikan .nmon
file yang dibuat saat Anda menjalankan nmon
dalam mode batch dengan perintah ini:
$ ./nmonchart/nmonchart f35ks01_220213_1227.nmon
Script membuat file HTML dengan nama yang sama dengan .nmon
sumber mengajukan. Secara opsional, Anda dapat memberikan nama file tujuan sebagai parameter kedua ke nmonchart
. Ini contohnya:
$ 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
Bagan sistem Anda sekarang sudah siap. Langkah Anda selanjutnya adalah melihatnya.
[ Dapatkan lembar contekan skrip shell Bash. ]
Visualisasikan bagan performa
nmonchart
membuat satu file HTML untuk setiap .nmon
file sumber yang Anda berikan dengan pustaka JavaScript charting yang disematkan. Jika Anda memiliki file HTML di mesin lokal Anda, lihat langsung di browser web Anda.
Anda juga dapat menyajikan file-file ini menggunakan server web. Salah satu cara favorit saya untuk melakukan ini adalah dengan menggunakan Nginx dalam wadah Podman, seperti yang saya sarankan dalam 20 perintah Linux satu baris untuk ditambahkan ke kotak alat Anda.
Pertama, buat direktori dan pindahkan file HTML ke sana:
$ mkdir html
$ mv f35ks01_220213_1227.html html/
Kemudian gunakan Podman untuk menyajikan konten dari html
direktori menggunakan Nginx pada port 8080:
$ podman run --rm -v ./html:/usr/share/nginx/html:ro,Z -p 8080:80 -d nginx
Jika perlu, buka port 8080 di firewall server Anda untuk mengizinkan lalu lintas:
$ sudo firewall-cmd --add-port 8080/tcp
Kemudian arahkan browser Anda ke URL http://<YOUR_SERVER_IP_ADDR>:8080/f35ks01_220213_1227.html
untuk melihat grafik:
Klik salah satu tombol di bagian atas layar untuk melihat grafik yang sesuai. Grafik bersifat interaktif. Anda dapat memperbesar dan memperkecil untuk melihat data yang lebih terperinci atau mengarahkan mouse ke bagan untuk melihat data terperinci untuk waktu tertentu.
Menutup
nmon
adalah aplikasi pemantauan sistem yang fleksibel dan kuat yang membantu Anda lebih memahami sistem Anda dan memecahkan masalah jika terjadi masalah. Kemampuan gabungannya untuk memantau dan mengkonsolidasikan data real-time dari sumber daya sistem yang berbeda dengan pengumpulan dan analisis data kinerja jangka panjang menjadikannya alat yang fantastis untuk dimiliki di sabuk sysadmin Anda.