关于 N5105/N6005+i225/i226 系列软路由搭配 OpenWrt 在高连接数条件下崩溃/软重启的问题和解决思路汇总

2022-09-12 02:30:31 +08:00
 wangyuyang3

一、本人设备:

  某品牌 N6005+四网口 i226-v ( 2.5Gbps )软路由(第四版),作主路由。
  家宽速率:下行 1000M ,上行 230M ;内网速率:软路由网卡接口均自动协商至 1Gbps ,因为交换机和主要客户端设备均未升级 2.5G 网卡)

二、实际可能的问题设备和环境:

  N5095/N5105/N6005 可能都有问题,i225 或 i226 各版本也可能都有问题,产品版本可能横跨厂商定义的第 1 版-第 4 版。
  软路由系统不一定限于 OpenWrt ,爱快可能也有问题。pfsense 等 FreeBSD 版本系统是否有问题也不清楚。
主路由必然有问题,旁路由和单臂路由是否有问题不清楚。
  但本文讨论对象以笔者以及大部分网上相关帖子贴主使用的OpenWrt 主路由使用环境为主。

三、问题描述 /触发条件:

  在** [物理机直装 /ESXi/PVE ] 条件下使用 [不同内核 /不同版本的定制 /自编译固件] 时,使用其他设备连接至 op 网关,挂 qbittorrent 跑 PT (包括任何跑满带宽的多线程下载 /上传行为),①高负载状态下,OpenWrt 主路由系统必定在15 分钟-48 小时内,发生②“软重启”或③“使用特定固件在 PVE 环境中报错崩溃”。** 触发错误所需要的时间,实测 PVE 条件下最快只需 15 分钟,ESXi 通常发生在 24 小时-48 小时。

  (①所谓高负载,是指:下载速度通常跑在 60MB/s 以上,极限在 110MB/s 左右,上传速度可以跑至 28MB/s 左右,上下行可以同时跑满带宽,活动连接数从 4000-17000 不等;实际触发问题所需要的速率和连接数可能不需要如此极限,但如果使用者操作强度太低,有很大概率没有能力触发 bug 。很多人可能误以为“没有能力触发问题=没问题”,导致网上出现大量无效的解决方案,使得深陷泥潭的求助者误入歧途,浪费很多时间精力。)

  (②所谓“软重启”,是指:在物理机直装或 PVE/ESXi 虚拟化环境下,即便实现在 op 开启系统日志自动转储,崩溃发生时也不会有任何异常日志记录,而是直接显示自动重新执行系统引导的过程日志; 而在 ESXi 或 pve 虚拟化环境中,软路由自动重启的同时,ESXi/pve 宿主机控制面板本身不会检测到 op 虚拟机发生的任何错误或重新引导状态,虚拟化宿主机操作系统安然无恙,且控制面板内记载的 op 虚拟机运行时间压根不会归零重新计算,日志亦无明显异常。)

  (③所谓“在 PVE 环境中报错崩溃”,是指:使用特定固件时,重复上述触发条件,op 虚拟机控制面板直接失灵,pve 系统日志报 KVM internal error ,此时只能通过 shell 命令行 kill 虚拟机子进程或重启 pve 才能重新控制 op 虚拟机。)

四、描述了类似问题的相关帖子,供参考:

1 、《 N5105 软路由环境下,电脑使用 IDM 同时下载超过 100 个文件,会随机触发软路由重启》
https://tanronggui.xyz/t/860850

2 、《 N6005 主机反复不定时自动重启》
https://github.com/coolsnowwolf/lede/issues/8781

3 、《[openwrt(x86)] [已解决] 虚拟机软路由,迅雷下载流量一大 OpenWRT 就自动重启》
https://www.right.com.cn/forum/thread-8236555-1-1.html
(这个贴主的 OpenWrt 并非主路由,而是旁路由,他的解决方案颇有些掩耳盗铃:将负责多线程下载的群晖操作系统直连主路由,避免流量经过会出问题的 op 旁路由设备。这个案例没有借鉴价值。)

4 、《[虚拟机相关] 发现 5.15 的 Openwrt 内核在 PVE 上必然软重启》
https://www.right.com.cn/forum/thread-8240769-1-1.html

5 、《[虚拟机相关] N5105 第四版 PVE+爱快 不定时重启问题》
https://www.right.com.cn/forum/thread-8250514-1-1.html

6 、《[虚拟机相关] pve 安装的 openwrt,经常自己重启什么原因?》
https://www.right.com.cn/forum/thread-8236555-1-1.html

五、结合上述帖子进行的无效尝试:

1 、清热去火:放弃解锁功耗墙版 BIOS ,回滚至旧版 BIOS ,锁 CPU 频率维持在 0.8Ghz ,双暴力风扇散热。PVE 控制面板显示温度长期低于 55°C ,最低可低至三十多度;

2 、柳暗花明又一村:替换 /尝试不同 linux 内核及 op 版本的固件;

3 、奥卡姆剃刀:编译时去除 Turbo ACC 插件,调整任何与软件加速 /流量分载相关的功能,禁止启用除基本网络功能外的所有插件和可能引发稳定性问题的功能(包括 IPv6 );

4 、瞎猫撞死耗子:更换 PVE 内核 /ESXi 版本,调整各种与硬件相关的设置碰运气(可参考以上帖子提及的任何关于虚拟机配置的修改选项);
包括某博客文章《解决 PVE 下虚拟机自动重启 / Kernel Panic 》(链接: https://blog.mbrjun.cn/archives/412 )提及的 PVE 配置方案。

六、有趣的发现:

1 、多因一果:
  **在 PVE 环境下,即便不做高连接数,不开任何多线程下载,单纯压测 CPU ,人为提高 CPU 温度至 75°C-83°C 之间维持不变,大约经过 30 分钟仍然会出现软重启(此时虚拟化宿主机操作系统依旧不会崩溃)。
  大概可以断定:温控不到位可能会导致表面上一模一样的软重启问题,应该和网卡温度高于 70°C 操作温度有关。但高温触发条件和上述多线程下载的触发条件并无紧密关联(基于 CPU 降频条件下多线程下载的“极寒试验”),可能分别为独立的诱因。

2 、就“ESXi 可否解决问题”而提出的截然矛盾的答案:
  ESXi 比 PVE 有明显更为出色的稳定性,但绝对无法避免软重启问题;部分帖子中少数网友提到 ESXi 不再出现软重启问题,与本人实际情况截然不同,至少有以下 4 种可能:
( 1 )硬件设备压根不相关,误以为自己用的同系列 CPU 或网卡;
( 2 )由于 ESXi 软重启频率相比 PVE 显得过低,误以为情况改善=问题解决,放松警惕;
( 3 )根据不同使用条件,软重启可能引发的连锁反应严重程度大不相同。感知不到软重启余波的群体大概率没遇到以下情况:
  a. 在特定 bug 固件中,软重启有概率导致 Passwall 或 openclash 插件崩溃,导致断连外网访问,不会自动恢复;
  b. 对拨号获取的公网 IP 地址网段高度敏感:这就是为啥我一开始用 ESXi 就敏锐地发觉了问题,因为我 tm 开了电信精品网,好不容易播到的 58.32 网段,一软重启直接梦回 163 网段,就得不停人工或依赖 shell 脚本重播。播频繁了还会触发短期风控(禁止拨号,提示认证失败),气死。
( 4 )压根不搞高负载 /多线程下载的使用行为;或即便搞多线程,但由于购买的宽带套餐速率不高,或运营商有连接数限制,导致其能力范围内的极端“高负载”远不及千兆带宽用户以及 PT 玩家的极端使用习惯,因此没有能力触发上述问题。

3 、议题混淆
  本文及上述帖子提到的软重启或 PVE 虚拟机崩溃,与此前 i225 系列网卡出现的断流情况无关,后者可以在 op 系统日志中轻易探查到接口 down & up 的情况,而前者则显得尤其诡异,难以判断问题根源;很多讨论往往混淆了这两个相互独立的问题。

七、目前行之有效的妥协方案(已实测):

  改用 Windows Server 搭配 Hyper-v 网卡直通给 op ,直通前对网卡配置做调整(教程提供的调整方法意义不明,是否存在性能影响暂无感知)

  《[openwrt(x86)] 疑似可解决 N5105 、i225v 网关虚拟机软重启的问题》
  https://www.right.com.cn/forum/thread-8248900-1-1.html

  《 [ N5105 软路由(后传)] Hyper-V 网卡直通完整版 进阶教程新手小白勿入 i 》 8 分 35 秒起
  https://www.bilibili.com/video/BV1TS4y1873Q

  《[虚拟机相关] [ 7.30 更新] WinServer_2022@R86S&CW-N5105_Hyper-V 集成 i225 网卡驱动及网卡直通》
  https://www.right.com.cn/forum/thread-8223928-1-1.html

八、可能有效的备用方案(未实测)

  继续使用 PVE ,但换用 LXC 容器

  《[openwrt(x86)] PVE-LXC 搭建 Openwrt (同时解决 5105 重启)》
  https://www.right.com.cn/forum/thread-8252802-1-1.html

九、启示和疑问:

  软路由小厂商技术实力和产品可靠性实在堪忧,他们估计压根不知道自己卖的 N5105/N6005+i225/i226 产品出现的软重启问题,且很大可能具有普遍性、固有性,而和设备温度 /物理机直装或虚拟化方案的选择 /op 固件版本几乎没有紧密联系。
  或者换个角度说,目前搭载该系列赛扬 CPU 和同系列及衍生的 2.5Gbps 网卡产品的设备仍然需要谨慎入手,intel 自己产品存在问题,或目前虚拟化操作系统兼容性不足。特定群体,尤其是 PT 玩家和日常高负载玩家,并且极度厌恶上述提及的解决方案的(例如不喜欢 hyper-v 虚拟化方案或 pve-LXC 容器),请三思而后行。
  从原理并不明朗的解决方案看,怀疑软重启问题很可能和硬件、驱动或 BIOS 有关。
  发此贴,单纯是为了将该问题做一个阶段性归纳总结,以便为后续讨论和解决问题提供参考。

  关于 Windows 环境下网卡高级选项卡属性的配置(主要为禁用几种功能或技术特征?),想咨询各位大佬前述帖子修改的选项所对应的含义,解读为啥禁用这些选项能解决软重启问题,进而倒推分析出软重启的问题根源。同时兼分析禁用下述选项是否对性能或稳定性产生负面影响。
  禁用的功能包括:

  1 、IPv4 校验和卸载
  2 、TCP 校验和卸载( IPv4 )
  3 、TCP 校验和卸载( IPv6 )
  4 、UDP 校验和卸载( IPv4 )
  5 、UDP 校验和卸载( IPv6 )
  6 、大量发送卸载 V2 ( IPv4 )
  7 、大量发送卸载 V2 ( IPv6 )
  8 、流控制(笔者注:i226 网卡对应的时“流量控制)
  9 、中断裁决(笔者注:实测不禁用它也不妨碍问题解决)

19154 次点击
所在节点    OpenWrt
100 条回复
ghell
2022-12-09 11:25:36 +08:00
@metadx 我是 ESXi 7.0u3g ,op 主路由,虚拟机 win10 ltsc 下载。pt 下载能稳定在 75MB/s ,高峰能到 105MB
metadx
2022-12-09 11:27:50 +08:00
@metadx
刚才没有编辑完就误发。再补充一下。
我这两天机子刚到。我是 PVE7.3-3 ,跑 Mikrotik 的 CHR7.6 做主路由,网卡都是桥接给 CHR 的。
上传大约 300-400mbps ,下载很小 20-30mbps ,上下行包转发率合计约 70-80kpps 。
也是虚机不定时重启,七八个小时之内,有时候流量不大就 100-200mbps ,也会重启。
ghell
2022-12-09 11:36:30 +08:00
@metadx 我虚拟机真还没重启过,op 稳定跑了 3 天了,期间 pt 下载了大概 600GB 流量。唯一问题是 win10 虚拟机的 i226 网卡死过(直通网卡),但机器没死,估计可能还是 intel 网卡驱动 问题,现在把直通网卡禁用了,暂时用 esxi 的虚拟网卡( VMXNET3 ),cpu 占有率高大概 5-10%(主要是系统中断占用高了),还需要排查一下。
paranoiagu
2022-12-09 21:14:05 +08:00
618 买过 N5105 ,真的很喜欢这个小机器,但是虚拟机会重启。最后还是推了。然后内存啥的还只能低价二手卖出。
metadx
2022-12-14 20:56:08 +08:00
关于最近的 N6000+i226(r71s),pve 和 esxi 都不行,pve 和 esxi 自己没事,很稳,就是虚拟机不稳定,会重启。
楼上的 pve7 最新内核 7.19 升级 microcode 都测试了不行。esxi 7 u3g 测试也是不行
没办法,也退了
zycboss
2022-12-15 15:55:31 +08:00
最近在 TG 群里发现一个偏方,把 LAN 的 MTU 改成 9000 也就是巨帧,那位老哥天天跑下载已经稳定半个月没重启了,各位可以试试,至于 MTU9000 的各种副作用……我只能说这是个偏方……
misadonfdfl
2022-12-19 09:52:34 +08:00
持续关注本贴
misadonfdfl
2022-12-19 14:47:24 +08:00
PVE 内核已升级 6.1 持续观察下。
misadonfdfl
2022-12-21 09:05:50 +08:00
@misadonfdfl #68 6.1 OP 也软重启
yxguy
2022-12-23 07:31:30 +08:00
期待能解决 N5105+i225 在大流量工作时出现软重启及死机这个问题,说一下我个人的探索及结果:
1 、无论 PVE 、EXSI 、hyper-v 均有出现软重启的问题,而且在 pve 、exsi 有一定的概率出现 CPU 高占用且死机的问题,hyper-v 目前只是出现过软重启,暂未出现过死机;
2 、PVE 更新过最新内核,更新过微码,均无法解决该问题;
3 、使用的内存条的最高工作频率是 3200 ,尝试过手动改低工作频率到 2400 ,无法解决问题;
4 、改善主机散热,主机温度没超过 60 度,但还是会出现该问题;
5 、更换 pve 内 i225 的 igc 网卡驱动,使用 linux 的源代码重新编译驱动.ko 文件,替换原内核的驱动,可以正常工作,但出现的问题还是一样会软重启及死机;
6 、更换过 pve 内 n5105 的 cpu 调度模式,无论是 powersave 还是 performance 都无法解决该问题;
7 、更换网卡 MTU 设置,设成巨帧 9000 ,可以正常工作,但问题照旧;
8 、使用 pve 试过最长 9 天没有出现问题,exsi 最长 48 小时不出现问题,hyper-v 最长 5 天没出现问题;
yxguy
2022-12-23 07:33:43 +08:00
@zycboss 尝试过了,问题还是一样
yxguy
2022-12-26 11:56:20 +08:00
@yxguy 有点失望,hyper-v 内的虚拟机同样会 CPU 高占用率后死机,由于可以知道和哪个虚拟机平台关系不大,看来缺陷是在硬件层级或者主板、bios 层级。
nigga
2023-03-15 23:45:38 +08:00
@allen2000 现在如何 新的 6 版本内核是否需要继续更新?
allen2000
2023-03-16 11:01:01 +08:00
@nigga 到现在出现过一次自动重启,内核还是 pve-kernel-5.19.7-2-pve ,没有升级,个人感觉基本可以算是稳定使用。
helloet
2023-03-17 17:20:19 +08:00
350 入的 N4100 ,一劳永逸
misadonfdfl
2023-03-21 15:07:39 +08:00
pve 6.2 出来了,可以试试看还重启不。
yxguy
2023-03-21 22:44:46 +08:00
目前该问题已确认最终解决,解决方法见 PVE 官网论坛,目前已稳定运行 17 天,以往一天重启两至三次。
Danswerme
2023-03-21 22:54:59 +08:00
@yxguy 方便分享下链接吗?我这边搜了一下没找到最新的解决方案
yxguy
2023-03-22 06:47:08 +08:00
hxhajava
2023-03-24 10:05:01 +08:00
@yxguy 大佬,我看了下您发的那个地址,里面好像也没有具体的结论。只有一个说吧微码更新到 24 好像稳定了 10 来天,但他还在测试中。请问大佬您也是更新了微码嘛?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/879368

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX