NetctlはArch Linuxでは非常に遅いです。

NetctlはArch Linuxでは非常に遅いです。

私はLinuxに初めて触れました。私は開始時間を短縮するためのプロジェクトを進めています。私はRaspberry Pi B +でArch Linuxを使用しています。私は特にnetctlサービスを調査しています。機能時間を追跡するために、/usr/lib/networkでいくつかのスクリプトを編集しました。わかりましたが、ハードウェア(?)が遅く、/etc/resolv.confが見つからないため、resolv.confに閉じ込められています。

[   17.174115] alarmpi network[195]: Starting network profile 'ethernet-static'...
[   17.190230] alarmpi network[195]: start connection up {network}
[   17.208285] alarmpi network[195]: inside ethernet up
[   17.208285] alarmpi network[195]: test for bring interface up
[   17.443234] alarmpi network[195]: inside bring interface up{network}
[   17.455252] alarmpi network[195]: connection slow or cable is not connectedP{ethernet connection}
[   19.038800] alarmpi network[195]: wait over for carrier whose connection is low or cable not connected {ethernet connection}
[   19.056395] alarmpi network[195]: set ip in IP lib
[   19.056395] alarmpi network[195]: inside ip set {ip}
[   19.112173] alarmpi network[195]: adding static IP routs {set_ip}
[   19.122707] alarmpi network[195]: adding custome gateway {set_ip}
[   19.174517] alarmpi network[195]: start resolvconf
[   21.425880] alarmpi network[195]: /usr/lib/resolvconf/libc: line 230: /etc/resolv.conf: No such file or directory
[   21.901427] alarmpi network[195]: end resolvconf
[   21.913711] alarmpi network[195]: end of IP set
[   21.913711] alarmpi network[195]: set ip function finish P{ethernet connection}
[   21.941763] alarmpi network[195]: Started network profile 'ethernet-static'

遅いハードウェア(?)のコードスニペットは次のとおりです。

if is_yes "${SkipNoCarrier:-no}"; then
    SkipDAD=yes
else
    # Some cards are plain slow to come up. Don't fail immediately.
    if ! timeout_wait "${TimeoutCarrier:-5}" '(( $(< "/sys/class/net/$Interface/carrier") ))'; then
        report_error "No connection found on interface '$Interface' (timeout)"
        bring_interface_down "$Interface"
        return 1
    fi
fi

これは私のイーサネット設定ファイルです

Description='A basic static ethernet connection'
Interface=eth0
Connection=ethernet
IP=static
Address=('10.152.187.5/24')
#Routes=('192.168.0.0/24 via 192.168.1.2')
Gateway='0.0.0.0'
DNS=('10.152.187.5')
#ForceConnect=yes
NETCTL_DEBUG=no
TimeoutCarrier=2

## For IPv6 autoconfiguration
#IP6=stateless

## For IPv6 static address configuration
#IP6=static
#Address6=('1234:5678:9abc:def::1/64' '1234:3456::123/96')
#Routes6=('abcd::1234')
#Gateway6='1234:0:123::abcd'

私は固定接続を使用しており、DHCPサービスを無効にしました。これまではIPv6に興味はありません。

起動時間を短縮するソリューションは何ですか? systemd-networkdサービスに切り替える必要がありますか?

ベストアンサー1

libc は /etc/nsswitch.conf を使用して名前解決を設定します。 nsswitch.conf リファレンス

ある時点でDNSを使用してホストエントリが解決されると、サブシステムは/etc/resolv.confを読み込み、パラメータを見つけます。

DNSを高速化するには、ローカルDNSキャッシュのみを使用することをお勧めします。 dnsmasqが多すぎると思われる場合は、名前解決に静的/ etc / hostsファイルを直接使用できます。

キャリアリンク設定を高速化するには、PIのこのインターフェイスのスイッチリンクでスパニングツリーportfastを使用することを検討する必要があります。

おすすめ記事