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