Home systemd 系统引导性能分析
Post
Cancel

systemd 系统引导性能分析

systemd中,提供了系统引导的性能分析工具,可以查看系统的引导时间,可以具体到每个服务。

查看系统引导的整体时间

1
2
3
# systemd-analyze time
Startup finished in 11min 4.279s (firmware) + 11.015s (loader) + 5.800s (kernel) + 14.109s (userspace) = 11min 35.204s 
graphical.target reached after 14.088s in userspace

查看系统引导过程中每个单元的时间占用情况,可以有针对性的进行优化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ systemd-analyze blame
11min 10.655s fstrim.service                                       
       6.203s NetworkManager-wait-online.service                   
       5.632s dev-nvme1n1p2.device                                 
       3.036s apt-daily-upgrade.service                            
       2.488s fwupd-refresh.service                                
       1.637s snapd.service                                        
       1.043s apt-daily.service                                    
       1.035s xrdp.service                                         
        907ms docker.service                                       
        832ms systemd-udev-trigger.service                         
        552ms man-db.service                                       
        307ms ua-timer.service                                     
        291ms logrotate.service                                    
        270ms systemd-journald.service                             
        249ms udisks2.service                                      
        232ms data.mount                                           
        219ms snap-gtk\x2dcommon\x2dthemes-1535.mount              
        217ms networkd-dispatcher.service                          
        213ms snap-gtk\x2dcommon\x2dthemes-1519.mount    
...
...

注意,这里列出的时间可能是“并行”的,即两个服务可能同时初始化,因此初始化它们所花费的时间要比两个单独时间的总和少得多。 对于启动时间过长的,可以优化或直接禁用掉,以加快启动。

还可以输出图片格式,直接以图形化查看

1
2
$ systemd-analyze plot > plot.svg
$ eog plot.svg

可以直接查看 plot.svg图片。

另外,有个 bootchart 工具可以查看引导过程中的细节,CPU和IO的使用情况。可以和 systemd-analyze plot配合使用

This post is licensed under CC BY 4.0 by the author.