华硕路由器 ksoftirqd占用大量cpu导致的断网

缘起

最近发现家里的网络时不时就卡一下,好的时候卡一会儿就自动恢复,差的时候卡住就基本不能上网了,ping路由器延时达到1秒还存在丢包,因此最近折腾查下具体的原因。

折腾过程

开始的时候怀疑是华硕路由器比较老了性能不够,比如cpu或者内存瓶颈,导致在高使用率时异常。

而且出现问题的时机是随机的不太容易抓到现场分析,所以很久没有分析出根本原因。

内存或cpu瓶颈

最近一次偶然机会在家里发现路由器开始卡了,ping路由器耗时开始增加但还没有卡死。

此时勉强登录管理页面(已经很卡了),发现cpu占用和内存占用并不高,页面没看出问题。

尝试登录路由器后台,发现cpu和内存占用不高,但是网络就是很卡。

尝试通过top命令查看,发现ksoftirqd占用了相对比较大的cpu,但是也没有占满,是不是这个原因导致的呢?

从网上搜索后,发现ksoftirqd指的是中断,是不是什么操作或者流量导致中断数量爆炸,cpu处理不过来了?

可以用这个命令查看中断情况:

cat /proc/interrupts

但是在华硕路由器上,这个命令显示出来的eth相关的中断有很多,看不出来具体的问题。

由于查到这里没有继续分析的头绪,这里就暂停了。。

罪魁祸首:优酷的p2p传输

最近一次偶然的机会,路由器又卡起来了,刚好当时也有空,登录管理页面看了下行为日志,发现有大量的不太正常的udp包传输被丢弃(从外部来的)。

继续分析udp包的目标端口,从软路由分析端口对应的内网客户端的ip,最后发现是一台ipad。。。

这台ipad疯狂的进行udp的包传输,而家里的网络udp的p2p传输会被防火墙拦截一部分,导致在行为日志中又大量的记录

而这个udp的传输是哪里来的呢?居然能比bt、pt下载还猛?之前bt下载时也没有卡死的情况

当时看了这台pad的行为,居然是正在看优酷视频,而且只看了优酷视频

立即禁止了这台ipad的upd传输,整个网络立马好。。。

同时在优酷客户端中,关闭了所谓的“网络加速功能”。。。。

事后分析,这个不过是优酷利用p2p网络,进行视频加载的功能,但是这个功能太过激进,在一些网络环境下,基本是疯狂的进行udp的传输,在一些路由器上,过防火墙也是很大的开销,最终就导致了卡顿问题

而解决此类问题的方案,就是关闭视频客户端的“网络加速?” 功能,同时在路由器上限制其udp传输(实际pad等影音设备上也没啥正常操作需要udp来做的)。

总结

现在的视频网站,一边想着开各种叠甲式的会员,一边又在利用用户的带宽干着p2p的事情,比bt、pt下载还要疯狂,下限非常的低。。。

参考文档

https://blog.csdn.net/whatday/article/details/116475996

https://blog.csdn.net/ye1223/article/details/85050498


发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。