Slower startup in 24.04 - don't understand 'systemd-analyze critical-chain'

Chris Green cl at isbd.net
Mon Oct 7 12:05:48 UTC 2024


I have a Lenovo T470 Thinkpad which I recently upgraded to [x]ubuntu
24.04 (from 23.10).

The boot time is now quite significantly slower than it was, the extra
time is between the Grub menu appearing and the GUI login display.

Running 'systemd-analyze critical-chain' shows the following:-

    root at t470# systemd-analyze critical-chain
    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.

    graphical.target @14.142s
    └─multi-user.target @14.141s
      └─postfix.service @14.134s +5ms
        └─postfix at -.service @12.890s +1.233s
          └─network-online.target @12.865s
            └─NetworkManager-wait-online.service @7.125s +5.737s
              └─NetworkManager.service @5.662s +1.439s
                └─dbus.service @5.281s +175ms
                  └─basic.target @5.244s
                    └─sockets.target @5.243s
                      └─uuidd.socket @5.243s
                        └─sysinit.target @5.221s
                          └─apparmor.service @5.025s +195ms
                            └─local-fs.target @5.003s
                              └─run-user-1000.mount @12.981s
                                └─local-fs-pre.target @573ms
                                  └─keyboard-setup.service @377ms +193ms
                                    └─systemd-journald.socket @364ms
                                      └─system.slice @339ms
                                        └─-.slice @339ms


I don't quite understand this, why does run-user-1000.mount start at
12.981 seconds and then subsequent things are back to 5.xxx seconds?

The result of 'systemd-analyze critical-chain' on another system (also
running 24.04) makes much more sense to me:-

    chris$ systemd-analyze critical-chain
    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.

    graphical.target @9.333s
    └─multi-user.target @9.333s
      └─postfix.service @9.331s +1ms
        └─postfix at -.service @8.661s +652ms
          └─network-online.target @8.641s
            └─NetworkManager-wait-online.service @2.646s +5.994s
              └─NetworkManager.service @1.173s +1.463s
                └─dbus.service @1.019s +109ms
                  └─basic.target @980ms
                    └─sockets.target @979ms
                      └─uuidd.socket @979ms
                        └─sysinit.target @961ms
                          └─systemd-timesyncd.service @907ms +52ms
                            └─systemd-tmpfiles-setup.service @859ms +33ms
                              └─systemd-journal-flush.service @495ms +317ms
                                └─systemd-journald.service @398ms +89ms
                                  └─systemd-journald.socket @378ms
                                    └─-.mount @336ms
                                      └─-.slice @337ms

Here the times add up as I would expect.


Can anyone explain to me what's going on the first (slow) system please?

-- 
Chris Green



More information about the ubuntu-users mailing list