|
本帖最后由 xykz 于 2020-5-25 10:23 编辑
已废弃,最终版见:https://www.right.com.cn/forum/thread-4031767-1-1.html
最近打开了FULL CONE NAT,发现对路由的性能影响还是挺大的,同时也发现了SFE在这种场景下能大幅降低CPU占用率。
路由:K2P
固件:无灯老毛子20180402-0237
其他耗费CPU的功能:SQM-QOS
1W连接数,打开FULL CONE NAT,不开SFE,CPU每分钟占用飙到4,无法跑满带宽,同时日志疯狂的报kernel: [<860a3390>] 0x860a3390
1W连接数,打开FULL CONE NAT,打开SFE,CPU每分钟占用不超过1,同时能跑满140Mbps带宽
2W连接数,打开FULL CONE NAT,打开SFE,CPU每分钟占用1.5~2,能跑满140Mbps带宽,路由界面响应缓慢
2.5W连接数,Classical Linux Hybrid NAT,打开SFE,CPU每分钟占用1.5~2,能跑满140Mbps带宽,路由界面响应缓慢
发现之前有位恩山的朋友已经发过帖子问过[K2P刷哪个固件能顶住2万五个连接数]
实测下来,2.5W连接数能抗住,但是网络体验比较糟糕,尤其是WIFI影响很大,内网看个不到20Mbps码率的电影都看不了。
对于FULL CONE NAT,如果是BT下载,不一定会提速,受限于路由器的性能,反而可能变慢。
================以下内容20200215更新=================
找到解决办法了,系统启动前更改以下内核参数
- echo 32768 > /proc/sys/net/core/somaxconn
- echo 16384 > /proc/sys/net/core/netdev_max_backlog
- echo 16384 > /proc/sys/net/ipv4/tcp_max_syn_backlog
- echo 15 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_close_wait
- echo 30 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_fin_wait
- echo 30 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_time_wait
- echo 300 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established
- echo 30 > /proc/sys/net/netfilter/nf_conntrack_udp_timeout
- echo 120 > /proc/sys/net/netfilter/nf_conntrack_udp_timeout_stream
复制代码 连接数过多会达到K2P CPU的瓶颈,但是其实很多连接都是在等待释放的状态(TIME_WAIT),所以这个办法主要是让路由器快速释放这些连接。
注意,这个办法并不能起到让K2P超过2W连接数不卡的作用,只是能有效抑制连接数的增长。
同样的测试环境下(P2P),改之前netfilter表跟踪了10000的连接数,改之后3000-5000左右;前面三个可能是没用的,不过无害就是了。
|
|