systemd-analyze - Linux'ta Sistem Açılış Performansı İstatistiklerini Bulun


Systemd sistemi ve hizmet yöneticisini kullanıyorsunuz ve Linux sisteminizin başlatılması daha uzun sürüyor mu yoksa sistem başlatma performansınızın raporlarını mı görüntülemek istiyorsunuz? Cevabınız evet ise, doğru yere geldiniz.

Bu makalede, sistem yönetimi için systemd altında yer alan çok sayıda yardımcı programdan biri olan systemd-analyze'yi kullanarak Linux sistem açılış performans istatistiklerini nasıl analiz edeceğinizi göstereceğiz.

Ayrıca Okuyun: Uzak Linux Sunucusunda Systemd Hizmetleri Nasıl Kontrol Edilir?

Sistemin açılış süresine ilişkin bir genel bakış elde etmek için systemd-analyze komutunu herhangi bir argüman olmadan aşağıdaki gibi çalıştırabiliriz. Önyükleme sırasında çekirdek, initrd ve kullanıcı alanı tarafından harcanan süreyi de içeren, her hizmetin başlatılmasının ne kadar zaman aldığına ilişkin bilgileri listeleyecektir.

systemd-analyze

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

Çalışan tüm birimlerin, başlatılması için geçen süreye göre sıralanmış bir listesini görüntülemek istiyorsanız (en yüksek süre en üstte), bu amaç için suçlama alt komutu kullanılır. Aşağıdaki komutu çalıştırdıktan sonra, listedeki daha fazla hizmeti görüntülemek için [Enter] tuşunu, çıkmak için de q tuşunu kullanın.

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
...

Yukarıdaki çıktıdan da görebileceğiniz gibi, her birim harcanan süreye göre sıralanmıştır, önyükleme sırasında hangi hizmetin daha uzun sürdüğünü öğrenebilir ve sorunu analiz edebilirsiniz.

Daha sonra, varsayılan hedef için zaman açısından kritik zincirin bir ağacını veya gösterildiği gibi kritik zincir alt komutuyla belirtilen birimlerin bir listesini de görüntüleyebiliriz.

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

Son olarak, başlatılan sistem servislerinin ne zaman ve ne zaman başlatıldığının grafiksel (svg formatında) detaylandırılmasını sağlayan, başlatma zamanlarını vurgulayan önemli bir alt komuta daha aşağıdaki gibi bakalım.

Grafiği görüntülemek için grafiksel görüntüleme modunun veya x-windows'un etkinleştirildiğinden emin olun.

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

Yukarıdaki komutların tümü, yerel makinenin önyükleme performansı istatistiklerini yazdıracaktır. Uzak bir ana bilgisayardan gelen bilgileri ssh üzerinden görüntülemek için -H işaretini kullanın ve gösterildiği gibi username@host yönergesini belirtin.

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

systemd-analyze ayrıca sistemden ve systemd'den (hizmet yöneticisi) ve daha fazlasından diğer durum ve izleme bilgilerini bulmak için de kullanılabilir. Daha fazla bilgi için man sayfasına bakın.

man systemd-analyze 

Ayrıca Okuyun: SystemD'de Çalışma Seviyeleri (hedefler) Nasıl Değiştirilir?

Şimdilik bu kadar! Herhangi bir sorunuz veya paylaşmayı düşündüğünüz bir şey varsa bize ulaşmak için aşağıdaki geri bildirim formunu kullanın.