systemd-analysis - ຄົ້ນຫາ System Boot-up Performance Statistics ໃນ Linux


ທ່ານ ກຳ ລັງໃຊ້ລະບົບ systemd ແລະຜູ້ຈັດການບໍລິການແລະລະບົບ Linux ຂອງທ່ານໃຊ້ເວລາດົນກວ່າເກົ່າໃນການບູດຫລືທ່ານຕ້ອງການເບິ່ງລາຍງານຂອງລະບົບປະຕິບັດການ boot-up ຂອງທ່ານບໍ? ຖ້າແມ່ນ, ທ່ານໄດ້ລົງຈອດຢູ່ບ່ອນທີ່ຖືກຕ້ອງແລ້ວ.

ໃນບົດຂຽນນີ້, ພວກເຮົາຈະສະແດງວິທີການວິເຄາະສະຖິຕິການເຮັດວຽກຂອງລະບົບ Linux ໂດຍໃຊ້ລະບົບການວິເຄາະ, ເຊິ່ງເປັນ ໜຶ່ງ ໃນບັນດາປະໂຫຍດຂອງລະບົບ ສຳ ລັບການຈັດການລະບົບ.

ເພື່ອໃຫ້ໄດ້ສະພາບລວມຂອງເວລາລະບົບເລີ່ມຕົ້ນ, ພວກເຮົາສາມາດ ດຳ ເນີນການ ຄຳ ສັ່ງ systemd-analysis ໂດຍບໍ່ມີການໂຕ້ຖຽງກັນດັ່ງຕໍ່ໄປນີ້. ມັນຈະບອກຂໍ້ມູນກ່ຽວກັບເວລາທີ່ແຕ່ລະບໍລິການໄດ້ເລີ່ມຕົ້ນ, ເຊິ່ງລວມມີເວລາທີ່ໃຊ້ໂດຍ kernel, initrd ແລະ userpace ໃນຂະນະທີ່ boot.

# systemd-analyze

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

ຖ້າທ່ານຕ້ອງການເບິ່ງລາຍຊື່ຂອງ ໜ່ວຍ ແລ່ນທັງ ໝົດ, ຈັດຮຽງຕາມເວລາທີ່ພວກເຂົາເລີ່ມຕົ້ນ (ເວລາສູງສຸດຢູ່ເທິງ), ຄຳ ສັ່ງ ຕຳ ນິຕິຕຽນແມ່ນໃຊ້ເພື່ອຈຸດປະສົງນີ້. ຫຼັງຈາກເຮັດ ຄຳ ສັ່ງທີ່ເຮັດຕາມ, ໃຊ້ [Enter] ເພື່ອເບິ່ງການບໍລິການເພີ່ມເຕີມໃນລາຍຊື່ແລະ q ເພື່ອລາອອກ.

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

ດັ່ງທີ່ທ່ານສາມາດເຫັນໄດ້ຈາກຜົນໄດ້ຮັບຂ້າງເທິງວ່າແຕ່ລະ ໜ່ວຍ ໄດ້ຖືກຈັດຮຽງໂດຍອີງຕາມເວລາ, ທ່ານພຽງແຕ່ສາມາດຊອກຫາວ່າບໍລິການໃດໃຊ້ເວລາດົນກວ່າໃນຂະນະທີ່ບູດແລະວິເຄາະບັນຫາ.

ຕໍ່ໄປ, ພວກເຮົາຍັງສາມາດເບິ່ງຕົ້ນໄມ້ຂອງຕ່ອງໂສ້ທີ່ ສຳ ຄັນຕໍ່ເວລາ ສຳ ລັບເປົ້າ ໝາຍ ທີ່ ກຳ ນົດໄວ້ຫຼືບັນຊີລາຍຊື່ຂອງ ໜ່ວຍ ງານທີ່ລະບຸໄວ້ພ້ອມດ້ວຍ ຄຳ ສັ່ງຍ່ອຍ ສຳ ຄັນດັ່ງທີ່ສະແດງ.

# 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

ສຸດທ້າຍ, ໃຫ້ເບິ່ງ ຄຳ ສັ່ງຍ່ອຍທີ່ ສຳ ຄັນອີກອັນ ໜຶ່ງ ທີ່ອະນຸຍາດໃຫ້ຜະລິດຮູບພາບ (ຮູບແບບ svg) ທີ່ມີລາຍລະອຽດກ່ຽວກັບການບໍລິການລະບົບທີ່ໄດ້ເລີ່ມຕົ້ນ, ແລະໃນເວລາໃດ, ເນັ້ນໄລຍະເວລາເລີ່ມຕົ້ນຂອງພວກເຂົາ, ດັ່ງຕໍ່ໄປນີ້.

ໃຫ້ແນ່ໃຈວ່າຮູບແບບການສະແດງກາຟິກຫລື x-windows ຖືກເປີດໃຊ້ເພື່ອເບິ່ງແຜນດິນຕອນ.

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

ຄຳ ສັ່ງທັງ ໝົດ ທີ່ກ່າວມາຂ້າງເທິງຈະພິມສະຖິຕິການປະຕິບັດງານ ສຳ ລັບເຄື່ອງຈັກໃນທ້ອງຖິ່ນ. ເພື່ອເບິ່ງຂໍ້ມູນຈາກໂຮດຫ່າງໄກສອກຫຼີກໃນໄລຍະ ssh, ໃຫ້ໃຊ້ -H ທຸງແລະລະບຸ ຄຳ ສັ່ງທີ່ວ່າ [email , ດັ່ງທີ່ສະແດງ.

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

systemd-analysis ຍັງສາມາດໃຊ້ເພື່ອຄົ້ນຫາຂໍ້ມູນຂອງລັດແລະຂໍ້ມູນອື່ນໆຈາກລະບົບແລະ systemd (ຜູ້ຈັດການບໍລິການ) ແລະອື່ນໆ. ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງ ໜ້າ ຜູ້ຊາຍຂອງມັນ.

# man systemd-analyze 

ນັ້ນແມ່ນ ສຳ ລັບດຽວນີ້! ຖ້າທ່ານມີ ຄຳ ຖາມຫຼືຄິດທີ່ຈະແບ່ງປັນ, ໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້ເພື່ອຕິດຕໍ່ຫາພວກເຮົາ.