systemd-analyze - Temukan Statistik Kinerja Boot-up Sistem di Linux


Apakah Anda menggunakan sistem systemd dan manajer layanan, dan sistem Linux Anda membutuhkan waktu lebih lama untuk boot atau Anda hanya ingin melihat laporan kinerja boot-up sistem Anda? Jika ya, Anda telah berada di tempat yang tepat.

Pada artikel ini, kami akan menunjukkan kepada Anda cara menganalisis statistik kinerja boot-up sistem Linux menggunakan systemd-analyze, salah satu dari banyak utilitas di bawah systemd untuk manajemen sistem.

Baca Juga: Cara Mengontrol Layanan Systemd di Server Linux Jarak Jauh

Untuk mendapatkan gambaran umum waktu boot-up sistem, kita dapat menjalankan perintah systemd-analyze tanpa argumen apa pun sebagai berikut. Ini akan mencantumkan informasi tentang berapa lama waktu yang dibutuhkan setiap layanan untuk memulai, termasuk waktu yang dibutuhkan oleh kernel, initrd, dan ruang pengguna saat booting.

systemd-analyze

Startup finished in 884ms (kernel) + 3.861s (initrd) + 48.356s (userspace) = 53.102s

Jika Anda ingin melihat daftar semua unit yang berjalan, diurutkan berdasarkan waktu yang diperlukan untuk inisialisasi (waktu tertinggi di atas), sub-perintah menyalahkan digunakan untuk tujuan ini. Setelah menjalankan perintah berikut, gunakan [Enter] untuk melihat layanan lainnya dalam daftar dan q untuk keluar.

systemd-analyze blame 
         16.159s mariadb.service
         12.178s libvirtd.service
         10.298s tuned.service
          9.836s postfix.service
          8.704s lsws.service
          7.352s lscpd.service
          4.988s [email 
          4.779s NetworkManager-wait-online.service
          4.577s lvm2-monitor.service
          4.439s ModemManager.service
          4.413s polkit.service
          4.280s dev-sda1.device
          4.225s systemd-udev-settle.service
          3.957s firewalld.service
          3.227s rhel-dmesg.service
          3.221s abrt-ccpp.service
          3.142s rsyslog.service
          3.053s avahi-daemon.service
          3.042s pure-ftpd.service
          2.249s gssproxy.service
          2.212s NetworkManager.service
          1.889s proc-fs-nfsd.mount
          1.780s systemd-tmpfiles-setup-dev.service
          1.451s sshd.service
          1.267s rhel-readonly.service
          1.035s sysstat.service
          1.001s rpc-statd-notify.service
           910ms systemd-logind.service
           739ms kdump.service
           738ms network.service
...

Seperti yang Anda lihat dari output di atas bahwa setiap unit diurutkan berdasarkan waktu yang dibutuhkan, Anda cukup mengetahui layanan mana yang membutuhkan waktu lebih lama saat booting dan menganalisis masalahnya.

Selanjutnya, kita juga dapat melihat pohon rantai waktu kritis untuk target default atau daftar unit tertentu dengan sub-perintah rantai kritis seperti yang ditunjukkan.

systemd-analyze critical-chain  
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.

multi-user.target @48.342s
└─mariadb.service @31.560s +16.159s
  └─network.target @31.558s
    └─network.service @30.819s +738ms
      └─NetworkManager-wait-online.service @26.035s +4.779s
        └─NetworkManager.service @23.821s +2.212s
          └─network-pre.target @23.821s
            └─firewalld.service @19.863s +3.957s
              └─polkit.service @15.381s +4.413s
                └─basic.target @12.271s
                  └─sockets.target @12.271s
                    └─virtlockd.socket @12.270s
                      └─sysinit.target @12.251s
                        └─systemd-update-utmp.service @12.196s +54ms
                          └─auditd.service @11.705s +486ms
                            └─systemd-tmpfiles-setup.service @11.609s +93ms
                              └─rhel-import-state.service @11.397s +211ms
                                └─local-fs.target @11.363s
                                  └─run-user-0.mount @46.910s
                                    └─local-fs-pre.target @10.575s
                                      └─lvm2-monitor.service @5.996s +4.577s
                                        └─lvm2-lvmetad.service @7.376s
                                          └─lvm2-lvmetad.socket @5.987s
                                            └─-.slice
systemd-analyze critical-chain ntp.service networking.service

Terakhir, mari kita lihat satu lagi sub-perintah penting yang memungkinkan pembuatan perincian grafis (format svg) dari layanan sistem yang telah dimulai, dan jam berapa, menyoroti waktu inisialisasinya, sebagai berikut.

Pastikan mode tampilan grafis atau x-windows diaktifkan untuk melihat plot.

systemd-analyze plot > boot_analysis.svg
xviewer boot_analysis.svg  

Semua perintah di atas akan mencetak statistik kinerja boot-up untuk mesin lokal. Untuk melihat informasi dari host jarak jauh melalui ssh, gunakan flag -H dan tentukan direktif namapengguna@host, seperti yang ditunjukkan.

systemd-analyze time -H [email 
systemd-analyze blame -H [email 
systemd-analyze critical-chain -H [email 

systemd-analyze juga dapat digunakan untuk menemukan status lain dan menelusuri informasi dari sistem dan systemd (manajer layanan) dan banyak lagi. Untuk informasi lebih lanjut, lihat halaman manualnya.

man systemd-analyze 

Baca Juga: Cara Mengubah Runlevel (target) di SystemD

Itu saja untuk saat ini! Jika Anda memiliki pertanyaan atau pemikiran untuk disampaikan, gunakan formulir umpan balik di bawah untuk menghubungi kami.