V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
enihcam
V2EX  ›  Intel

DPDK 有人玩过么?到底能提高多少性能?

  •  
  •   enihcam · 2017-04-30 22:24:06 +08:00 · 8433 次点击
    这是一个创建于 2757 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题。

    7 条回复    2022-11-23 17:59:13 +08:00
    auser
        1
    auser  
       2017-04-30 22:29:03 +08:00 via iPhone
    具体得看你想干什么,不结合业务来讲,这个问题根本无法回答。

    如果做包转发,相比 x86 linux 肯定会大大提升性能。

    cloudflare 说过他们为什么不把 Nginx 做在 dpdk 上:瓶颈不在 dpdk 处理的网络这块。
    julyclyde
        2
    julyclyde  
       2017-05-01 07:32:39 +08:00   ❤️ 1
    上一份工作里,有同事在做这方面工作
    以前用 LVS,后来用 DPDK 自己写的,和阿里巴巴的那个类似(因为人是从阿里巴巴来的)

    改之前:万兆跑满
    改之后:万兆跑满
    所以后来我的评价是做事风格也充满了阿里风,没事找事凑 KPI
    enihcam
        3
    enihcam  
    OP
       2017-05-01 09:24:01 +08:00
    @auser 为了降低路由延迟,DPDK 能帮上忙么?
    auser
        4
    auser  
       2017-05-01 11:23:48 +08:00   ❤️ 1
    @enihcam

    DPDK 再快也是收包到送给应用层的时间短,而不是“转发”快。收到包后,各类检查跟查表(一般都是并发环境,加锁啊什么的,无锁?……哈哈)处理的时间,基本上都是要远远超过 DPDK 的自身开销的。

    想要快过 Linux,要明白为什么 Linux 网络协议栈会“慢”,这个慢是相比 DPDK 的处理而言的,对大部分应用而言,上层的业务延迟已经没多大必要在网络方面下功夫。总之,能否降低路有延迟,要看应用环境(买得起那么多物理机么?有相应的稳定可靠人才支撑么?),然后再做 profiling,看瓶颈在哪里。不要想当然的 DPDK。

    举例来说吧,做 UDP 的 DNS,就可以用 DPDK,绕过 Linux 协议栈提升 QPS. 如果做路由,我觉得拼不过硬件,我是不赞同这种做法的。为了低延迟,没有包的时候,DPDK 都要让 CPU 满载跑着,这时如果想提升吞吐量,延迟也会跟着上去。如果系统里边是多个干活程序一起跑的,老板穷或者不舍得买好机器,开发运维技能没跟着上去,DPDK 也会被用残的。

    硬件差不多,网络 IO+内存类的程序,Linux 跑万兆是没问题的。楼上共享了个案例。最后一个问题:有多少公司的业务能达到万兆带宽?
    auser
        5
    auser  
       2017-05-01 11:27:06 +08:00
    @enihcam

    补充下。见过几个公司的产品,说转发性能有多高,还跟 DPDK 做了对比,有的更可笑的说 CPU 负载比 DPDK 要低一些……这些测试,本质上而言,其实在 DPDK 的文档里连代码都有:一个端口收包,送到另一个端口去。不过:这种不带任何处理的程序,何必要写个程序呢。
    wangwen41097468
        6
    wangwen41097468  
       2021-09-03 17:33:19 +08:00
    [冲破内核瓶颈,让 I/O 性能飙升] DPDK 工程师手册,官方文档,最新视频,开源项目,实战案例,论文,大厂内部 ppt,知名工程师一览表

    https://github.com/0voice/dpdk_engineer_manual
    artnowben
        7
    artnowben  
       2022-11-23 17:59:13 +08:00
    DPDK 性能很高,但是 bypass kernel ,上层的协议栈要自己做。以 dperf 为例,
    dperf 使用 DPDK ,里面有 tcp 协议栈,可以达到几十亿并发,几千万 TCP 每秒新建,几百 Gbps 带宽。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1956 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:33 · PVG 08:33 · LAX 16:33 · JFK 19:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.