V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
villivateur
V2EX  ›  宽带症候群

R2S 软路由跑不满千兆,如何排查性能瓶颈在哪?

  •  
  •   villivateur · 2022-09-16 09:00:56 +08:00 · 13056 次点击
    这是一个创建于 807 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Nanopi R2S 刷了 Openwrt 的纯净版官方固件,作为家里的主路由。但是测速跑不满千兆,最多 480Mbps 左右。

    用 iperf3 测试 LAN 口设备到 R2S 的速度,可以达到千兆。电脑直连光猫测外网速度也能跑千兆。

    全速下载时,r2s 的 CPU 占用只有 50% 左右,各种代理插件已关。

    第 1 条附言  ·  2022-09-16 10:04:26 +08:00
    突然看到这么一个帖子: https://www.right.com.cn/forum/thread-4107714-1-1.html

    > 之前为了手里的 R2S ,到处刷各位大神的固件,总是有各种各样的小问题,后来干脆自己学习编译,总算用上了自己喜欢的固件。在编译过程中,我发现,某些大神做的源代码默认选项,似乎没有正确把 R2S 的硬件驱动打上。要靠编译者自行选择。
    后来我查看了 R2S 的硬件资料发现,其中一个网口是从一个 USB3.0 上转接出来的。很多人说拨号上网速度慢,我就琢磨:这个 USB3.0 控制器的驱动是否在固件里打上了吗?后来再一看代码默认选项-----果然没有 USB3.0 的控制器驱动,只是默认选择了 USB2.0 控制器驱动。

    > 自己编译的时候,我把 RTL 家族的网卡驱动都选上,然后把 USB3.0 的驱动也选上,再进行编译。出来的固件就真正驱动起来 USB3.0 的硬件性能,经过实测,WAN 口和 LAN 口不互换,也可以实现速度提升。
    希望大家编译 R2S 固件的时候,关注一下硬件参数,注意细节,把该打的驱动都打好,充分发挥硬件性能。

    再结合 480Mbps ,我去,openwrt 官方固件该不会真用的是 USB2.0 的驱动吧?有空我再试试。
    第 2 条附言  ·  2022-09-16 20:50:53 +08:00
    破案了,确实是有两个核跑满了。
    超频应该能解决,但是我不想刷固件了。

    58 条回复    2023-06-26 08:46:05 +08:00
    smy145012
        1
    smy145012  
       2022-09-16 09:08:32 +08:00
    刷一个超频固件试试,我之前也跑不满,后面刷了超频固件 1.5ghz,就可以跑满了
    yyzh
        2
    yyzh  
       2022-09-16 09:11:51 +08:00 via Android
    PPPoE 把 CPU 吃满了?
    spacezip
        3
    spacezip  
       2022-09-16 09:24:52 +08:00
    对调网口 但也不应该 480 啊。。。。
    Jack9527
        4
    Jack9527  
       2022-09-16 09:29:37 +08:00
    瓶颈是没有使用 L 大的超频固件
    fengchen0vr
        5
    fengchen0vr  
       2022-09-16 09:33:06 +08:00
    软路由为什么不上 x86 ,这个 R2S 优点不是小而省电么
    henglei
        6
    henglei  
       2022-09-16 09:41:33 +08:00
    r2s 的测评最多 500M ,千兆上 r4s
    fuwu1245
        7
    fuwu1245  
       2022-09-16 09:59:39 +08:00
    对调网口试下
    我当初 R2S 有线 PT 下载也能稳在 100MB/S 不至于 480Mbps
    ScepterZ
        8
    ScepterZ  
       2022-09-16 10:06:07 +08:00
    480 这个数怎么感觉是 usb2.0 跑出来的,但是你到 lan 的速度又没问题,有些神奇,你这是已经对调了网口么,我看本来 lan 上的是转接的那个
    ngv2
        9
    ngv2  
       2022-09-16 10:10:05 +08:00   ❤️ 1
    OpenWrt 官方固件用的不是 USB 2.0

    这是在内网一台 Linux 测的,流量经过 NAT
    Idle Latency: 3.15 ms (jitter: 0.30ms, low: 2.77ms, high: 3.56ms)
    Download: 723.52 Mbps (data used: 639.1 MB)
    8.14 ms (jitter: 5.34ms, low: 2.72ms, high: 219.07ms)
    Upload: 924.99 Mbps (data used: 1.3 GB)
    3.38 ms (jitter: 1.13ms, low: 1.97ms, high: 14.36ms)
    Packet Loss: 0.0%

    直接在 R2S 测
    Idle Latency: 3.29 ms (jitter: 0.12ms, low: 3.12ms, high: 3.41ms)
    Download: 948.37 Mbps (data used: 428.3 MB)
    10.40 ms (jitter: 1.31ms, low: 2.63ms, high: 14.13ms)
    Upload: 848.34 Mbps (data used: 831.7 MB)
    5.83 ms (jitter: 1.80ms, low: 2.90ms, high: 13.58ms)
    Packet Loss: 0.0%
    ngv2
        10
    ngv2  
       2022-09-16 10:10:46 +08:00
    @ngv2 系统版本 OpenWrt 22.03.0, r19685-512e76967f
    ButcherHu
        11
    ButcherHu  
       2022-09-16 10:11:40 +08:00
    网卡中断把两个 cpu 干满了?
    Flanker666
        12
    Flanker666  
       2022-09-16 10:19:34 +08:00
    用 iperf 内网互相灌包看看 CPU 占用
    villivateur
        13
    villivateur  
    OP
       2022-09-16 10:19:54 +08:00
    @ScepterZ 没对调网口,你说得没错,lan 没问题,看来不是 USB3.0 驱动的问题了
    blueboyggh
        14
    blueboyggh  
       2022-09-16 10:22:35 +08:00
    虽然我现在不用 r2s 了,但是我用的时候确实是可以跑到 800M 以上的,另外我用的都是其他人编译的固件,不是 op 官方
    billytom
        15
    billytom  
       2022-09-16 10:26:30 +08:00 via Android
    楼主,如果你刷的是天灵的固件,应该就不用在这里发问了
    villivateur
        16
    villivateur  
    OP
       2022-09-16 10:30:38 +08:00
    @ngv2 请教下,你在 R2S 上用的是什么测试工具?
    BenX
        17
    BenX  
       2022-09-16 11:09:45 +08:00
    R2S 本来就跑不满
    ngv2
        18
    ngv2  
       2022-09-16 11:11:03 +08:00
    huaes
        19
    huaes  
       2022-09-16 11:24:13 +08:00   ❤️ 1
    有的光猫吧,路由能跑跑 960 ,桥接最多也就 500
    djs
        20
    djs  
       2022-09-16 12:03:42 +08:00
    老哥什么时候可以的时候呼唤下我,分享下你打的包,无耻的做个伸手党
    djs
        21
    djs  
       2022-09-16 12:04:15 +08:00
    @blueboyggh #14 老哥你用的是哪个固件呢,有地址不
    kenneth104
        22
    kenneth104  
       2022-09-16 12:05:17 +08:00   ❤️ 1
    https://github.com/QiuSimons/YAOF

    现在我的 X86 用的这个包,你试试?
    niantoudeyisi
        23
    niantoudeyisi  
       2022-09-16 12:09:37 +08:00 via Android
    现在最新的固件 应该都是使用 usb3.0 的驱动。
    我之前内网 iperf3 能跑到 942MB/s 外网没条件测。感觉应该也能达到
    szdosar
        24
    szdosar  
       2022-09-16 12:27:01 +08:00
    FlyingShark
        25
    FlyingShark  
       2022-09-16 12:30:39 +08:00
    用 22 楼那个固件就行,可以超频到 1.6Ghz ,很稳定,注意电源必须足额
    djs
        26
    djs  
       2022-09-16 12:35:26 +08:00
    @szdosar #24 哈哈哈,感谢老哥,回去我试试
    villivateur
        27
    villivateur  
    OP
       2022-09-16 12:52:01 +08:00
    @huaes 很可能,感谢提醒
    mrzx
        28
    mrzx  
       2022-09-16 13:11:52 +08:00   ❤️ 2
    这个就是个玩具,
    不知道你们测试过小包(比如 64,128 ),那性能更是低的吓人。不可能你上网的时候,发送和接受数据全部是大包吧?

    后期 IPV6 普及开来,需要 ipv6 防火墙吧。。。多点访问控制策略,性能在打折扣。

    号称千兆路由,其实 500M 都悬。。。
    EvanQu
        29
    EvanQu  
       2022-09-16 13:12:58 +08:00   ❤️ 1
    网络->防火墙->常规设置->路由 /NAT 分载 下面两个都勾上 重启路由器 在测速试试看
    EvanQu
        30
    EvanQu  
       2022-09-16 13:14:04 +08:00
    @EvanQu #29 官方的包 以前 arm 的路由器 怎么跑都是半速,开了就全速了
    ngv2
        31
    ngv2  
       2022-09-16 13:17:15 +08:00
    @mrzx 纯小包的测试数据没有意义。
    日常家用场景,大部分是大包,小部分是小包。在这种场景下能跑到合适的性能就行。

    纯小包性能那是商用交换机 /路由器才需要。
    mrzx
        32
    mrzx  
       2022-09-16 13:18:03 +08:00
    路由器测试标准可以参考 MikroTik 家对自家产品的测试

    比如在 1518 下转发性能多少? 512 下多少,64 下多少?
    测完路由转发,在测 NAT
    然后在测 ipsec ,不同加密程度下多少性能?
    加了防火墙,低于 25 条策略以下,多少性能?
    跑了 qos,低于 25 条单队列情况下,多少性能?
    桥接和不桥接,多少性能?等等

    这些都要详细测过一边,才能比较直观的,多方面的,观察这个路由器+软件的性能是多少。
    mrzx
        34
    mrzx  
       2022-09-16 13:19:37 +08:00   ❤️ 1
    @ngv2 好吧,不跟你争它是家庭路由器,还是企业级路由器的定位。可能我就是干这行的。

    基本上我看中的路由器,都按企业级的标准去要求。。。
    villivateur
        35
    villivateur  
    OP
       2022-09-16 13:21:39 +08:00
    @EvanQu 非常感谢,改完之后能跑到 600M 了,剩下的问题我再查一下
    tankren
        36
    tankren  
       2022-09-16 13:26:43 +08:00
    小马拉大车
    Kinnice
        37
    Kinnice  
       2022-09-16 14:29:39 +08:00
    @BenX R2s 跑不满千兆指的是科学上网跑不满, 不是跑不满正常网络带宽
    Rrrrrr
        38
    Rrrrrr  
       2022-09-16 15:41:02 +08:00
    @FlyingShark 怎么看电源够不够
    TerenceRust
        39
    TerenceRust  
       2022-09-16 15:55:53 +08:00   ❤️ 1
    top 按 1 看看,单 CPU 占用,应该是负责 PPPoE 那个核满了。以前 Unifi UDM 的 PPPoE 不支持多核的时候也出现过跑不满的情况
    mrzx
        40
    mrzx  
       2022-09-16 17:22:00 +08:00
    @Rrrrrr 正常情况,电源标准功率是富裕的,吃不满的。

    比如 5V1.5A ,那就是 7.5w,很多测手机快充功率的那种设备也行。测试一下,是否吃满了 7.5w ?

    如果吃满了,那不用说,功率肯定不够了。。要更大的电源。
    stephenyin
        41
    stephenyin  
       2022-09-16 17:26:05 +08:00
    @Rrrrrr #38 至少 5V 3A, 最好 5V 4A
    villivateur
        42
    villivateur  
    OP
       2022-09-16 20:51:40 +08:00
    @TerenceRust 感谢,见附言,应该是你说的情况
    niuoh
        43
    niuoh  
       2022-09-16 21:32:02 +08:00
    我的 r2s 经常死机 已经放着吃灰了 还是用电脑魔法上网了
    villivateur
        44
    villivateur  
    OP
       2022-09-16 21:40:42 +08:00
    @niuoh 我之前用的野鸡固件,也经常死机。换了 openwrt 官方固件,半年都不用重启,非常稳定
    frankies
        45
    frankies  
       2022-09-17 00:51:31 +08:00 via Android
    不要只看软件,可以关注改善散热
    JoeoooLAI
        46
    JoeoooLAI  
       2022-09-17 01:01:34 +08:00
    不知道 op 有没有用过 kelver1988 的固件,用了很久挺稳定的,不过换了 mikrotik 的路由后就把 openwrt 虚拟化了 出掉 r2s 了。
    465456
        47
    465456  
       2022-09-17 08:45:07 +08:00
    有人评论 USB 网卡比较吃 CPU
    Sekai
        48
    Sekai  
       2022-09-17 17:40:37 +08:00
    800Mbps j1900 25%的 cpu 占用
    Laitinlok
        49
    Laitinlok  
       2022-09-17 21:44:08 +08:00 via Android
    開了 hardware flow offloading 嗎? Packet Steering 要關閉才能跑滿。
    xiaoun001
        50
    xiaoun001  
       2022-09-17 22:21:35 +08:00 via Android
    @mrzx 先生正解!我从 05 年解接触 Openwrt ,那时候啥也不懂,觉得 Openwrt 可以装软件,无所不能,神奇的很; 06 年上了 D525 + ESXi ,常见各种软路由系统,都玩过,渐渐的爱上了 Routeros ,专业网工最经济实惠的选择,因为 Cisco 能做的它都能做。Mikrotik 硬件的硬件版无线尤其出
    xiaoun001
        51
    xiaoun001  
       2022-09-17 22:33:12 +08:00 via Android
    接上面:Mikrotik 硬件路由无线功能极为出色,前后两代产品在家里用了加起来差不多 10 年,还是很稳。后来因为要 nat1 ,才万分不舍的把他放下了。突然有一天,开始有些反感 OPENWRT 了,一来它的用途被很多博主带歪了,以至于在很多平台直接成了敏感词。二来经历了技术路线之争,lede 获胜以后,今天的 openwrt 早已不是当初的那个追求极致的路由系统了。官方固件性能平庸,且软件库很难永恒,第三方固件良莠不齐,暗坑不少,不少都是冲着 lean 第三方特殊功能去的。 作为消费者,很难有精力,有能力去逐一优化它,性能不好,适配不好,又为什么要费事去折腾呢。
    shilianmlxg
        52
    shilianmlxg  
       2022-09-20 11:20:41 +08:00
    你可以用小宝的固件.istore.https://github.com/istoreos

    另外经常死机的问题是 tf 卡瓶颈,可能需要换一个 tf 卡

    还有就是无故停电断电 会损坏系统

    还有就是电源要整个 5v 4a 的
    sisuer1129
        53
    sisuer1129  
       2022-09-20 16:49:46 +08:00
    @shilianmlxg 我现在 R2S 就用了小宝的这个固件,不一定最优化,但感觉方便,稳定
    R2S 内网跑个千兆问题还是不大的
    我用 Iperf3 测试过 手机到 R2S 的速度,苹果手机那么弱的 wifi ,测速也能达到 700M 以上了
    PT 下载的话,能跑满我家的宽带( 500M 电信)
    sisuer1129
        54
    sisuer1129  
       2022-09-20 16:53:01 +08:00
    @mrzx 可以推荐些路由器么。个人家庭也承受得起的 哈哈
    mrzx
        55
    mrzx  
       2022-09-20 17:58:32 +08:00
    @sisuer1129 千兆及双链路千兆宽带,我就无脑推 Mikrotik rb4011 吧,跑千兆绝对性能富裕。别觉得双千兆办的人少,我们小区就 3 个人办理了。

    至于万兆宽带吗?那也是 7~8 年后的事情了。照现在经济不景气的情况下,万兆宽带的到来还早。这年头,运营商疯狂扩容的速度都慢下来了。

    而且现在的千兆宽带性能大部分情况是得看小区 OLT 和整体链路带宽得情况

    万兆得上 Mikrotik 的 CCR 系列了。。除非你们偏远村镇,每家每户收个 20 元一个月,做私人宽带还有搞头(先申明,非法的,但还是有很多在做,这时候能体现 Mikrotik 的 qos 和 pppoe-server ,radius 的强大之处了)。
    demoshengxw
        56
    demoshengxw  
       2023-03-27 14:38:33 +08:00 via iPhone
    刚买了一个,只准备做旁理由。
    enjoyO
        57
    enjoyO  
       2023-06-25 20:44:03 +08:00
    跑不满千兆是因为 r2s 的 wan 口是 usb3.0 转的千兆,lan 口是原生千兆
    villivateur
        58
    villivateur  
    OP
       2023-06-26 08:46:05 +08:00
    @enjoyO 但是 USB3.0 的速率完全可以达到千兆啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2612 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:44 · PVG 14:44 · LAX 22:44 · JFK 01:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.