Bạn có 1 vấn đề như sau trên hệ thống systemd vd như CentOS 7 : hệ thống systemd của bạn mất nhiều thời gian để khởi động hoàn tất. Làm sao để bạn xác định phân tích được thời gian khởi động dịch vụ nào chiếm nhiều thời gian để khởi động ? Vậy phải làm sao đây ?
Trên các hệ điều hành systemd như CentOS 7 có cung cấp 1 chương trình mang tên ‘systemd-analyze‘ được sử dụng để kiểm tra thông tin thời gian mà mỗi dịch vụ sẽ ngốn khi khởi động hệ thống. Nhìn chung thì ‘systemd-analyze‘ sẽ cung cấp cái nhìn tổng quan về việc hệ thống khởi động chậm. Ví dụ dưới được sử dụng trên OS CentOS 7.
Contents
1. Thời gian tổng quát
– Chạy lệnh với option ‘time‘ sẽ cho bạn cái nhìn tổng quá về thời gian được sử dụng bởi kernel, initrd và userspace trong lúc boot hệ thống.
# systemd-analyze time Startup finished in 971ms (kernel) + 860ms (initrd) + 11.589s (userspace) = 13.421s
2. Thời gian cụ thể của dịch vụ
– Với option ‘blame‘ bạn sẽ được cung cấp thông tin chi tiết về thời gian tiêu tốn để khởi động các dịch vụ tương ứng.
# systemd-analyze blame 28.017s kdump.service 20.028s rsyslog.service 7.154s hp-asrd.service 3.260s network.service 2.314s hp-snmp-agents.service 716ms dmraid-activation.service 557ms postfix.service 437ms hp-health.service 278ms dev-disk-by\x2duuid-983b791c\x2d3da0\x2d42d0\x2db357\x2d0a4fd8a392d8.swap 253ms cpqsrhmo.service 184ms iprupdate.service 184ms iprinit.service 175ms systemd-tmpfiles-setup.service 160ms tuned.service 153ms microcode.service 146ms hpsmhd.service 126ms snmpd.service
3. Thời gian chi tiết các tiến trình phụ thuộc
– Tại mỗi bước boot dịch vụ cụ thể thì hoạt động boot sẽ không khởi động dịch vụ lên hoàn tất nếu các chương trình/dịch vụ liên kết hay phụ thuộc của dịch vụ đó chưa được khởi động hoặc kiểm tra. Để xem các thành phần tiên quyết của dịch vụ thì ta thêm option ‘critical-chain‘.
multi-user.target @11.583s └─hp-asrd.service @4.428s +7.154s └─network.target @4.424s └─network.service @1.148s +3.260s └─basic.target @1.129s └─sockets.target @1.129s └─dbus.socket @1.129s └─sysinit.target @1.118s └─systemd-update-utmp.service @1.114s +3ms └─systemd-tmpfiles-setup.service @937ms +175ms └─local-fs.target @935ms └─boot.mount @485ms +3ms └─systemd-fsck@dev-disk-by\x2duuid-25d091e3\x2dcb00\x2d40c1\x2d909c\x2d43f60c073afc.service @471ms +13ms └─systemd-fsck-root.service @192ms +21ms └─systemd-readahead-replay.service @134ms +20ms
Lưu ý:
– Các bạn có thể xem thêm các thông tin tham khảo về chương trình lệnh ‘systemd-analyze‘ tại manual của lệnh.
Ở trên là 1 mục nhỏ khi quản trị các hệ thống ‘systemd‘ và xác định thời gian khởi động dịch vụ . Hy vọng các bạn thấy bổ ích.