GNU/Linux >> Belajar Linux >  >> Linux

Perintah Sar di Linux dengan Contoh


Perintah sar digunakan untuk menghasilkan laporan statistik pada berbagai sumber daya termasuk penggunaan CPU, penggunaan memori, konsumsi perangkat I/O, monitor jaringan, swap, dan rata-rata beban.

SAR adalah singkatan dari System Activity Reporter, alat yang sangat berguna bagi administrator Linux mana pun untuk memantau kinerja sistem dan menyelidiki kemacetan. Alat ini disediakan oleh paket sysstat.

Dalam tutorial ini, kita akan membahas cara menginstal paket sysstat dan menggunakan perintah sar di Linux.

Instal paket sysstat

Paket sysstat berisi banyak utilitas yang merupakan kumpulan alat pemantauan kinerja untuk sistem Linux. Sar adalah alat yang termasuk dalam paket sysstat.

Menginstal paket sysstat di RHEL dan CentOS

$ sudo yum install sysstat 

Setelah sysstat berhasil diinstal, verifikasi instalasi dengan perintah:

$ yang sar/usr/bin/sar 

Secara default, sysstat akan menyimpan statistik server dalam file '/var/log/sa/saDD' (DD adalah hari dalam sebulan, misalnya:/var/log/sa/sa08) dan akan menyimpan data selama 28 hari. Jika Anda ingin menyimpan data lebih dari itu, Anda perlu memodifikasi file konfigurasi sysstat '/etc/sysconfig/sysstat'.

$ sudo cat /etc/sysconfig/sysstatHISTORY=28 

Ubah nilai HISTORY dengan jumlah hari Anda ingin menyimpan log.

Menginstal paket sysstat di Ubuntu dan Debian

$ sudo apt install sysstat 

Memverifikasi instalasi dengan perintah:

$ yang sar/usr/bin/sar 

Di Ubuntu, kita perlu mengaktifkannya saat CentOS tidak diperlukan.

Menggunakan editor favorit Anda (vim, nano atau gedit) untuk mengedit file berikut:

$ sudo nano /etc/default/sysstat 

Dan setel ENABLED untuk benar :

ENABLED="true" 

Mulai ulang layanan

$ sudo service sysstat restart 

Di Ubuntu, file konfigurasi adalah '/etc/sysstat/sysstat' dan data akan disimpan dalam 7 hari secara default.

$ cat /etc/sysstat/sysstatHISTORY=7 

Dari Fedora 21, sysstat hadir secara default dan yang perlu Anda lakukan hanyalah menjalankan perintah di bawah ini:

$ sudo systemctl aktifkan sysstat.service$ sudo systemctl start sysstat.service 

Ada tugas cron untuk sysstat yang berjalan setiap 10 menit untuk mengumpulkan data dan akan menyimpannya di file /var/log/sa/saDD yang sesuai. Jika Anda ingin mengubah interval run cron ini, Anda dapat memodifikasinya di '/etc/cron.d/sysstat'.

Untuk systemd, file unit timer memanggil sysstat-collect.service (/usr/lib/systemd/system/sysstat-collect.service) setiap 10 menit untuk mengumpulkan statistik.

$ cat /etc/cron.d/sysstat# Laporan aktivitas setiap 10 menit setiap hari5-55/10 * * * * perintah root -v debian-sa1> /dev/null &&debian-sa1 1 1# Jalankan tambahan pada 23:59 untuk memutar file statistik59 23 * * * perintah root -v debian-sa1> /dev/null &&debian-sa1 60 2 

Penggunaan perintah Sar

Sintaks dasar untuk penggunaan perintah sar adalah sebagai berikut:

sar [opsi] [-o nama file] [-f nama file] [interval] [hitung] 

Dimana:

interval :periode dalam detik.

hitungan: berapa kali untuk membuat statistik keluaran.

1. Temukan aktivitas CPU

Secara default (tanpa opsi lain yang diberikan) perintah sar akan melaporkan aktivitas CPU server. Juga, opsi -u dapat digunakan untuk mendapatkan laporan penggunaan CPU.

Jika Anda ingin mendapatkan laporan aktivitas CPU setiap 2 detik selama 3 kali, Anda dapat menggunakan perintah sar berikut:

$ sar -u 2 3Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 09/06/2020 _x86_64_ (2 CPU)22:26:54 CPU %user %bagus %system %iowait %steal %idle22:26:56 semua 4,03 0,00 0,50 0,00 0,00 95,4722:26:58 semua 8,08 0,00 0,51 0,00 0,00 91 ,4122:27:00 semua 12,50 0,00 1,00 0,00 0,00 86,50Rata-rata:semua 8,21 0,00 0,67 0,00 0,00 91,11 

Dimana:

%pengguna menunjukkan persentase penggunaan CPU yang terjadi saat mengeksekusi di tingkat pengguna (ruang pengguna)

%sistem menunjukkan persentase penggunaan CPU yang terjadi saat mengeksekusi di tingkat sistem (ruang kernel)

%menganggur adalah persentase waktu CPU atau CPU dalam keadaan idle dan sistem tidak memiliki permintaan I/O disk yang luar biasa.

Jika Anda ingin mendapatkan output dalam file dalam bentuk biner, Anda perlu menambahkan -o nama file dengan perintah sar. Misalnya:

$ sar -u 2 3 -o log-file 

Anda juga bisa mendapatkan laporan aktivitas CPU pada hari tertentu, misalnya:09 Juni 2020. Anda dapat menemukannya sebagai:

$ sudo sar -u -f /var/log/sa/sa09 

2. Temukan penggunaan CPU untuk setiap prosesor

-u opsi menyediakan penggunaan CPU pada semua prosesor. Jika Anda ingin menemukan aktivitas CPU pada semua prosesor secara terpisah, Anda perlu menggunakan -P pilihan.

$ sar -P ALL 1 1Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)05:38:18        CPU     %user     %nice   % sistem   %iowait    %steal     %idle05:38:19        semua      3,03      0,00      0,00      0,00      0,00     96,9705:38:19    0,     0       0 95.0505:38:19 1 3,00 0,00 0,00 0,00 0,00 97,00.00 Ruang:CPU %Pengguna %Bagus %Sistem %Iowait %mencuri %idleaverage:Semua 3.03 0,00 0, 00 0,00 0,00 96,97 RUMAH:0 3,96 0,00 0,99 0,00 0,00 95,05 Ruang:1 3,00 0,00 0,00 0,00 0,00 97,00  

3. Temukan penggunaan Memori

Anda dapat menemukan penggunaan memori (memori bekas dan memori bebas server) dari waktu ke waktu menggunakan -r beralih.

$ sar -r 1 3Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 06/10/2020 _x86_64_ (2 CPU)05:41:04    kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit KOMIM KBACTIVE KBINACT KBDIRTY05:41:05 855300 3025220 77.96 0 1495276 2426864 302222222222222222222228:06822222222222222 0   1495276   2426864     30,55   1265012   1158172       100Rata-rata:      855044   3025476     77,97         0   1495276   2426864     100,55   1265072    11581  11581 

Dimana:

kbmemfree menunjukkan jumlah memori bebas yang tersedia dalam kilobyte.

kbmempakai menunjukkan jumlah memori yang digunakan dalam kilobyte. Ini tidak memperhitungkan memori yang digunakan oleh kernel itu sendiri.

Jika Anda ingin mengumpulkan penggunaan memori untuk hari tertentu, katakan:05 September, Anda perlu menjalankannya seperti perintah di bawah ini:

$ sar -r -f /var/log/sa/sa05 

4. Temukan aktivitas Bertukar

Anda dapat memeriksa penggunaan swap mesin menggunakan -W pilihan.

$ sar -W 1 3Linux 2.6.18-274.18.1.el5 (server saya) 09/06/201203:31:12 PM pswpin/s pswpout/s03:31:13 PM 16.16 0,0003:31:14 PM 16.00 0.0003:31:15 15.84 0.00Rata-rata:16.00 0.00 

Dimana:

pswpin/s menunjukkan jumlah total halaman swap yang dibawa sistem per detik.

pswpout/s menunjukkan jumlah total halaman swap yang dibawa sistem per detik.

Jika Anda ingin mengumpulkan penggunaan swap untuk hari tertentu, katakanlah 05 September, Anda harus menjalankannya sebagai berikut perintah sar:

$ sar -W -f /var/log/sa/sa05 

5. Temukan rata-rata beban dari waktu ke waktu

Anda dapat menemukan rata-rata beban lembur menggunakan -q pilihan.

$ sar -q 1 3Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)06:16:13      runq-sz  plist-sz   ldavg -1 LDAVG-5 LDAVG-15 Bloked06:16:14 0 329 0,00 0,04 0,09 006:16:15 0 329 0,00 0,04 0,09 006:16:16 0 329 0,00 0,04      0,09         0Rata-rata:            0       329      0,00      0,04      0,09         0 

Dimana:

runq-sz :Ini menunjukkan panjang antrian run (jumlah tugas yang menunggu waktu run).

plist-sz :Ini menunjukkan jumlah tugas dalam daftar tugas.

ldavg-1/5/15 :Rata-rata pemuatan sistem untuk menit terakhir/ 5 menit terakhir/ 15 menit terakhir.

Jika Anda ingin mengumpulkan rata-rata beban untuk hari tertentu, misalnya 05 September, Anda perlu menjalankannya dengan mengikuti perintah sar:

$ sar -q -f /var/log/sa/sa05 

6. Laporan sistem file yang dipasang

Anda bisa mendapatkan statistik untuk sistem file saat ini menggunakan -F pilihan

$ sar -F 2 3Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 06/10/2020 _x86_64_ (2 CPU)06:30:18     MBfsfree  MBfsused   %fsused  %ufsused     Ifree s     %Iused FILESYSTEM06:30:20        30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root06:30:20            21, 47     21 52    :30:20 mbfsfree mbfsused %fsused %ufsused ifree iused %iused FileSystem06:30:22 30410 5532 15,39 15,39 18245113 166407 0,90/dev/mapper/centos-root06:30:22 796 218 218 218 2182 2122 21 1 root06:30:24          796       218     21,52     21,52    523947       341      0,07 /dev/sda1Ringkasan:    MBfsfree  MBf sused% fsused% ufsused Ifree Sayabiasanya% Sayabiasanya FILESYSTEMSummary 30410 5532 15,39 15,39 18.245.113 166.407 0,90 / dev / mapper / CentOS-rootSummary 796 218 21,52 21,52 523947 341 0,07 / dev / sda1  

Jika Anda ingin mengumpulkan sistem file yang dipasang untuk hari tertentu, katakanlah 10 Juni.

$ sar -F -f /var/log/sa/sa10 

7. Laporkan detail inode, tabel kernel, dan tabel file

Anda bisa mendapatkan detail inode, proses, utas kernel, dan tabel file yang digunakan oleh sistem dengan menggunakan perintah sar dengan -v pilihan.

$ sar -v 2 3Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 06/10/2020 _x86_64_ (2 CPU)06:57:23    dentunusd   file-nr  inode-nr Pty-NR06:57:25 160833 2400 132081 306:57:27 160833 2400 132081 306:57:29 160833 2400 132081 3VERURE:160833 2400 132081 3  

Dimana:

dentunusd :jumlah entri cache yang tidak digunakan dalam cache direktori

file-nr: jumlah pegangan file yang sedang digunakan

inode-nr: penangan inode

pty-nr :terminal semu

8. Periksa kemacetan CPU

Anda dapat menggunakan perintah sar untuk mengetahui nomor interupsi mana yang mungkin menyebabkan kemacetan CPU.

Pada contoh di bawah ini #9 adalah yang tertinggi tidak termasuk interupsi sistem #0 .

$ sar -I XALL 2 1002:07:10 AM INTR intr/s02:07:12 AM 0 992,5702:07:12 AM 1 0,0002:07:12 AM 2 0,0002:07:12 AM 3 0,0002 :07:12 AM 4 0,0002:07:12 AM 5 0,0002:07:12 AM 6 0,0002:07:12 AM 7 0,0002:07:12 AM 8 0,0002:07:12 AM 9 350,50 

Detail dalam file '/ proc/interrupts' juga akan membantu Anda. Interrupt menghentikan pemrosesan sesaat sehingga I/O atau operasi lain dapat terjadi. Pemrosesan dilanjutkan setelah operasi tertentu berlangsung. Jadi sangat penting bahwa setiap perangkat yang terpasang di mesin harus dilengkapi dengan pengaturan interupsi yang tidak bertentangan dengan pengaturan yang digunakan oleh perangkat keras dan periferal lainnya.

$ sudo cat /proc /interupsi cpu0 cpu1 0:48 0 timer edge io-apic 1:54 0 io-apic-edge i8042 8:1 0 io-apic-edge rtc0 9:0 0 io -Apic-fasteoi ACPI 12:35 116 IO-APIC-EDGE I8042 14:0 0 IO-OPIC-EDGE ATA_PIIX 15:0 0 IO-OPIC-EDGE ATA_PIIX 16:118 2513 IO-APIC-FASTEOI VMWGFX 24:0 0 PCI -MSI-edge pcie pme, pciehp 25:0 0 pci-msi-edge pcie pme, pciehp 26:0 0 pci-msi-edge pcie pme, pciehp 27:0 0 pci-msi-edge pme, pciehpnmi:0 0 Interupsi non-maskableLOC:  35392807   14792833   Timer lokal interupsiSPU:          0          0   Interupsi palsuPMI:        0          0   Interupsi pemantauan kinerjaIWI:    267765224 pecah...

Kolom pertama mengacu pada nomor IRQ. Kolom berikutnya melaporkan jenis interupsi dan kolom terakhir berisi nama perangkat yang terletak di IRQ.

9. Laporkan statistik jaringan

Untuk mendapatkan laporan statistik jaringan, gunakan perintah sar dengan -n pilihan. Misalnya:

$ sar -n DEVLinux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 06/10/2020 _x86_64_ (2 CPU)19:20:23 IFACE rxpck/s txpck/s rxkB /s txkB/s rxcmp/s txcmp/s rxmcst/s19:20:24 ens192 11.00 4,00 1,80 2,75 0,00 0,00 0,0019:20:24 lo 79,00 79, 00 43,62 43,62 0,00 0,00 0,00Rata-rata:IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/sRata-rata:ens192 11.00 4,00 1,80 2,75 0,00 0,00 0,00Rata-rata:lo 79,00 79,00 43,62 43,62 0,00 0,00 0,00 

Dimana:

DEV :statistik dari perangkat jaringan dilaporkan

IFACE :nama antarmuka (Dalam contoh di atas:ens192)

rxpck/s / txpck/s :jumlah total paket yang diterima / dikirim per detik

Ada beberapa opsi selain DEV, seperti:

NFS :tampilkan aktivitas klien NFS

SOCK :menunjukkan soket yang digunakan

TCP :menunjukkan lalu lintas jaringan TCP v4

UDP :menunjukkan lalu lintas jaringan UDP v4

Jika Anda ingin mengumpulkan statistik jaringan untuk hari tertentu, misalnya 09 Juni, Anda harus menjalankannya sebagai berikut:

$ sar -n DEV -f /var/log/sa/sa09 

Grafik Sar

Bagian di atas menjelaskan cara menggunakan sar dari terminal. kSar adalah aplikasi GUI berbasis java yang memvisualisasikan data sar Anda.

Memasang ksar:

$ sudo apt install openjdk-11-jdk 
$ sudo yum install epel-release$ sudo yum install java-openjdk 

Unduh ksar dan buka paketnya:

$ wget https://sourceforge.net/projects/ksar/files/latest/download$ mv unduh kSar.zip$ unzip kSar.zip 

Sekarang cd ke dir

$ cd kSar-* 

Sekarang buat file run.sh dapat dieksekusi dan jalankan sebagai root.

$ chmod +x run.sh$ sudo su./run.sh 

Sekarang kita dapat menguji dengan menjalankan perintah lokal. Kami pergi ke Data> Jalankan Perintah Lokal dan di sana kita dapat menggunakan perintah default.

Selanjutnya, kita dapat melihat grafik dengan mengklik panel kiri dan melihat di sebelah kanan grafik yang ditampilkan:

Dimungkinkan juga untuk memuat grafik dari file. Pertama, kita perlu menjalankan sar:

LC_ALL=C sar -A> /tmp/sar.data.txt 

Dan kemudian di menu, kami memilih Data> Load dari file teks dan temukan file di /tmp atau di mana pun kami menyimpannya.

Kesimpulan

Dalam tutorial ini, kita mempelajari bagaimana perintah sar dapat digunakan untuk membantu Anda memperhatikan penggunaan sumber daya sistem dan meningkatkan kinerja saat bekerja dengan sistem operasi Anda.

Dari contoh sar, jelas bahwa ini adalah alat yang hebat untuk mengumpulkan, melaporkan, atau menyimpan informasi aktivitas sistem.

Terima kasih telah membaca dan silakan tinggalkan saran Anda di bagian komentar di bawah.

Bacaan Terkait:10 Perintah iostat Linux untuk Melaporkan Statistik CPU dan I/O 

Linux
  1. Perintah Tee Linux dengan Contoh

  2. Perintah kepala Linux dengan Contoh

  3. Perintah JQ di Linux dengan Contoh

  1. Perintah wc Linux dengan Contoh

  2. Perintah sortir Linux dengan Contoh

  3. Perintah Echo di Linux (Dengan Contoh)

  1. Perintah man di Linux dengan Contoh

  2. Perintah AWK di Linux dengan Contoh

  3. Perintah Curl di Linux dengan Contoh