network-online.target time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Folks,

I'm trying to optimise our boot process and have started to look at
the time it takes for the network to come up (a single interface to be
routable) when using systemd-networkd:

root@HOST:/# systemd-analyze critical-chain network-online.target --no-
pager
The time after the unit is active or started is printed after the "@"
character.
The time the unit takes to start is printed after the "+" character.


network-online.target @4.144s
└─systemd-networkd-wait-online.service @615ms +3.527s
  └─systemd-networkd.service @582ms +30ms
    └─systemd-tmpfiles-setup.service @315ms +63ms
      └─local-fs.target @314ms
root@HOST:/#

So, here systemd-networkd-wait-online.service seems to run for 3.5s -
I had initially though this is due to the RTT for DHCP but in doing a
packet capture for DHCP this isn't the case:

me@DHCP-SERVER:~$ sudo tshark -i eth0 -f "(ether src 28:16:a8:fd:53:77
|| ether dst 28:16:a8:fd:53:77) && (port 67 || port 68)"
Running as user "root" and group "root". This could be dangerous.
Capturing on 'eth0'
    1 0.000000000      0.0.0.0 → 255.255.255.255 DHCP 333 DHCP
Discover - Transaction ID 0x5c9e3cd0
    2 0.000157300  192.168.3.3 → 192.168.3.16 DHCP 373 DHCP Offer    -
Transaction ID 0x5c9e3cd0
    3 0.000695601      0.0.0.0 → 255.255.255.255 DHCP 345 DHCP Request
 - Transaction ID 0x5c9e3cd0
    4 0.000771901  192.168.3.3 → 192.168.3.16 DHCP 373 DHCP ACK      -
Transaction ID 0x5c9e3cd0

So, that's 700us from discover to ack.

We have 3 network interfaces, only enP8p1s0f0np0 is of use to us:

root@HOST:/# networkctl status -a --no-pager
● 1: lo
       Link File: /usr/lib/systemd/network/99-default.link
    Network File: n/a
            Type: loopback
           State: carrier (unmanaged)
         Address: 127.0.0.1
                  ::1


● 2: enP8p1s0f0np0
       Link File: /usr/lib/systemd/network/99-default.link
    Network File: /etc/systemd/network/wired.network
            Type: ether
           State: routable (configured)
            Path: platform-60400000.pcie-pci-0008:01:00.0
          Driver: bnxt_en
      HW Address: 28:16:a8:fd:53:77
         Address: 192.168.3.16
                  2001:db8:0:1:2a16:a8ff:fefd:5377
                  fe80::2a16:a8ff:fefd:5377
         Gateway: 192.168.3.1
                  fe80::7683:efff:fed4:935
             DNS: 10.50.10.50
                  10.50.50.50
             NTP: 10.222.184.12
    Connected To: localhost on port Ethernet31/1


● 3: enP8p1s0f1np0
       Link File: /usr/lib/systemd/network/99-default.link
    Network File: n/a
            Type: ether
           State: off (unmanaged)
            Path: platform-60400000.pcie-pci-0008:01:00.1
          Driver: bnxt_en
      HW Address: 00:10:18:ad:05:01
root@HOST:/#

Networking configuration looks like this:

root@HOST:/# cat /etc/systemd/network/wired.network
[Match]
Name=eth* en*

[Network]
DHCP=v4
root@HOST:/# cat /etc/systemd/network/
blacklist_interfaces.network  wired.network
root@HOST:/# cat /etc/systemd/network/blacklist_interfaces.network
[Match]
Name=enP8p1s0f1*

[Network]
DHCP=no
LinkLocalAddressing=no
IPv6AcceptRA=false

[Link]
RequiredForOnline=no
Unmanaged=yes
root@HOST:/#

Our version is:

root@HOST:/# systemctl --version
systemd 239
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP
+LIBCRYPTSETUP -GCRYPT -GNUTLS -ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS
+KMOD -IDN2 -IDN -PCRE2 default-hierarchy=unified
root@HOST:/#

I've had a look at
https://github.com/systemd/systemd/blob/v239/src/network/wait-online/wait-online.c
and it really doesn't do much other than wait for the operational
state to be "routable".

Can anyone offer any suggestions for where I should look to try to
speed things up here?

Thanks!
Peter.
_______________________________________________
systemd-devel mailing list
systemd-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux