如何读取 systemd-analyze 图?

如何读取 systemd-analyze 图?

我正在尝试诊断 20.04.1 中更新后启动缓慢的问题。我运行了 systemd-analyze plot(输出已附上),但我不知道如何解释输出并找出导致延迟的原因。

在此处输入图片描述

systemd-analyze critical-chain 和 systemd-analyze blame 也是如此。我该如何解释它们的输出来确定是什么阻碍了事情的发展?在 critical-chain 中,我是在寻找那些需要很长时间才能启动 (+) 的事情,还是在前一个事情发生很久之后才开始活动 (@) 的事情,还是其他什么?在 blame 中,是不是只有那些(除了 plymouth-quit-wait.service)需要很长时间的事情?还是比这更复杂?

~$ systemd-analyze critical-chain
graphical.target @21.564s
└─multi-user.target @21.564s
  └─systemd-logind.service @879ms +384ms
    └─basic.target @812ms
      └─paths.target @812ms
        └─cups.path @810ms
          └─sysinit.target @807ms
            └─systemd-timesyncd.service @712ms +95ms
              └─systemd-tmpfiles-setup.service @690ms +19ms
                └─systemd-journal-flush.service @305ms +384ms
                  └─systemd-journald.service @235ms +68ms
                    └─systemd-journald.socket @232ms
                      └─-.mount @230ms
                        └─system.slice @230ms
                          └─-.slice @230ms


~$ systemd-analyze blame
20.555s plymouth-quit-wait.service                                                               
  384ms systemd-journal-flush.service                                                            
  384ms systemd-logind.service                                                                   
  359ms dev-mapper-vgubuntu\x2droot.device                                                       
  271ms apport-autoreport.service                                                                
  218ms accounts-daemon.service                                                                  
  215ms upower.service                                                                           
  199ms udisks2.service                                                                          
  178ms networkd-dispatcher.service                                                              
  172ms systemd-resolved.service                                                                 
  134ms apparmor.service                                                                         
  128ms bolt.service                                                                             
  122ms lvm2-pvscan@253:0.service                                                                
  107ms bluetooth.service                                                                        
  106ms polkit.service                                                                           
  103ms NetworkManager.service                                                                   
  101ms virtualbox.service                                                                       
   99ms systemd-rfkill.service                                                                   
   95ms systemd-timesyncd.service                                                                
   90ms ModemManager.service                                                                     
   86ms [email protected]                                                                        
   85ms lvm2-monitor.service                                                                     
   78ms switcheroo-control.service                                                               
   75ms gpu-manager.service                                                                      
   73ms thermald.service                                                                         
   71ms wpa_supplicant.service                                                                   
   68ms systemd-journald.service                                                                 
   66ms colord.service                                                                           
   64ms rtkit-daemon.service                                                                     
   61ms apport.service                                                                           
   58ms e2scrub_reap.service                                                                     
   57ms dev-mapper-vgubuntu\x2dswap_1.swap                                                       
   56ms lm-sensors.service                                                                       
   55ms systemd-udev-trigger.service                                                             
   54ms systemd-udevd.service                                                                    
lines 1-35...skipping...

plymouth-quit-wait.service 启动,随后在一秒钟内执行十几个操作,最后以 upower.service 结束。然后 packagekit.service 延迟约 3 秒,两个蓝牙设备延迟约 5 秒,GUI 延迟约 11 秒。如何确定这些进程中的哪一个正在执行某项操作(或等待其他操作)导致延迟?

plymouth-quit-wait.service 的关键链(后续但类似的启动):

~$ systemd-analyze critical-chain plymouth-quit-wait.service
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

plymouth-quit-wait.service +20.305s
└─systemd-user-sessions.service @1.090s +19ms
  └─network.target @1.079s
    └─NetworkManager.service @931ms +147ms
      └─dbus.service @929ms
        └─basic.target @894ms
          └─sockets.target @894ms
            └─uuidd.socket @894ms
              └─sysinit.target @885ms
                └─systemd-timesyncd.service @812ms +70ms
                  └─systemd-tmpfiles-setup.service @791ms +16ms
                    └─systemd-journal-flush.service @339ms +451ms
                      └─systemd-journald.service @254ms +83ms
                        └─systemd-journald.socket @251ms
                          └─system.slice @249ms
                            └─-.slice @249ms

我之所以关注这部分图,是因为从普利茅斯启动画面到 GUI 的延迟是新问题。在更新之前,启动画面会显示几秒钟,然后在一秒钟内进入 GUI。现在,启动画面会显示几秒钟,然后屏幕变黑,在 GUI 出现之前会有 15-20 秒的延迟。

仅供参考,更新包括从内核 5.8.0-43 到 5.8.0-44 的更新,以及许多其他内容。我不认为内核是问题所在,因为回滚内核并没有解决问题。此外,关闭蓝牙也无法解决问题。

相关内容