0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

多路复用实现单服百万级别RPS吞吐的办法

电子设计 2018-10-23 10:48 次阅读

多路复用其实并不是什么新技术,它的作用是在一个通讯连接的基础上可以同时进行多个请求响应处理。对于网络通讯来其实不存在这一说法,因为网络层面只负责数据传输;由于上层应用协议的制订问题,导致了很多传统服务并不能支持多路复用;如:http1.1,sqlserver和redis等等,虽然有些服务提供批量处理,但这些处理都基于一个RPS下。下面通过图解来了解释单路和多路复用的区别。

单路存在的问题

每个请求响应独占一个连接,并独占连接网络读写;这样导致连接在有大量时间被闲置无法更好地利用网络资源。由于是独占读写IO,这样导致RPS处理量由必须由IO承担,IO操作起来比较损耗性能,这样在高RPS处理就出现性能问题。由于不能有效的合并IO也会导致在通讯中的带宽存在浪费情况,特别对于比较小的请求数据包。通讯上的延时当要持大量的RPS那就必须要有更多连接支撑,连接数增加也对资源的开销有所增加。

多路复用的优点

多路复用可以在一个连接上同时处理多个请求响应,这样可以大大的减少连接的数量,并提高了网络的处理能力。由于是共享连接不同请求响应数据包可以合并到一个IO上处理,这样可以大大降低IO的处理量,让性能表现得更出色。

通过多路复用实现百万级RPS

多路复用是不是真的如此出色呢,以下在.net core上使用多路复用实现单服务百万RPS吞吐,并能达到比较低的延时性。以下是测试流程:

由于基础通讯不具备消息包合并功能,所以在BeetleX的基础上做集成测试,主要BeetleX会自动合并消息到一个Buffer上,从而降低IO的读写。

测试消息结构

本测试使用了Protobuf作为基础交互消息,毕竟Protobuf已经是一个二进制序列化标准了。

请求消息






整个测试开启了10个连接,在这10个连接的基础上进行请求响应复用。

测试配置

测试环境是两台服务器,配置是阿里云上的12核服务器(对应的物理机应该是6核12线程)

服务和客户端的系统都是:Ubuntu 16.04

Dotnet core版本是:2.14

测试结果

客户端统计结果

服务端统计信息

带宽统计

测试使用了10个连接进行多路复用,每秒接收响应量在100W,大部分响应延时在1-3毫秒之间。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 多路复用
    +关注

    关注

    0

    文章

    36

    浏览量

    25538
收藏 人收藏

    评论

    相关推荐

    [6.4.1]--多路复用

    多路复用数字逻辑
    李开鸿
    发布于 :2022年11月13日 01:18:45

    16位1MSPS多路复用数据采集系统

    、一个参考驱动器和一个多路复用器。该设计显示了优化端 DAQ 以在采样率为 1MSPS 时实现快速趋稳的过程。主要特色1/2 LSB 趋稳时间为 390 ns吞吐量为 1MSPS4
    发表于 11-07 14:48

    AD8184-EB是用于视频路由和多路复用系统的路4:1模拟多路复用器评估板

    AD8184-EB,用于视频路由和多路复用系统的路4:1模拟多路复用器评估板。 AD8184评估板经过精心布局和测试,可演示器件的指定高速性能
    发表于 06-17 06:28

    用于视频路由和多路复用系统的路2:1模拟多路复用

    AD8170-EB,用于视频路由和多路复用系统的路2:1模拟多路复用器评估板。 AD8170评估板经过精心布局和测试,可演示器件的指定高速性能
    发表于 06-17 16:47

    AD8174缓冲模拟多路复用

    AD8174-EB,用于视频路由和多路复用系统的路4:1模拟多路复用器评估板。 AD8174评估板经过精心布局和测试,可演示器件的指定高速性能
    发表于 06-17 09:58

    多路复用技术

    2.3  多路复用技术2.3.1  频分多路复用2.3.2  时分多路复用2.3.3  波分多路复用2.3.4  码分
    发表于 06-27 21:46 0次下载

    基于CPLD的非多路复用多路复用总线转换桥的设计与实现

    基于CPLD的非多路复用多路复用总线转换桥的设计与实现 微处理器对外并行总线接口方式一般分为两种,一种为多路复用方式,数据与地址采用共用引脚,分时传输;另一
    发表于 03-28 15:08 843次阅读
    基于CPLD的非<b class='flag-5'>多路复用</b>与<b class='flag-5'>多路复用</b>总线转换桥的设计与<b class='flag-5'>实现</b>

    多路复用多路复用总线转换桥的设计与实现

    多路复用多路复用总线转换桥的设计与实现 提出了一种新颖的非多路复用总线与多路复用总线的转换接口电路。以两种总线的典型代表芯片TMS
    发表于 03-28 15:14 943次阅读
    非<b class='flag-5'>多路复用</b>与<b class='flag-5'>多路复用</b>总线转换桥的设计与<b class='flag-5'>实现</b>

    多路复用多路复用总线转换桥的设计与实现

    摘要:提出了一种新颖的非多路复用总线与多路复用总线的转换接口电路。以两种总线的典型代表芯片TMS320F206与SJA1000为例,分
    发表于 06-20 13:20 771次阅读
    非<b class='flag-5'>多路复用</b>与<b class='flag-5'>多路复用</b>总线转换桥的设计与<b class='flag-5'>实现</b>

    复用器的多路复用

    复用器的多路复用  多路复用
    发表于 01-07 14:27 1183次阅读

    时分多路复用(TDM),时分多路复用(TDM)的原理是什么?

    时分多路复用(TDM),时分多路复用(TDM)的原理是什么?  为了提高信道利用率,使多个信号沿同一信道传输而互相不干扰,称
    发表于 03-19 14:07 1w次阅读

    什么是异步时分多路复用(ATDM)

    什么是异步时分多路复用(ATDM) 异步时分多路复用技术 (ATDM,Asynchronism Time-Division Multiplexing)
    发表于 04-03 15:25 1876次阅读

    时分多路复用(TDM),时分多路复用(TDM)是什么意思

    时分多路复用(TDM),时分多路复用(TDM)是什么意思 这种方法是把传输信道按时间来分割,为每个用户指定一个时间间隔,每个间隔里传输信号
    发表于 04-03 15:28 5841次阅读

    AN-32:JFET多路复用器的电源工作

    AN-32:JFET多路复用器的电源工作
    发表于 05-27 08:36 3次下载
    AN-32:JFET<b class='flag-5'>多路复用</b>器的<b class='flag-5'>单</b>电源工作

    频分多路复用和时分多路复用的区别有哪些

    频分多路复用(FDM)和时分多路复用(TDM)是两种主要的多路复用技术,它们在通信系统中扮演着至关重要的角色。
    的头像 发表于 05-07 15:24 2202次阅读