私は、より速く起動できる/すべきだと思うDebian 10サーバーを持っていますが、何が問題なのかわかりません。
起動時にA start job is running for Raise network interfaces
が表示され、systemd-analyze blame
を見るとnetworking.service
に多くの時間が費やされているようです(50ミリ秒未満のサービスは省略しました)。
50.846s networking.service
1.872s smb.mount
717ms nftables.service
560ms ifupdown-pre.service
544ms systemd-logind.service
205ms systemd-journald.service
194ms dev-nvme0n1p2.device
88ms systemd-udev-trigger.service
83ms smbd.service
66ms libvirtd.service
61ms lvm2-monitor.service
60ms chrony.service
57ms [email protected]
50ms nmbd.service
systemctl stop networking.service
とsystemctl start networking.service
を実行するのに2秒もかかりません。
これは参照用の/ etc/network/interfacesです(br0はVMに使用されます):
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
auto enp5s0
iface enp5s0 inet static
address 192.168.1.190
netmask 255.255.255.0
gateway 192.168.1.1
auto enp9s0
iface enp9s0 inet manual
auto enp8s0
iface enp8s0 inet static
address 10.36.14.242
netmask 255.255.255.0
post-up ip route add 10.0.0.0/8 via 10.36.14.1 dev enp8s0
pre-down ip route del 10.0.0.0/8 via 10.36.14.1 dev enp8s0
auto br0
iface br0 inet static
address 10.36.15.11
netmask 255.255.255.0
bridge_ports enp9s0
bridge_stp off
bridge_fd 0
auto wg-p2p
iface wg-p2p inet static
address 10.88.88.1
netmask 255.255.255.0
pre-up ip link add $IFACE type wireguard
pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf
post-down ip link del $IFACE
auto
をallow-hotplug
に変更することに関するいくつかの投稿を見ましたが、説明により、ブートをブロックせずにインターフェイスを開始するだけのように聞こえます。つまり、ネットワークに到達するまでの時間は同じです。 enp *インターフェイスをそのdidに変更すると、少なくともルーティングを開始する時間が改善されます。サーバーの起動後に別のデバイスから別のネットワークにpingすると、auto
で約1分、allow-hotplug
で約32秒かかります(おそらく、インターフェースが並行して開始されるためでしょうか?)。 A start job is running
メッセージ。ただし、br0をそれに変更すると、そのインターフェースは自動的に開始されなくなりました。
またonly enp *インターフェースでautoがアクティブな場合、シャットダウン時にA stop job is running for Raise network interfaces
を取得します。これは完了するまでに約50秒かかります。
そのため、インターフェイスをallow-hotplug
のままにしても問題ないかどうか(一部のサービスでインターフェイスバインディングの問題が発生している可能性がありますか?)、および起動時間を短縮するために修正できる他の問題があるかどうかを知りたいです。
編集:
dmesg -T
の関連出力は次のとおりです。
[Mo Jun 24 13:16:48 2019] IPv6: ADDRCONF(NETDEV_UP): enp5s0: link is not ready
[Mo Jun 24 13:16:51 2019] igb 0000:05:00.0 enp5s0: igb: enp5s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[Mo Jun 24 13:16:51 2019] IPv6: ADDRCONF(NETDEV_CHANGE): enp5s0: link becomes ready
[Mo Jun 24 13:16:58 2019] r8169 0000:09:00.0: firmware: direct-loading firmware rtl_nic/rtl8168e-3.fw
[Mo Jun 24 13:16:58 2019] RTL8211E Gigabit Ethernet r8169-900:00: attached PHY driver [RTL8211E Gigabit Ethernet] (mii_bus:phy_addr=r8169-900:00, irq=IGNORE)
[Mo Jun 24 13:16:58 2019] r8169 0000:09:00.0 enp9s0: No native access to PCI extended config space, falling back to CSI
[Mo Jun 24 13:16:58 2019] IPv6: ADDRCONF(NETDEV_UP): enp9s0: link is not ready
[Mo Jun 24 13:17:01 2019] r8169 0000:09:00.0 enp9s0: Link is Up - 1Gbps/Full - flow control off
[Mo Jun 24 13:17:01 2019] IPv6: ADDRCONF(NETDEV_CHANGE): enp9s0: link becomes ready
[Mo Jun 24 13:17:08 2019] RTL8211E Gigabit Ethernet r8169-800:00: attached PHY driver [RTL8211E Gigabit Ethernet] (mii_bus:phy_addr=r8169-800:00, irq=IGNORE)
[Mo Jun 24 13:17:08 2019] IPv6: ADDRCONF(NETDEV_UP): enp8s0: link is not ready
[Mo Jun 24 13:17:11 2019] r8169 0000:08:00.0 enp8s0: Link is Up - 1Gbps/Full - flow control off
[Mo Jun 24 13:17:11 2019] IPv6: ADDRCONF(NETDEV_CHANGE): enp8s0: link becomes ready
[Mo Jun 24 13:17:18 2019] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[Mo Jun 24 13:17:18 2019] br0: port 1(enp9s0) entered blocking state
[Mo Jun 24 13:17:18 2019] br0: port 1(enp9s0) entered disabled state
[Mo Jun 24 13:17:18 2019] device enp9s0 entered promiscuous mode
[Mo Jun 24 13:17:18 2019] br0: port 1(enp9s0) entered blocking state
[Mo Jun 24 13:17:18 2019] br0: port 1(enp9s0) entered forwarding state
[Mo Jun 24 13:17:18 2019] IPv6: ADDRCONF(NETDEV_UP): br0: link is not ready
[Mo Jun 24 13:17:19 2019] IPv6: ADDRCONF(NETDEV_CHANGE): br0: link becomes ready
[Mo Jun 24 13:17:28 2019] wireguard: loading out-of-tree module taints kernel.
[Mo Jun 24 13:17:28 2019] wireguard: module verification failed: signature and/or required key missing - tainting kernel
[Mo Jun 24 13:17:28 2019] wireguard: WireGuard 0.0.20190406 loaded. See www.wireguard.com for information.
[Mo Jun 24 13:17:28 2019] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <[email protected]>. All Rights Reserved.
インターフェイスを無効にすると、インターフェイスごとに最大10秒長くなるようです
私はあなたと同じ問題を正確に持っていました(私は Debianユーザーフォーラムへのこの投稿 )
私の問題は、「Boottime Entropy Starvation」の別のインスタンスであることが判明しました(wpa-supplicantが鍵交換のためにランダムデータを必要とし、乱数ジェネレーターがランダムデータを提供するのを待つ間、カーネルがブロックしたと推測しています)。これは驚くほど一般的な問題であることがわかりました-残念ながら、私が見たほとんどすべての「いわゆるソリューション」は単にタイムアウトを減らすことを提案しています。 :
私にとっての修正は、hagegeデーモンをインストールすることでした(これは、ブートプロセスの初期に開始する別のランダムデータジェネレーターです。そのため、wpa-supplicantが要求すると、多くのエントロピーを利用できます)。
Sudo apt install haveged
楽しい!! :-)
より詳しい情報:
---(https://wiki.debian.org/BoottimeEntropyStarvation
https://www.debian.org/releases/stable/AMD64/release-notes/ch-information.en.html#entropy-starvation
Systemd-networkd-wait-online.serviceが無効になっているかどうかを確認しましたか?
"" "systemd-networkd-wait-onlineは、ネットワークが構成されるのを待機するワンショットシステムサービス(systemd.service(5)を参照)です。デフォルトでは、認識しているすべてのリンクを待機します。 systemd-networkd.service(8)によって管理され、完全に設定または失敗し、少なくとも1つのリンクがキャリアを獲得します。 "" " https://manpages.debian.org/testing/systemd/systemd -networkd-wait-online.service.8.en.html
また、最初にネットワークに不正なサーバーがないことを確認してください。たぶん無効なリースを持つブロードキャストDHCPサーバー?
Ifupdown2をインストールすると、ネットワーク時間が約6秒に短縮されました。
5.974s networking.service
1.904s smb.mount
773ms nftables.service
552ms systemd-logind.service
208ms systemd-journald.service
205ms dev-nvme0n1p2.device
96ms systemd-udev-trigger.service
90ms lvm2-monitor.service
79ms smbd.service
62ms chrony.service
53ms nmbd.service
50ms libvirtd.service
[Di Jun 25 05:21:06 2019] [drm] Initialized amdgpu 3.27.0 20150101 for 0000:42:00.0 on minor 0
[Di Jun 25 05:21:09 2019] igb 0000:05:00.0 enp5s0: igb: enp5s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[Di Jun 25 05:21:09 2019] IPv6: ADDRCONF(NETDEV_CHANGE): enp5s0: link becomes ready
[Di Jun 25 05:21:11 2019] r8169 0000:08:00.0: firmware: direct-loading firmware rtl_nic/rtl8168e-3.fw
[Di Jun 25 05:21:11 2019] RTL8211E Gigabit Ethernet r8169-800:00: attached PHY driver [RTL8211E Gigabit Ethernet] (mii_bus:phy_addr=r8169-800:00, irq=IGNORE)
[Di Jun 25 05:21:11 2019] r8169 0000:08:00.0 enp8s0: No native access to PCI extended config space, falling back to CSI
[Di Jun 25 05:21:11 2019] IPv6: ADDRCONF(NETDEV_UP): enp8s0: link is not ready
[Di Jun 25 05:21:11 2019] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[Di Jun 25 05:21:11 2019] br0: port 1(enp9s0) entered blocking state
[Di Jun 25 05:21:11 2019] br0: port 1(enp9s0) entered disabled state
[Di Jun 25 05:21:11 2019] device enp9s0 entered promiscuous mode
[Di Jun 25 05:21:11 2019] RTL8211E Gigabit Ethernet r8169-900:00: attached PHY driver [RTL8211E Gigabit Ethernet] (mii_bus:phy_addr=r8169-900:00, irq=IGNORE)
[Di Jun 25 05:21:11 2019] br0: port 1(enp9s0) entered blocking state
[Di Jun 25 05:21:11 2019] br0: port 1(enp9s0) entered forwarding state
[Di Jun 25 05:21:11 2019] wireguard: loading out-of-tree module taints kernel.
[Di Jun 25 05:21:11 2019] wireguard: module verification failed: signature and/or required key missing - tainting kernel
[Di Jun 25 05:21:11 2019] wireguard: WireGuard 0.0.20190406 loaded. See www.wireguard.com for information.
[Di Jun 25 05:21:11 2019] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <[email protected]>. All Rights Reserved.
[Di Jun 25 05:21:12 2019] br0: port 1(enp9s0) entered disabled state
[Di Jun 25 05:21:14 2019] r8169 0000:08:00.0 enp8s0: Link is Up - 1Gbps/Full - flow control off
[Di Jun 25 05:21:14 2019] IPv6: ADDRCONF(NETDEV_CHANGE): enp8s0: link becomes ready
[Di Jun 25 05:21:14 2019] r8169 0000:09:00.0 enp9s0: Link is Up - 1Gbps/Full - flow control off
[Di Jun 25 05:21:14 2019] br0: port 1(enp9s0) entered blocking state
[Di Jun 25 05:21:14 2019] br0: port 1(enp9s0) entered forwarding state
たぶん、通常のifupdownでの奇妙なタイムアウトの問題ですか?これは間違いなくバグのようです。
編集:
了解しました。インターフェイスは実際には完全に「アップ」していないため、これで何も修正されなかったようです。手動で再起動するまでdnsmasqが機能しなかったため、これに気付きました。これは、networking.serviceに次のオーバーライドを使用することで「修正」されました。
[Unit]
Before=network.target shutdown.target network-online.target
しかし、悲しいかな、これは私を正方形に戻しました:
51.036s networking.service
1.114s smb.mount
837ms nftables.service
557ms systemd-logind.service
211ms systemd-journald.service
199ms dev-nvme0n1p2.device
100ms lvm2-monitor.service
91ms systemd-udev-trigger.service
77ms smbd.service
62ms nmbd.service
58ms chrony.service
56ms libvirtd.service
55ms [email protected]