华硕路由器 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
发表评论