解耦IPC,实现计费系统高性能水平扩展-V1分析.docxVIP

解耦IPC,实现计费系统高性能水平扩展-V1分析.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
解耦IPC,实现计费系统高性能水平扩展-V1分析

PAGE  PAGE 11 1、背景摘要 目前移动业务支撑中心计费、账务处理环节为计费系统中非常重要的一个环节,该环节直接对每秒钟数以万计的话单进行处理,并联合各种业务规则和账户情况进行实时计算和实时处理,最终保障数以千万计的客户权益能够得到实时保障和及时响应。 为了提升数据处理及访问性能,目前普遍采用了国内目前最高性能的小型机集群进行数据的并行处理,但在该集群运行过程中,出于性能考虑,许多进程与进程之间、进程与内存数据库之间都是通过IPC的方式进行内存数据访问,从而能够达到最小的时延和最佳的处理性能。 随着业务发展,目前的计费系统小型机集群并行化处理能力已经面临严重的技术发展阻碍: 由于内存数据库会损耗大量内存,而每台内存数据库所存在的小型机上内存已经扩展到了极致,而新的业务功能模块不断上线,这其???如果是需要访问内存库的业务应用,则需要和内存库部署在一台主机上,否则通过TCP/IP的方式访问,性能将极大降低,无法满足业务处理需求;几年下来,通过垂直扩展的方式进行硬件扩展已经变得不太可行,目前将内存数据库和相关应用程序部署在同一主机上,主机的性能负载就会处于高负荷临界状态,导致很多应用甚至文件系统Cache都无法得到原有的规划资源和保障;另一方面主机负荷一直处于临界状态下,故障频发,长久往后这个现象将更加严重甚至变得无法解决。 目前的并行处理基本是人为将业务量拆分为多个逻辑上可以分割的单元,然后交由不同的主机进行处理,但一旦出现故障的情况下,由于单台主机上的业务处理模块完全是紧耦合关系,这些模块无法平均的分散到不同的主机上进行承载,因为一旦分散,进程间通讯(IPC)将无法实现,而远程TCP/IP通讯造成的长时延不可接受;由于业务的不断扩展,集群系统中已经没有了专门的热备机器,而任何一个单一节点的主机都无法负载两个节点的业务量,必须将进程间的关联(IPC)充分解耦,才能实现真正的并行处理和业务模块灵活分布。 本文的关键点在于通过解耦移动计费环节的进程紧耦合关系,从而达到平台水平扩展的能力,同时解决现有的内存资源紧张问题(将内存数据库拆分出去),即解决目前的资源瓶颈问题,也提供了一个可供长久发展的技术支撑。 下面我们来描述该方法的思路及落地方法。 2、解决方案 目前的系统架构概述: 对于时延非常敏感的信息交互,目前都是采用进程间直接通讯的方式实现,该方式可以有两种实现方法,如下图所示: 从图中可以看出,第一种进程间数据交互的方式是CPU通过内部寄存器存储应用程序内存区段的数据,并且将其交付到另一个需要该数据的应用程序;另一种方法,进程间通过一个共享内存区域来共享数据。这两种方式都位于同一台主机,其交互的性能是最佳的。目前的系统采用的基本都是这种架构,实现了最佳的性能,但随着业务扩展,其进程与进程之间的紧耦合部署方式弊端也就凸显了出来。 采用TCP/IP解耦IPC的逻辑分析 解耦进程间的紧密关系并不复杂,我们只要引入以太网技术,采用TCP/IP来实现远程的消息传递,即可以实现解耦,下面我们来分析一下这种方式下的数据传递方法。 数据发送端(图中带箭头的虚线表示数据传输路径): 数据接收端(图中带箭头的虚线表示数据传输路径): 整个过程从发送端来看,CPU通过总线从程序内存区域读取数据到内部寄存器,接下来CPU将寄存器中的数据通过总线写入到系统内存区,网卡通过总线从系统存储区取出数据;当数据到达接收端时,网卡通过总线将数据写入到系统内存区,CPU通过总线从系统内存区中读取数据到内部寄存器,最后CPU通过总线将数据写入到接收端的引用程序内存区段,这次数据传输完成。 这种方式物理部署架构较为成熟简单,但另一方面,一次完整数据传输在主机内部会涉及6次总线调用,6次数据复制,因此带来多次复制的延时开销和CPU开销;预计业务的处理能力将下降比较严重。后面章节将会陈述几种主要场景的性能测试数据。 采用TCP/IP方式进行解耦,对于目前的业务软件而言还要进行大量的改造工作才能在TCP/IP基础上实现目前的进程间数据传输功能,因此会有较大量的改造工作量。 采用RDMA解耦IPC的逻辑分析 RDMA(Remote?Direct?Memory?Access)全名是远程直接数据存取,RDMA让计算机可以直接存取其它计算机的内存,而不需要经过处理器耗时的传输。RDMA具有使一台计算机可以直接将数据通过网络传送到另一台计算机内存中的特性,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这项技术通过消除外部存储器复制和文本交换操作,因而能腾出总线空间和CPU周期用于改进应用系统性能,从而减少对带宽和处理器开销的需要,显著?降低了时延。? 数据发送端(图中带箭头的虚线表示数据传输路径): 数据接收端(图中带箭头的虚线表示

文档评论(0)

586334000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档