ksoftirqd进程占用100%

ER-4, 固件2.08。设配置了双拨load-blance,不管是两根网线拨还是单线拨。在l2tp/ipsec VPN server 有客户端接入时,CPU就上升到30%,vpn 连接几乎不能通。top一下看到时 ksoftirqd进程占用100%。请问有办法解决吗/

没有vpn请求,正常外网通信的时候一切正常吗?而且cpu30%一般不会不影响正常使用。

没有vpn请求,正常外网通信的时候一切正常。
VPN一联上,CPU就30%,不管有没有流量。
cpu30%内网这边还可以,但VPN没法用,VPN能连上,但根本没速度,简单的网页都打不开。

建议你设备固件回滚到1.10.x系列(例如:1.10.10)。然后删除掉多余固件。
然后来l2tp重新配置一遍启动试试看。怀疑还是一些配置或者固件版本有些冲突。
https://help.ubnt.com.cn/hc/zh-cn/articles/115000119902
https://help.ubnt.com.cn/hc/zh-cn/articles/115000122702-EdgeMax-VPN-L2TP-Server

谢谢。
确实,回滚到1.10.11就正常了。
但这个分支以后不更新了。怎么办

请管理员向RD反馈一下这个BUG。

你可以暂时先使用这个版本,后续新系列更新应该会逐步完善。

@catseye 现在固件是2.09-hotfix ,但情况还是一样的。

@soro :interrobang: 为什么@我 :face_with_monocle:

这个帖子都已经一年了还在讨论啥?2.0版本基于的是开放路由系统,因此对于路由规划需要特别小心 :bomb:

首先 明确一个东西就是进程ksoftirqd是用于包转发处理的,那么只有大量的数据报文需要转发判断处理的时候才会占用CPU :crazy_face:

接下来就比较容易分析了:

CASE 情况1: 现场有多少用户多少流量能导致进程占满CPU?显而易见的是不会24小时全时有这个流量,如果少数几个用户和极小的流量就导致了进程占用高额CPU,那直接代表你的路由规划上存在严重问题,比如路由环路?引述你提示信息中多次提到的:

是不是能想到啥可能了 :nerd_face:

CASE 情况2: 现场流量不高,也能用,但就是慢,慢到没法使用,最后断线,那么ksoftirqd进程处理范畴内的IPtable是不是配置了什么不必要或者说不合理的逻辑,导致报文判断分析工作量急剧上升?「关掉试试看 :stuck_out_tongue_winking_eye:

由于这个帖子并没有提供有效的信息,所以以上都基于猜 :sweat_smile:,这也是这个帖子700+浏览量却没人回复的原因所在吧 :stuck_out_tongue_winking_eye:

中午补充测试说明:
我这里随意找了台长期煲机的ER5,中午做了一个测试:
单线上联,以太网DHCP环境,ER5P,V2.0.9H1
可以看到CPU占用率已经比较高了70%+,但是没出现断线的问题,由于是手机从外网通过VPN访问内网后再转出去外网测速,因此流量同时双倍计算,此时流量单向30M,也就是双向跑出60M的VPN带宽了。
也就是说在60M综合带宽之下跑暂时没有看到什么问题。


手机截屏:

补充下午测试:
用手机挂LTE再VPN至USG,转外网测速:明显的LTE被运营商限速了,上行非常可怜,下行也被限制在30M附近;
但是从控制器上看CPU和内存在测试的15:20~15:30这10分钟内有CPU占用上升,但是没有明显的大幅波动;


上图是拼接的方便显示两个5分钟的数据。

国外的论坛也提到了双wan + l2tp耗cpu的问题,不过没看到具体解决方案
ER-12 + L2TP+2WAN (high cpu load and super L2TP traffic with load balance failover)
L2TP Server - super traffic v.2.0.6
也都提到了连上VPN后,产生了大量的流量,进而导致了很高的cpu占用

其实就是WRT在双WAN下L2TP或IPTable会造成主动引入的内环而已,阿苏斯、■■■ gear都有出过类似的案例,用WRT这样的开放系统就要有心理准备承受开放的Bug……

感谢 catseye详细全面解答。