下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一种高性能分布式数据缓存系统设计刘清(南京高等职业技术学校,南京210046)摘要:针对大规模实时性处理的需要,提高海量数据处理的效率,本文提出了一种高性能的分布式缓存服务系统模型。该系统选用epoll模型来解决系统的并发量瓶颈,使用优秀的memcached服务器来缓存用户的热点请求资源,同时结合优化调整后的mysql磁盘数据库来保障数据的冗余性。经过测试后,性能提高显著,可以为今后的高并发、分布式的数据服务系统的设计提供一个新的思路。关键词:Epoll;Memcached;分布式;数据缓存TheDesignofAHigh-performanceDistributedDataCacheSystemLiuQing(CollegeofTelecommunication&InformationEngineering,NanjingUniversityofPostsand
Telecommunications,Nanjing210046,China)Abstract:Accordingtotheneedsoflarge-scalereal-timeprocessingandtheneedsofimprovingtheefficiencyofmassdataprocessing,thispaperputsforwardakindofhigh-performancedistributedcacheservicesystemmodel.Thissystemchoosestheepollmodeltosolvethesystemconcurrencyvaluebottleneck,usesexcellentMemcachedservertocachetheuser’shotrequests,andcombineswiththeoptimizedmysqldiskdatabasetoguaranteetheredundancyofthedata.Aftertesting,thissystemhasagoodperformance,anditcanprovideanewthoughtforthehighconcurrent,distributeddataservicesysteminthefuture.Keywords:Epoll;Memcached;Distributed;Datacache1引言随着现代通信技术高速的发展,随之出现的服务用户量的迅速增加,直接导致运营商所要处理的数据呈现海量的增长,这些都对当前电信运营商的业务支撑系统提出了新的要求,也对运营支撑系统的稳定性、准确性和实时性提出了更严峻的挑战。传统的电信业务数据的处理采取的是一般的磁盘数据库,基于文件系统的特性使性能提升受到了很大的限制,但是随着业务处理模式日趋复杂,电信业用户数的增长,传统的方式必然会导致系统CPU和I/O占用不断成线性增加,在此情况下,即使增加硬件支持,在现有框架下系统的处理速度也很难得到质的提高。在这样的背景下,对于高性能分布式数据缓存技术的研究,成为电信运营商和电子商务平台,包括其它业务高速增长的企业都亟待面临解决的问题和挑战。其高并发性、低延迟和高效性的要求,对系统的架构设计、性能指标等各方面都提出了新的挑战【1】。文章将结合以上要求,提出一种分布式数据缓存技术的系统模型NuptCache,在Linux平台下使用C语言设计开发并进行性能测试,验证此模型能够达到设定的要求,能够更快更稳定地处理用户的请求,保证系统服务的连续性。2系统模型框架NuptCache系统的设计目标是针对大规模实时性处理的需要,提高海量数据处理的效率和加入分布式内存缓存技术来实现对数据处理的低时延处理。选择epoll模型【2】【3】来增强NuptCache系统的并发量;使用memcached缓存技术【4】【5】与mysql磁盘数据库相结合,memcached服务器作为数据库的前端,其中存放用户经常访问的热点资源,如存在,则将相应的数据直接取出反馈给用户,如果不存在,则查询mysql数据库,在结果返回给用户的同时,同步到memcached缓存服务器。作者简介:刘清(1980〜),南京高等职业技术学校教师,研究方向:无线通信与信号处理技术。
NuptCache分布式数据缓存系统共分为三层,分别为epoll接口层,memcached缓存层,mysql数据层。为了保证系统运行的高效性,NuptCache没有设置身份认证机制,本文将NuptCache系统部署在内网防火墙后面,确保通信的安全。用户通过网络与服务提供商系统的epoll接口层通信,调用缓存层数据,如没有得到想要的信息则与数据层进行通信,返回数据的同时同步到缓存层。3系统内部设计3.1Epoll接口层设计Epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。相较于传统的事件分派通告机制select/poll,Epoll只告之准备就绪的socket文件描述符,当我们调用epoll_wait()获得准备就绪的socket文件描述符时,返回的并不是实际的描述符,而是一个代表就绪描述符数量的值,只需去epoll指定的一个数组中,依次取得相应数量的文件描述符,这里使用了内存映射(memorymapping)技术,彻底省去了socket文件描述符在系统调用时复制的开销。并且它采用了基于事件的就绪通知模式⑹,使得在相同硬件平台上可以支持更多的网络并发连接,并且满足网络应用的实时通信需求。图2epoll接口层的工作流程本系统使用epoll加多线程模型⑺⑻,能够提高系统的响应速度,让网络I/O和数据计算相互重叠,降低系统延迟。本系统使用单独的线程来管理epoll模型的网络I/O,当系统接收到请求数据后,在开辟的已有线程池中查找空闲线程,并予以分配资源进行数据处理,同时epoll模型继续监听活动网络事件,与数据处理线程并行处理,当系统处理信息完毕时,将数据反馈给用户,同时释放占有的线程资源。该模型能有效地划分责任与功能,而不是把所有逻辑都塞到一个eventloop里,让每个线程逻辑比较简单。intmain(intargc,char*argv){InitThreadPool();〃线程池初始化for(i=0;i<LISTEN_MAX;i++)//初始化服务监听{s_listens[i].port=10000+i;rc=InitListen(s_listens[i].ip,s_listens[i].port);〃创建监听}epfd=epoll_create(65535);〃设置集合for(i=0;i<LISTEN_MAX;i++){ev.events=EPOLLIN;//加入epoll事件集合if(epoll_ctl(epfd,EPOLL_CTL_ADD,s_listens[i].fd,&ev)<0)…}for(;;)//服务循环{epoll_wait(epfd,events,LISTEN_MAX,-1);〃等待epoll事件for(i=0;i<nfds;i++)〃处理epoll事件{//接收客户端连接sock_cli=accept(sock_listen,(structsockaddr*)&addr4,&addrlen);〃查询空闲线程・・・}3.2缓存层和数据层设计对于缓存服务而言,命中率是至关重要的。命中率的提升可以通过采取有效的冗余策略来实现。memcached的设计本身不带任何冗余机制,文中将其与mysql磁盘数据库进行了数据冗余机制图3缓存层和数据层的工作流程图memcached缓存层和mysql数据层的工作流程如图3所示,将memcached和磁盘数据库mysql的配合使用,memcached服务器作为NuptCache系统的缓存层,用户首先通过指定的get操作访问memcached服务器,如果存在相应的数据则直接获取出数据结果,查询过程不需要查询数据层的mysql数据库;如果不存在,则查询mysql数据库,将结果返回给查询者,并以key相应的value值形式将查询结果存储在memcached服务器中。4NuptCache系统运行效果及测试4.1系统测试环境硬件环境:本测试使用了两台主机作为NuptCache系统的服务器端,测试使用了一台主机运行mysql数据库,一台主机运行epoll模型和3个memcached缓存。另外还使用了四台主机运行客户端测试程序,每台机器都模拟并发连接,向服务器端发送查询请求。软件环境:在安装mysql和memcached软件之前还需要将所要用到的库文件进行安装,安装的软件包为mysql5.1.30、libevent、memcached、libmemcached-0.26;系统的运行环境为suselinuxenterpriseserver。测试场景:我们在mysql中创建表,存储引擎选择为InnoDB,表中存在两列,第一个表列key属性为char(40),存放的是文件被用sha1哈希方式得出的40个字符,我们可以通过系统的随机数函数生成1万到100万个不同的40个字符的key值来进行测试,将此列作为唯一索引;第二个表列value属性为varchar(800),存放的是key值所匹对的数据,可以是图片信息,或者是字符串信息,同样可以使用随机数函数模拟生成。4.2系统测试结果对高性能分布式数据缓存系统NuptCache的测试主要分为功能测试和性能测试。功能测试包括能够处理大并发量的请求、能够对memcached缓存层已有的数据进行查询、对于在缓存层中未命中的数据进行二次查询并与缓存同步,并统计用户查询的命中率。linux-9:/Desktop/mcachs#memstat一-server^lO.W.9,£Listing1ServerServer:(11211)pid:1875uptime:97time:1271589680version:L2.6poinTer_size:64rusage_iJser:0.140008rusage_system:0.300018curr,:1111bytes:909Curr^Corinectioni;5total_connections:10009cmd_get:10000cmjset:1geVhits:9999get_misses:1•图4:NuptCache系统的命中率如图4所示,可以从橙色区域看到,mcahce系统接收到10000次的数据请求查询,在系统数据层响应了一次,经过同步后,将其映射到缓存层。在接下来的9999次查询中,用户每次都能从NuptCache系统的缓存层得到响应,从而验证了NuptCache系统的高命中率。性能测试主要包括在两种情况下,即有缓存层和epoll接口层的NuptCache系统与只使用优化后的磁盘数据库mysql的环境下,在系统并发量处理数量和数据请求的系统平均处理时间的对比。
图5系统的并发处理时间对比图图6相同并发量数据请求的系统平均处理时间测试图5系统的并发处理时间对比图图6相同并发量数据请求的系统平均处理时间测试我们可以清楚的从图5上看出,在并发数达到2000时,mysql数据库由于本身并发数的限制,拒绝继续测试,而NuptCache系统在处理10000并发连接时,仍能够稳定运行,时间查询消耗仅0.49s。从图6中可以看出,在相同并发量请求的情况下的数据查询消耗时间,随着缓存层数据量的增大,并没有明显的加长。和只有优化过的mysql磁盘数据库相比,有着明显的优势。这和NuptCache系统的分布式散列对象到不同的memcached缓存服务器,查询复杂度是O(1)有很大的关系。5结束语文中指出传统数据存储和处理的模式在为海量用户服务时的不足,提出了一种高性能分布式缓存系统NuptCache的原型,系统采用了epoll加多线程模型来提高系统的吞吐量,通过memcached缓存服务器与mysql磁盘数据库进行的数据冗余机制提升命中率。文中还对NuptCache系统进行了详细的功能和性能测试,功能测试包括系统能否处理大并发量的请求,能否对NuptCache系统的缓存层中存放的热点数据进行查询,能否对在缓存层中未存储的数据进行处理并同步至缓存;性能测试主要包括系统并发量处理能力和系统处理请求数据的平均时间的对比,突出NuptCache系统的性能优势,为今后的高并发、分布式的数据服务系统的设计提供一个新的思路。参考文献:MitraNasri,MohsenSharifi.LoadBalancingUsingConsistentHashing:ARealChallengeforLargeScaleDistributedWebCrawlers[R].Proceedingsofthe2009InternationalConferenceonAdvancedInformationNetworkingandApplicationsWorkshops,pages715-720,2009.05.sys_epoll-makingpollfast[EB/OL]./Articles/14168,2005.LouayGammo,TimBrecht,AmolShuklaandDavidPariag.Com
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鸡舍施工方案
- 泰商会营销方案
- 系举行活动策划方案
- 汉服唱歌活动方案策划
- 心理咨询室工作方案范文
- 医美咨询工作室设计方案
- 复古餐厅活动方案策划
- 酒馆线上活动策划方案
- 模板施工绿色施工方案
- 卤菜社群营销方案
- 2025年中小学教师职称评定答辩题(附答案)
- 国开2025年《行政领导学》形考作业1-4答案
- 英语三级词汇表
- 化工总控工(技师高级技师)考试题库-导出版
- 《电的简单认识》一年级家长进课堂安全用电主题教育PPT
- 露天矿开采工艺课件
- GB/T 5005-2010钻井液材料规范
- 金龙湾水上旅游建设填海项目工程可行性研究报告
- 颈源性耳鸣的临床研究-中日友好医院针灸科李石良课件
- 颜色标准LAB值对照表
- (机构适用)上海市2021年中考语文冲刺(考点梳理+强化训练)08 记叙文阅读(一)整体把握(含答案)
评论
0/150
提交评论