This article will describe the workaround for avoiding problem that wickedd-dhcp6's boot time is slow.
Table of Contents
1 Slow boot problem of wickedd-dhcp6
On non IPv6 network, wickedd-dhcp6 will be time out on boot. On IPv6 network, wickedd-dhcp6 might not be time out because DHCPv6 response will be returned.
> systemd-analyze Startup finished in 2.542s (kernel) + 1.382s (initrd) + 22.252s (userspace) = 26.177s
There is a report for problem of wickedd-dhcp6. But wicked-0.6.39-36.1 has still slow problem of wickedd-dhcp6, this might be other problem.
2 Workaround
wicked.service always calls wickedd-dhcp6.service. There are two workarounds. First is customizing values of wickedd-dhcp6. Second is using NetworkManager.service instead of wicked.service.
2.1 Customize values of wickedd-dhcp6
Customizing waiting and timeout value will improve boot time of wickedd-dhcp6.
> diff -uprN /etc/sysconfig/network/dhcp{.org,} --- /etc/sysconfig/network/dhcp.org 2016-12-05 00:58:04.860081134 +0900 +++ /etc/sysconfig/network/dhcp 2016-12-05 01:05:54.648180334 +0900 @@ -239,7 +239,7 @@ DHCLIENT6_SLEEP="0" # When you increase this time, increase also the WAIT_FOR_INTERFACES variable # e.g. to a value twice as high as the time specified here. # -DHCLIENT6_WAIT_AT_BOOT="15" +DHCLIENT6_WAIT_AT_BOOT="1" ## Type: integer ## Default: "0" @@ -248,7 +248,7 @@ DHCLIENT6_WAIT_AT_BOOT="15" # not get a reply from the dhcp server. Before you set this variable, take a # look at DHCLIENT6_WAIT_AT_BOOT allowing to continue in background instead. # -DHCLIENT6_TIMEOUT="0" +DHCLIENT6_TIMEOUT="1" ## Type: list<rfc3004,string> ## Default: string
2.2 Use NetworkManager.service instead of wicked.service
Initialize network interface with NetworkManager.service instead of wicked.service. But wicked.service is major way, this might be minor customization.
> sudo systemctl disable wicked.service > sudo systemctl enable NetworkManager.service
3 Execution result
Boot time will be shorten about 15 seconds.
> systemd-analyze Startup finished in 2.552s (kernel) + 1.319s (initrd) + 3.260s (userspace) = 7.132s