GNU/Linux >> Belajar Linux >  >> Linux

Cara menganalisis kinerja sistem dasar menggunakan – vmstat, sar, iostat, dan mpstat

Dalam posting ini, sejumlah alat profil dasar yang disertakan di sebagian besar sistem Linux secara default akan dibahas. Alat yang diperkenalkan dalam posting ini, vmstat, sar, iostat, dan mpstat, relatif sederhana tetapi menyediakan data dasar yang dapat sangat berguna ketika menganalisis kinerja sistem. Untuk sebagian besar contoh, kami akan menggunakan mesin CentOS 8.

vmstat:Statistik memori virtual

Salah satu alat yang paling berguna saat memecahkan masalah kinerja terkait memori adalah vmstat. Perintah vmstat adalah bagian dari procps-ng package, yang menyertakan perintah analisis kinerja berguna lainnya seperti gratis dan teratas.

Perintah vmstat, jika tidak diberikan argumen, akan mencetak rata-rata dari berbagai statistik sistem sejak boot. Perintah vmstat menerima dua argumen. Yang pertama adalah penundaan , dan yang kedua adalah hitungan . Penundaan adalah nilai dalam detik antara keluaran. Hitungan adalah jumlah iterasi statistik yang akan dilaporkan. Jika tidak ada hitungan yang diberikan, vmstat akan terus melaporkan statistik.

Statistik memori dilaporkan dalam KiB secara default. Opsi —S memungkinkan untuk mengubah ini menjadi laporan dalam KB, MB, atau MiB dengan -S k , -S m , dan -S M , masing-masing.

Baris pertama keluaran vmstat selalu rata-rata sejak boot, jadi saat mengumpulkan metrik, hapus baris pertama dan gunakan baris berikutnya. Dua baris pertama dari output adalah informasi header, dan yang ketiga adalah rata-rata uptime. Contoh berikut menunjukkan keluaran vmstat mulai dari baris keempat keluaran:

# vmstat 10 | tail -n +4
 1  0      0 479748   1044 570784    0    0     0     5   90  132  0  0 100  0  0
 0  0      0 475952   1044 570912    0    0     0     0   81  130  0  0 100  0  0
 0  0      0 479456   1044 570856    0    0     0    52   87  137  0  0 100  0  0
...

Ikhtisar Kolom vmstat

contoh vmstat

1. Perintah vmstat, jika tidak diberikan argumen, akan mencetak rata-rata dari berbagai statistik sistem sejak boot:

# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 424444   1044 615940    0    0    89    14   58   78  1  0 98  1  0

2. Berikut adalah contoh di mana vmstat akan menampilkan statistik setiap 10 detik hingga terputus:

# vmstat 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 426440   1044 615872    0    0    88    14   58   78  1  0 98  1  0
 0  0      0 426072   1044 615872    0    0     0     1   92  137  0  0 100  0  0
 0  0      0 426072   1044 615872    0    0     0     5   74  116  0  0 100  0  0
 ...

3. Jika Anda ingin vmstat keluar setelah mencetak empat laporan, tambahkan argumen hitungan:

# vmstat 10 4
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 425236   1044 616252    0    0    86    13   58   78  1  0 98  1  0
 0  0      0 424936   1044 616252    0    0     0     1   85  129  0  0 100  0  0
 0  0      0 424876   1044 616252    0    0     0    15   70  111  0  0 100  0  0
 0  0      0 423360   1044 616252    0    0     0     1   89  130  0  0 100  0  0

sar:reporter aktivitas sistem

Perintah sar adalah alat analisis multiguna yang merupakan bagian dari paket sysstat. Ia bekerja dalam dua mode. Itu dapat membaca data yang dikumpulkan oleh tugas cron setiap 10 menit, atau dapat digunakan untuk mengumpulkan data seketika tentang status sistem.

Catatan :Tugas cron diinstal sebagai /etc/cron.d/sysstat , yang menjalankan perintah /usr/lib64/sa/sa1 dan /usr/lib64/sa/sa2 yang mengumpulkan data menggunakan /usr/lib64/sa/sadc dan sar. Data ini disimpan di /var/log/sa/sadd, di mana dd adalah hari dua digit dalam sebulan.Catatan :Seperti perintah vmstat, sar dapat dieksekusi dengan argumen penundaan dan penghitungan untuk melaporkan statistik untuk sejumlah iterasi tertentu dan dengan jumlah penundaan tertentu di antara setiap iterasi.

Pastikan sar diinstal sebelum Anda mulai. Jika belum terinstal, instal menggunakan yum:

# yum install sysstat

Setelah terinstal, konfigurasikan sar untuk mengumpulkan data pada interval 5 menit:

# vim /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/5 * * * * root /usr/lib64/sa/sa1 1 1

Untuk hasil terbaik saat menggunakan sar, pastikan menyetel lokal dengan LANG variabel lingkungan yang menyediakan dukungan waktu 24 jam. Misalnya, jika mengurutkan data sar menurut kolom pertama (kolom waktu), en_US.UTF-8 lokal akan menempatkan 13:00:00 sebelum 02:00:00. Ini kemungkinan akan membelokkan poin data dan membuat grafik menjadi tidak berharga. Lokal c adalah salah satu yang memenuhi persyaratan penyortiran ini. Saat menangani data sar, ganti lokal seperti ini:

# LANG=C sar -q
Linux 4.18.0-193.28.1.el8_2.x86_64 (2713138b141c.mylabserver.com) 	02/09/21 	_x86_64_	(2 CPU)

00:00:01       runq-sz   plist-sz    ldavg-l    ldavg-S    1davg-15     blocked
00:10:01             0        317       0.20       0.17        0.18           0
00:20:01             0        317       0.00       0.07        0.13           0
... Output Truncated ...

Bahkan, sebuah alias bisa saja dibuat untuk sar. Tambahkan baris berikut ke /etc/bashrc atau ~/.bashrc :

alias sar='LANG=C sar'

sar dapat digunakan untuk membaca salah satu file log (atau file data sar lainnya secara umum) dengan menggunakan opsi -f.

# sar -q -f /var/log/sa/sa09
Linux 4.18.0-193.28.1.el8_2.x86_64 (2713138b141c.mylabserver.com) 	02/09/2021 	_x86_64_	(2 CPU)

00:00:01       runq-sz   plist-sz    ldavg-l    ldavg-S    1davg-15     blocked
00:10:01             0        317       0.20       0.17        0.18           0
00:20:01             0        317       0.00       0.07        0.13           0
... Output Truncated ...

Beberapa konfigurasi dapat dilakukan di /etc/sysconfig/sysstat mengajukan. Misalnya, ubah HISTORY variabel untuk mengatur jumlah hari arsip disimpan untuk sar.

contoh sar

1. Buat alias seluruh sistem untuk sar yang memaksa sar untuk melaporkan menggunakan waktu 24 jam. Sumber ini ke dalam shell saat ini.

# echo "alias sar='LANG=c sar'" >> /etc/bashrc
# source /etc/bashrc

2. Simpan arsip selama 60 hari, bukan 28. Ubah variabel HISTORY di /etc/sysconfig/sysstat.

# vim /etc/sysconfig/sysstat
HISTORY=60

3. Laporkan I/O dan statistik kecepatan transfer:

# sar -b
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM       tps      rtps      wtps   bread/s   bwrtn/s
12:10:01 AM     38.16     31.03      7.14   1655.33    390.20
12:20:01 AM     12.11      5.81      6.30    280.99    239.08
12:30:01 AM      8.40      2.34      6.06    105.99    229.95
12:40:01 AM      7.38      1.62      5.76     23.48    211.41
12:50:01 AM      8.69      2.64      6.04    125.33    230.58
01:00:01 AM      8.09      2.26      5.83     77.72    227.70
01:10:02 AM     12.25      6.10      6.15    215.14    235.73
...
Average:        12.81      6.41      6.40    343.31    255.49

4. Laporkan penggunaan CPU0:

# sar -P 0
Linux 5.4.10-x86_64-linode132 (web.thegeekdiary.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM       0     11.69      0.00      2.96      0.28      0.06     85.01
12:20:01 AM       0      9.87      0.00      2.53      0.12      0.04     87.44
12:30:01 AM       0      9.96      0.00      2.48      0.09      0.04     87.43
12:40:01 AM       0      9.59      0.00      2.43      0.06      0.04     87.88
12:50:01 AM       0      9.80      0.00      2.46      0.09      0.05     87.59
...
Average:          0     10.00      0.02      2.60      0.14      0.15     87.08

5. Laporkan statistik perangkat jaringan dari file log saat ini.

# sar -n DEV
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12:10:01 AM    dummy0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM     tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM   ip_vti0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM   ip6gre0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM     teql0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
...
Average:       dummy0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      ip_vti0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      ip6gre0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        teql0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
...

6. Konfigurasikan tugas cron tambahan untuk mengumpulkan data penggunaan daya selain data disk. Ubah berikut ini ke file /etc/sysconfig/sysstat:

SADC_OPTIONS="-S POWER"

iostat dan mpstat

Seperti sar, iostat dan mpstat juga merupakan bagian dari paket sysstat. Baik iostat dan mpstat mendukung argumen penundaan dan penghitungan seperti perintah vmstat. iostat melaporkan statistik CPU dan I/O untuk perangkat. partisi, dan sistem file jaringan (NFS).

Perintah mpstat melaporkan statistik terkait CPU. Seperti sar, mungkin perlu untuk mengonfigurasi LANG selama 24 jam.

contoh iostat dan mpstat

1. Tampilkan keluaran yang diperluas untuk /dev/sda.

# iostat -x sda
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.12    0.08    2.85    0.09    0.24   88.63

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               1.76     7.13    3.55    4.17   122.57    93.88    56.07     0.00    0.83    0.71    0.93   0.88   0.68

2. Tampilkan statistik CPU untuk CPU0:

# LANG=C mpstat -P 0
Linux 5.4.10-x86_64-linode132 (mywebserver.com) 	02/09/21 	_x86_64_	(1 CPU)

06:32:13     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
06:32:13       0    8.12    0.08    2.37    0.09    0.22    0.25    0.24    0.00    0.00   88.63


Linux
  1. Bagaimana Menganalisis Dan Membandingkan Gambar Kontainer Menggunakan Container-diff

  2. Pembagian Dasar Menggunakan Variabel Dan Integer?

  3. 24 Contoh iostat, vmstat dan mpstat untuk Pemantauan Kinerja Linux

  1. Cara memeriksa Versi OS dan Linux

  2. Cara Menghitung Penggunaan Memori di Linux menggunakan sar, ps, dan gratis

  3. Menggunakan iostat untuk memantau kinerja sistem di Linux (Contoh disertakan)

  1. Bagaimana saya menyeimbangkan fitur dan kinerja di terminal Linux saya

  2. Cara Mengumpulkan Metrik Sistem dan Aplikasi menggunakan Metricbeat

  3. Cara Mencadangkan Dan Mengembalikan Pengaturan Aplikasi Menggunakan Mackup Pada Sistem Linux yang Baru Diinstal