lbk60ox 发表于 2024-8-31 01:15:09

从服务网格看,怎么样做好通用的网络性能优化?


    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_gif/YriaiaJPb26VPQqHC66RJFpttVIMWG83T3lWHahUD4bvhxlKSayjeV2ibvC5ydqklP9QHDPD3qHJM07TV3IfHstjA/640?wx_fmt=gif&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" style="width: 50%; margin-bottom: 20px;"></p>作者 | 汪翰林
    本文作者网易数帆云网络数据面负责人汪翰林,在工作中从事服务网格的网络数据面性能优化,<span style="color: black;">发掘</span>其中的网络性能优化的原理<span style="color: black;">拥有</span>相通性。本文对通用的网络性能优化<span style="color: black;">办法</span>做出了总结,<span style="color: black;">包含</span>服务网格及网络性能优化分析、网络性能优化技术介绍、网络性能优化思路三个方面,并列举了<span style="color: black;">实质</span>案例进行进一步诠释,供<span style="color: black;">大众</span>在<span style="color: black;">实质</span>做性能优化时参考。<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">前段时间,团队<span style="color: black;">始终</span>在做服务网格的网络数据面性能优化,<span style="color: black;">发掘</span>其中的网络性能优化的原理是相通的,<span style="color: black;">因此</span>就想着总结<span style="color: black;">有些</span>通用的网络性能优化<span style="color: black;">办法</span>,供<span style="color: black;">大众</span>在<span style="color: black;">实质</span>做性能优化时参考。</p>
    <span style="color: black;">服务网格及网络性能优化分析</span>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">业务微服务化之后,为了<span style="color: black;">提高</span>微服务的治理能力,<span style="color: black;">一般</span>会引入一个业务无侵入的 sidecar 代理来<span style="color: black;">供给</span>微服务的流控、熔断、升级等服务治理能力。sidecar 会转发所有微服务的出口和入口流量,但<span style="color: black;">这般</span>会<span style="color: black;">引起</span>网络路径<span style="color: black;">增多</span>两跳,<span style="color: black;">全部</span>路径拉长,相应地时延<span style="color: black;">亦</span>会<span style="color: black;">增多</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/sz_mmbiz_png/YriaiaJPb26VPmNXEcKz5zUkkCiarOtysT2hLfTgsVKW73oTBBS4N3JQfMV0zbiaIsy6nUn0RMic9l92TeBEjicUVzaQ/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">引入的时延<span style="color: black;">重点</span>分为 sidecar 业务处理时延以及网络收发时延。广义上的网络性能优化应该是端到端的时延优化,既<span style="color: black;">包含</span>处理时延优化,<span style="color: black;">亦</span><span style="color: black;">包含</span>网络收发时延优化。<span style="color: black;">咱们</span><span style="color: black;">这儿</span><span style="color: black;">重点</span>讨论狭义的网络性能优化,仅<span style="color: black;">包含</span>网络收发的时延优化。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/sz_mmbiz_png/YriaiaJPb26VPmNXEcKz5zUkkCiarOtysT2KAzqI3WuuKsVibVFNXNSeF9ZNnib0CtH2sV1FoKic3jU9CaKpWIKz3uEw/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">倘若</span>打开网络传输的链路,sidecar 额外引入了 Service 到 sidecar 以及 sidecar 到 sidecar 的链路,网络时延的<span style="color: black;">增多</span><span style="color: black;">重点</span>是<span style="color: black;">由于</span>链路中多经过的四次内核态 TCP/IP 协议栈的开销。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/sz_mmbiz_png/YriaiaJPb26VPmNXEcKz5zUkkCiarOtysT2vUYlnn7ugVfPgwDQ2eVq7WZ4BOQq5GzFEFtee0akkKGYfd35qYoLTA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span><span style="color: black;">经过</span> perf 火焰图分析了 sidecar 应用 Envoy 的 CPU 占用,<span style="color: black;">发掘</span>内核态协议栈的 CPU 占比近 50%,而剩下的 50% CPU <span style="color: black;">重点</span>消耗在 Envoy 本身处理<span style="color: black;">规律</span>上。可见,<strong style="color: blue;">网络时延的优化的重点<span style="color: black;">亦</span><span style="color: black;">便是</span>对内核态协议栈的优化</strong>。</p>
    <span style="color: black;">网络性能优化技术</span>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>先来看一下针对内核态协议栈的网络性能优化技术,<span style="color: black;">重视</span><span style="color: black;">这儿</span>特指针对内核态协议栈的优化,<span style="color: black;">由于</span>网络性能优化的思路还有<span style="color: black;">非常多</span>,<span style="color: black;">咱们</span>会在后面章节<span style="color: black;">说到</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">针对内核态协议栈的优化<span style="color: black;">重点</span>思路是 kernel bypass,即让报文不经过内核态协议栈<span style="color: black;">或</span>不经过完整的内核态协议栈,<span style="color: black;">经过</span>缩短网络路径来达到性能优化的目的。<span style="color: black;">日前</span><span style="color: black;">重点</span>用到的技术<span style="color: black;">包含</span> eBPF、用户态协议栈以及 RDMA。</p>
    <span style="color: black;">eBPF</span>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">eBPF(extended Berkeley Packet Filter)是一个内核技术,<span style="color: black;">能够</span>在不需要重新编译内核的<span style="color: black;">状况</span>下,<span style="color: black;">经过</span>一种安全的、可编程的方式扩展内核的功能。eBPF 的<span style="color: black;">重点</span>功能是在内核层面进行安全、<span style="color: black;">有效</span>的网络数据包过滤和处理,以及在运行时对系统进行监控和调试。eBPF <span style="color: black;">能够</span><span style="color: black;">经过</span>独立的用户空间程序来编写和加载,这些程序<span style="color: black;">能够</span>安全地与内核交互,而不会影响内核的稳定性和安全性。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">简单<span style="color: black;">来讲</span>,<span style="color: black;">日前</span>的内核协议栈处理流程的代码中预留了<span style="color: black;">非常多</span> hook 点,用户态编写的程序编译成 eBPF 字节码之后<span style="color: black;">能够</span>注册到这些 hook 点,之后内核处理报文到 hook 点时就会调用这些预编译好的字节码程序完成特定的功能。<span style="color: black;">这般</span><span style="color: black;">咱们</span>就<span style="color: black;">能够</span><span style="color: black;">掌控</span>内核针对报文的处理流程,结合 eBPF 的 redirect 能力<span style="color: black;">能够</span>将报文直接转发到对应的网络设备<span style="color: black;">或</span> socket,从而做到 kernel bypass。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">这儿</span>不得不提两类 hook 点:XDP 和 socket。XDP hook 是网卡收到报文后最早的 hook 点,<span style="color: black;">能够</span>实<span style="color: black;">此刻</span>网络驱动程序中拦截和处理报文。而 socket hook <span style="color: black;">能够</span>拦截连接<span style="color: black;">创立</span>、收发的报文,是应用层处理报文最早的 hook 点。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">不外</span>,eBPF 程序终究还是运行在内核态,应用层进行网络报文传输时还是避免不了内核态和用户态的上下文切换开销。<span style="color: black;">针对</span><span style="color: black;">能够</span>完全运行在内核态的应用,如安全检测、负载<span style="color: black;">平衡</span>等场景则<span style="color: black;">能够</span>避免这个开销。</p>
    <span style="color: black;">用户态协议栈</span>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">顾名思义,用户态协议栈是将协议栈的实现卸载到用户态来实现。卸载到用户态实现会带来几个好处:一是避免用户态和内核态的上下文切换;二是<span style="color: black;">按照</span>需要定制和精简协议栈的实现;三是调测和运维<span style="color: black;">亦</span>会更加方便。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">报文卸载到用户态<span style="color: black;">一般</span>采用 DPDK <span style="color: black;">或</span> AF_XDP 的<span style="color: black;">办法</span>。DPDK 是 Intel 主导的开源项目,<span style="color: black;">日前</span>主流网卡都支持,成熟且性能高,<span style="color: black;">不外</span><span style="color: black;">针对</span>虚拟口(如 veth 口)的支持<span style="color: black;">不足</span>好,在容器化场景受限。AF_XDP 是基于 eBPF 的报文卸载技术,<span style="color: black;">能够</span>实<span style="color: black;">此刻</span>网卡驱动层针对报文拦截并卸载到用户态,<span style="color: black;">针对</span><span style="color: black;">理学</span>网口<span style="color: black;">或</span>虚拟口的兼容性好,性能相比于 DPDK 稍差。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">用户态协议栈<span style="color: black;">一般</span>需要<span style="color: black;">研发</span>适配层来兼容 socket 接口,拦截 socket 调用并分发到用户态协议栈处理,<span style="color: black;">这般</span>应用层<span style="color: black;">能够</span>做到无需修改代码,完全无感知。</p>
    <span style="color: black;">RDMA</span>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">RDMA (Remote Direct Memory Access) 是一种高性能、低延迟的网络通信技术,它能够让计算机之间直接<span style="color: black;">拜访</span>彼此内存中的数据,从而避免了传统网络通信中的数据拷贝和 CPU 参与的过程。<span style="color: black;">因此</span>,RDMA 是一项软硬结合的网络性能优化技术,将网络传输卸载到 RDMA 硬件网卡中实现,<span style="color: black;">提高</span>性能的<span style="color: black;">同期</span><span style="color: black;">能够</span>将 CPU 节省出来给应用<span style="color: black;">运用</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">RDMA 的实现技术分为 InfiniBand、RoCE 和 iWARP。InfiniBand 是最早的实现方式,需要专门的硬件网卡和 InfiniBand 交换机<span style="color: black;">协同</span>组网,和以太网不兼容,成本高但性能最好。RoCE 基于以太网传输 RDMA 报文,<span style="color: black;">运用</span> UDP 封装报文,<span style="color: black;">一般</span>需要组建基于 PFC/ECN 的无损网络,否则丢包会<span style="color: black;">引起</span>性能劣化严重,总体性能较好,RoCE 的<span style="color: black;">重点</span><span style="color: black;">表率</span>是英伟达的 Mellanox 网卡。iWARP 基于 TCP,网络适应性好,但性能最差,<span style="color: black;">表率</span>是 Intel 网卡。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">RDMA 对外<span style="color: black;">供给</span> ibverbs 编程接口,和 socket 接口还是有<span style="color: black;">很强</span>区别,<span style="color: black;">不外</span>直接基于此进行应用代码改造理论上性能收益最大。Mellanox 网卡<span style="color: black;">这里</span><span style="color: black;">基本</span>上封装了 UCX 接口,还是<span style="color: black;">不可</span>做到完全兼容 socket 接口。由 Intel 和阿里主导的 SMC-R <span style="color: black;">能够</span>实现 socket 接口的完全兼容,<span style="color: black;">因为</span>封装后只能支持报文接收的中断模式而不支持 polling 模式,会<span style="color: black;">引起</span>性能有损失,底层只能适配 RoCE,<span style="color: black;">没法</span>兼容 iWARP。</p>
    <span style="color: black;">网络性能优化思路</span>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">性能优化是一个端到端的系统性工程,遵循二八原则,即 80% 的性能损耗在 20% 的处理流程上。<span style="color: black;">因此</span>优化前还是需要分析下<span style="color: black;">引起</span> 80% 性能损耗的 20% 的处理流程到底在<span style="color: black;">哪里</span>,是应用本身的处理<span style="color: black;">规律</span>还是网络传输层面。<span style="color: black;">一般</span><span style="color: black;">咱们</span><span style="color: black;">能够</span>先<span style="color: black;">运用</span>性能分析工具(如 perf)做一下分析,确定瓶颈点。即使确定是网络传输的瓶颈,<span style="color: black;">咱们</span><span style="color: black;">亦</span><span style="color: black;">能够</span>先从硬件配置和组网层面进行分析:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">网卡带宽<span style="color: black;">是不是</span>受限?如 10G 更换 25G <span style="color: black;">或</span> 100G 网卡</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">是不是</span>跨机房<span style="color: black;">拜访</span>?</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">是不是</span>经过网关?网关<span style="color: black;">是不是</span>有瓶颈?</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">理学</span>网络设备<span style="color: black;">是不是</span>有瓶颈?</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">是不是</span>经过虚拟网络?虚拟网络<span style="color: black;">是不是</span>有瓶颈?</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">另一</span>,<span style="color: black;">咱们</span><span style="color: black;">亦</span><span style="color: black;">能够</span><span style="color: black;">检测</span>下内核参数配置,如网卡多队列配置,收发队列<span style="color: black;">体积</span>配置,连接跟踪配置等。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">倘若</span>以上<span style="color: black;">检测</span>后<span style="color: black;">发掘</span>还是满足不了<span style="color: black;">需求</span>,网络传输依旧是瓶颈,就<span style="color: black;">能够</span><span style="color: black;">思虑</span><span style="color: black;">运用</span>针对内核态协议栈的性能优化技术。<span style="color: black;">那样</span> eBPF/ 用户态协议栈 /RDMA 技术<span style="color: black;">咱们</span><span style="color: black;">怎样</span>来<span style="color: black;">选取</span>呢?</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">从性能上<span style="color: black;">来讲</span>,RDMA &gt; 用户态协议栈 &gt; eBPF。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">RDMA 综合成本和性能,RoCE 用的最多,<span style="color: black;">不外</span> RoCE <span style="color: black;">日前</span>受限于无损网络,组网会有限制,<span style="color: black;">一般</span>限制在一个机房<span style="color: black;">乃至</span>一个 ToR 下。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">用户态协议栈<span style="color: black;">由于</span>协议栈的定制实现,<span style="color: black;">无</span>内核态协议栈的功能全面,<span style="color: black;">因此</span>应用的兼容性需要 case by case 的去做验证测试,比较适合于针对服务端的已知应用(如 Redis/Nginx/Envoy 等)的性能加速,而不太适合于<span style="color: black;">做为</span>一个通用的协议栈<span style="color: black;">供给</span>给所有应用<span style="color: black;">运用</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">eBPF 类似于给内核打补丁,哪里性能<span style="color: black;">欠好</span>就<span style="color: black;">能够</span>打上一个补丁,适合于小的性能优化点的修修补补。</p>
    <span style="color: black;"><span style="color: black;">实质</span>案例</span>
    <span style="color: black;">服务网格</span>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/sz_mmbiz_png/YriaiaJPb26VPmNXEcKz5zUkkCiarOtysT2CdHFDjMFVB8hGjJYZyeNOrtqHXcNib35OcD6Fm7oaokeBAJZdEdbKRg/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">服务网格<span style="color: black;">实质</span>优化时结合了 eBPF Sockops 和用户态协议栈技术。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">eBPF Sockops 注册了连接<span style="color: black;">创立</span>的 hook 点,将五元组信息<span style="color: black;">保留</span>到 sockmap 表中,后续报文发送<span style="color: black;">能够</span>直接<span style="color: black;">查找</span> sockmap 表后 redirect 到对端 socket,<span style="color: black;">这般</span>就 bypass 了内核协议栈。eBPF Sockops 适用于 Service 和 sidecar 之间链路的加速,<span style="color: black;">由于</span> Service 端应用的多样性不太适合<span style="color: black;">运用</span>用户态协议栈加速,而服务器内部进程间通信<span style="color: black;">亦</span>不太适合 RDMA 加速。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">用户态协议栈用来加速 sidecar 和 sidecar 之间的通信链路,<span style="color: black;">能够</span> bypass 掉 sidecar 之间通信的内核协议栈。<span style="color: black;">由于</span> sidecar 之间通信的链路不<span style="color: black;">必定</span>能组建无损网络,RDMA 加速不太合适。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">当前用户态协议栈<span style="color: black;">咱们</span>支持性能优先模式和兼容优先模式。性能优先模式中,底层<span style="color: black;">经过</span> DPDK 进行报文卸载,适用于<span style="color: black;">理学</span>口<span style="color: black;">或</span>虚拟 VF 口的场景,容器化场景<span style="color: black;">亦</span><span style="color: black;">能够</span>对接 SRIOV 的容器网络。兼容优先模式中,底层<span style="color: black;">经过</span> AF_XDP 进行报文卸载,适用于虚拟 veth 口的场景,<span style="color: black;">能够</span>支持<span style="color: black;">日前</span>主流的容器网络场景。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">另一</span>,用户态协议栈在<span style="color: black;">实质</span><span style="color: black;">运用</span>过程中可能会面临双栈的<span style="color: black;">需要</span>,即需要<span style="color: black;">同期</span>支持用户态协议栈和内核态协议栈。服务网格加速场景中 sidecar 和 Service 之间通信虽然<span style="color: black;">经过</span> eBPF 进行了加速,但本质上还是走内核。<span style="color: black;">因此</span>用户态协议栈<span style="color: black;">亦</span>需要支持<span style="color: black;">按照</span>路由配置来确定报文走内核态还是用户态协议栈。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/sz_mmbiz_png/YriaiaJPb26VPmNXEcKz5zUkkCiarOtysT29dTzYdKHy0vzksY1fbLZNE0ic8whEEBfavqJpUlMfGoKMboU41E1UEg/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">图中是兼容优先模式<span style="color: black;">最后</span>加速的效果。时延有 35-40% 的降低,其中用户态协议栈贡献 30% <span style="color: black;">上下</span>,eBPF 贡献 8% <span style="color: black;">上下</span>。</p>
    <span style="color: black;">存储</span>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Curve 存储是网易自研开源的分布式存储服务。在 Curve 块存储的<span style="color: black;">研发</span>及优化过程中,<span style="color: black;">咱们</span><span style="color: black;">发掘</span><span style="color: black;">做为</span>分布式系统,客户端需要<span style="color: black;">经过</span>网络和存储节点通信,存储节点之间<span style="color: black;">亦</span>需要网络通信来完成多副本之间的一致性协商过程。在传统的 TCP/IP 网络协议栈中,网络数据包需要在用户态 / 内核态之间进行拷贝、TCP/IP 协议的层层解析和处理,消耗了<span style="color: black;">海量</span>的 CPU 和内存带宽。<span style="color: black;">因此</span><span style="color: black;">咱们</span>引入 RDMA 的 RoCE v2 技术来优化这部分的网络性能,存储组网相对可控,交换机进行 PFC/ECN 的无损网络配置,结合网卡的 DCQCN 拥塞<span style="color: black;">掌控</span>算法<span style="color: black;">能够</span>实现基于无损网络的 RDMA 组网。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在<span style="color: black;">实质</span>的适配过程中,<span style="color: black;">运用</span> UCX 接口来加速客户端和存储节点以及存储节点之间的的 RPC 通信,<span style="color: black;">这般</span><span style="color: black;">能够</span>降低整体的<span style="color: black;">研发</span>难度及对业务代码的侵入修改。为了<span style="color: black;">保准</span><span style="color: black;">靠谱</span>且<span style="color: black;">有效</span>的 RDMA 报文传输,一方面,<span style="color: black;">咱们</span>与交换机厂商进行密切沟通,分析并摸索<span style="color: black;">创立</span>了一套适合于系统的 ECN+PFC 配置方式;另一方面<span style="color: black;">咱们</span>与网卡厂商<span style="color: black;">一起</span>分析网卡 DCQCN 拥塞<span style="color: black;">掌控</span>参数对 RDMA 流量传输的影响,<span style="color: black;">最后</span>得出最适宜的网卡参数配置。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">加速的效果:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在单深度 4K 随机写场景下,平均延迟降低 35%;4K 随机读,平均延迟降低 57%;</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">与杭研云原生数据 BosonDB 完成对接测试和上线。在数据库比较关注的 16K 随机 / <span style="color: black;">次序</span>写中,IOPS <span style="color: black;">提高</span><span style="color: black;">最少</span> 25%。</p>
    <span style="color: black;">总&nbsp; &nbsp; 结</span>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">随着云计算,大数据和 AI 等技术的<span style="color: black;">持续</span>发展,<span style="color: black;">海量</span>的计算资源之间的交互越来越频繁,对网络的<span style="color: black;">需求</span><span style="color: black;">亦</span>越来越高,臃肿的内核协议栈处理<span style="color: black;">逐步</span><span style="color: black;">作为</span>网络传输的瓶颈所在。本文介绍几种内核协议栈的优化技术、<span style="color: black;">关联</span>的应用场景以及<span style="color: black;">实质</span>的优化案例,供<span style="color: black;">大众</span>参考。</p>
    作者简介: <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">汪翰林</strong>,网易数帆高级技术专家,云网络数据面负责人。近 20 年软件架构、设计和<span style="color: black;">开发</span>经验,曾就职于华三和华为,主持多个安全、视频监控、大数据和云计算等技术<span style="color: black;">行业</span>的<span style="color: black;">制品</span>设计和<span style="color: black;">开发</span>工作。<span style="color: black;">日前</span>在网易数帆专注于高性能网络技术预研和<span style="color: black;">制品</span>化落地,带领团队完成 VPC 网络 / 容器网络 / 服务网格 / 存储 /P4 网关等多个场景下的高性能网络套件在网易集团内部落地以及<span style="color: black;">商场</span>化输出工作。</p><span style="color: black;">今日好文<span style="color: black;">举荐</span></span><a style="color: black;">微软裁员内幕</a><a style="color: black;">Angular 重磅回归</a><a style="color: black;">安息吧,元宇宙</a>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><a style="color: black;">裁错了还是变相降薪?大厂粗暴裁员后又求员工回来,网友:拿什么再爱你?</a></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_gif/YriaiaJPb26VNBX66P2F9dF2yuYfbcibGMuaBYgvK62MGPE9HhgU2vptFAUZdaO2cGKCsP4h1DnibIGywKSkFv9b6g/640?wx_fmt=gif&amp;wxfrom=5&amp;wx_lazy=1&amp;tp=webp" style="width: 50%; margin-bottom: 20px;"></p>




qzmjef 发表于 2024-9-10 11:16:31

我深感你的理解与共鸣,愿对话长流。

j8typz 发表于 2024-9-26 17:50:14

你的见解真是独到,让我受益良多。

wrjc1hod 发表于 2024-10-12 23:13:14

感谢楼主的分享!我学到了很多。
页: [1]
查看完整版本: 从服务网格看,怎么样做好通用的网络性能优化?