[systemd-devel] Help needed for optimizing my boot time

Francis Moreau francis.moro at gmail.com
Thu Jun 11 06:15:59 PDT 2015


On 06/11/2015 02:22 PM, Andrei Borzenkov wrote:
> On Thu, Jun 11, 2015 at 3:10 PM, Francis Moreau <francis.moro at gmail.com> wrote:
>> On 06/11/2015 01:40 PM, Andrei Borzenkov wrote:
>>> On Thu, Jun 11, 2015 at 2:26 PM, Francis Moreau <francis.moro at gmail.com> wrote:
>>>>>>
>>>>>>    $ systemd-analyze critical-chain
>>>>>>
>>>>>>    graphical.target @7.921s
>>>>>>      multi-user.target @7.921s
>>>>>>        autofs.service @7.787s +132ms
>>>>>>          network-online.target @7.786s
>>>>>>            network.target @7.786s
>>>>>>              NetworkManager.service @675ms +184ms
>>>>>>                basic.target @674ms
>>>>>>                  ...
>>>>>>
>>> ...
>>>>> Is NetworkManager-wait-online.service enabled and active?
>>>>>
>>>>
>>>> It seems it's enabled but no more active:
>>>>
>>>> $ systemctl status NetworkManager-wait-online.service
>>>> ● NetworkManager-wait-online.service - Network Manager Wait Online
>>>>    Loaded: loaded
>>>> (/usr/lib/systemd/system/NetworkManager-wait-online.service; disabled;
>>>> vendor preset: disabled)
>>>>    Active: inactive (dead) since Thu 2015-06-11 11:54:37 CEST; 1h 4min ago
>>>>   Process: 583 ExecStart=/usr/bin/nm-online -s -q --timeout=30
>>>> (code=exited, status=0/SUCCESS)
>>>>  Main PID: 583 (code=exited, status=0/SUCCESS)
>>>>
>>>> Jun 11 11:54:30 cyclone systemd[1]: Starting Network Manager Wait Online...
>>>> Jun 11 11:54:37 cyclone systemd[1]: Started Network Manager Wait Online.
>>>>
>>>> This seems correct to me, doesn't it ?
>>>>
>>>
>>> Actually it says "disabled" which makes me wonder why it run. But this
>>> is the service that is likely responsible for long time you observe.
>>
>> I think it runs because of this:
>>
>> $ ls /usr/lib/systemd/system/network-online.target.wants/
>> NetworkManager-wait-online.service
>>
>> BTW, why isn't it showed by 'systemd-analyze critical-chain' ?
>>
> 
> My best guess is that it has no direct dependency on NetworkManager so
> it is not counted as part of "chain". You could try adding
> 
> After=NetworkManager.service
> 
> to see if it changes anything in systemd-analyze output.
> 
>>> If disabling it does ot help, you can try masking it (systemctl mask)
>>> for a test.
>>
>> Actually, I'm still not sure why autofs.service is waiting for
>> network-online.target to be activated, IOW why this service has
>> 'After=network-online.target'.
>>
> 
> You can discuss it on autofs list; systemd is just a messenger here :)
> 

Well it's more a systemd configuration question. I think the
'After=network-online.target' in its service file is not really needed.

I tried to disable autofs service and got a similar issue with ntpd one
(except network-online.target is not involved here):

  $ systemd-analyze critical-chain
  graphical.target @7.921s
    multi-user.target @7.921s
      ntpd.service @7.790s +20ms
        network.target @7.786s
          NetworkManager.service @675ms +184ms
            basic.target @674ms

  $ systemctl show ntpd -p After
  After=network.target...

Does ntpd service really need 'After=network.target', not sure.

Thanks


More information about the systemd-devel mailing list