操作系统启动后网络还需要比较慢的时间才启动(差不多二分钟)

环境

linux 4.14.61

systemd version 247.3

问题

启动时发现网络其实很快就起来了,但是mqtt和docker启动的很慢,导致相关依赖启动很慢。

问题分析

实际通过systemctl list-units发现systemd-networkd-wait-online启动失败

而且从字面上看也有延时的意味所以。。。。通过百度发现有相关的问题"权益之计"的解决方案。

权宜之计

可以更改用vi更改以下文件:/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service在[Service]增加TimeoutStartSec=30,表示启动超时时间为30s。大家按需更改吧。

操作系统启动后网络还需要比较慢的时间才启动(差不多二分钟)_第1张图片

通过更改/etc/systemd/network/systemd-networkd-wait-online.service 将超时时间缩小,发现启动变快了,所以就定位到这个地方肯定导致延时了。当然这不是最终的原因和本质的问题,只是一个权宜之计。

正常解决

查找具体的原因,通过networkctl命令可以看到eth0网卡一直在configuring状态

操作系统启动后网络还需要比较慢的时间才启动(差不多二分钟)_第2张图片

这个网口实际上就是我正在用的网口,也是我通过临时设置ip(ifconfig eth0 192.168.xxx.xxx)并通过ssh登录上去截取的此图片,也就是说实际上这个网口是ok的。简单查一下这个工具发现networkctl用于查询systemd-networkd 所看到的网络连接的状态。

查看systemd-networkd配置为dhcp,自动分配ip

# cat /etc/systemd/network/eth0.network 
[Match]
Name=eth0
[Network]
DHCP=ipv4

试着简单猜想一下我手动设置的ip这个systemd-networkd服务是不认可的(因为实际去查看systemd-networked源码有点麻烦,就想先通过验证现象看看能不能验证猜想),经过查看参考以下连接,配置eth0的ip,启动就很丝滑了,没有什么延时现象。

配置如下:

[Match]
Name=eth0
[Network]
DNS=8.8.8.8
Address=192.168.1.151/24
Gateway=192.168.1.1

我的场景需求是需要用静态ip的,所以没有研究dhcp时自动分配为什么需要耗时那么多。

systemd-netword配置文件更改参考链接如下

systemd-networkd说明

你可能感兴趣的:(网络)