-1-中国科技论文在线海量用户高并发情况下的web系统优化邹猛,王丹志**作者简介:邹猛(1991-),男,汉族,山东人,北京邮电大学电子工程学院,学生,电子科学与工程专业通信联系人:王丹志(1964-),男,汉族,北京人,北京邮电大学电子工程学院,副教授,无线通信技术与电子系统设计.
E-mail:danzhiwang@bupt.
edu.
cn(北京邮电大学电子工程学院,北京100876)5摘要:随着互联网的发展,很多Web系统是面向全国用户提供互联网服务,当系统的访问量逐渐增多,从十万到百万到千万甚至过亿的扩大过程中,Web系统的后台服务会面临越来越大的压力,极端情况下会造成系统卡顿甚至崩溃.
本文旨在研究解决海量用户海量请求造成的系统压力问题,从负载均衡、缓存技术、数据库调优、分布式部署角度进行Web系统的优化,最终进行系统部署和测试,验证方案的可行性和有效性.
10关键词:负载均衡;缓存;数据库调优;分布式部署中图分类号:TP302.
7WebSystemOptimizationonVastUsersAndHighConcurrentRequests15ZOUMeng,WANGDanzhi(Schoolofelectricalengineering,BeijingUniversityofPostsandTelecommunications)Abstract:WiththerapiddevelopmentofInternettechnology,ManywebsystemprovideInternetservicesfacingthewholecountryusers,whenthesystemoftrafficincreasegradually,fromthousandstomillionstomillionsorevenbillionsofexpandingprocess,thewebsystembackgroundserviceswill20faceincreasingpressure,finallymaycausecatonsystemsorevencollapse.
Thepurposeofthispaperistostudytosolvetheproblemofthesystempressureonthemassiveusercausedmassiverequest,fromthebalancedload,tosetupthecaching,databasetuning,distributeddeploymenttooptimizationwebsystem,andachievedremarkableresults.
Keywords:Loadbalancing;Cache;Databaseoptimize;distributed250引言"互联网+"是引领社会发展变革的全新理念,推动了以互联网为核心的网络秩序和产业业态的逐步形成[1].
最近十年间,互联网已经从一个单纯的用于科研的,用来传递静态文档的美国内部网络,发展成了一个应用于各行各业的,传送着海量多媒体及动态信息的全球网络.
从规模上看,互联网在主机数、带宽、上网人数等方面几乎一直保持着指数增长的趋势.
30另一方面,互联网所传递的内容也发生了巨大的变化,早期互联网以静态、文本的公共信息为主要内容,而目前的互联网则传递着大量的动态、多媒体及人性化的信息,人们不仅可以通过互联网阅读到动态生成的信息,而且可以通过它使用电子商务、即时通信、网上游戏等交互性很强的服务.
因此,可以说互联网已经不再仅仅是一个信息共享网络,而已经成为了一个无所不在的交互式服务的平台.
35互联网规模不断扩大,用户群爆炸式增长,以及Web2.
0到Web3.
0的"量变"-"质变"的飞跃[2],对互联网系统提出了新的要求:高性能、高并发、高稳定性.
本文面向海量用户的高并发应用场景,提出了Web系统的优化方案,并进行了系统部署、测试.
http://www.
paper.
edu.
cn-2-中国科技论文在线1系统的负载均衡服务器端的负载均衡是实现服务器集群任务分发的一种机制,这种机制对于服务器的利40用率,保障服务器高效运行,减少过载或者空闲等不良情况,具有十分重要的作用.
通过多服务器协同处理客户的请求,从而在多个服务器之间分担负载,以减轻单个服务器处理报文的负担,并保证整个系统对客户的透明[3].
如图1是其模式图:图1负载均衡45Fig.
1Loadingbalance1.
1负载均衡实现方案实现负载均衡机制由多种实现方案,云护理平台利用Nginx服务做反响代理,其最重要的作用是对HTTP请求进行转发,是后端服务器与前端的中间中转桥梁.
Nginx组件使用灵活,可配置项很多,可以实现定制.
但是引入Nginx后随之带来的问题是云护理后台系统中50的共享session不能像单机时那么使用,因为请求是根据服务器情况随机转发的,从一台机器保存session可能导致别的机器该session没有数据.
为了解决以上问题,本文提出了两种方案:第一种是对Nginx的转发规则进行设置,保证当相同用户发出的请求可以在相同的后台服务器上得到服务,避免全集群的跳转.
这种实现方案要基于前端用户的cookie,转发规则55的解析和运行会增大系统开销,有其局限性.
第二种是专门配置一台服务器做session存储,比如redis、memcache等缓存型数据库,这样所有的需要session认证的请求都会从同一台机器回去,保证了一致性,也有很高的效率.
1.
2负载分配算法60发送者分配算法:首先,发送引入一个阈值M将系统中的事务处理节点划分为轻负载节点和重负载节点,所有当前剩余负载t>M的节点称为重负载节点,t
设该节点的负载为,系统中还有K个节点,其负载分别为,…,,则系统的平均负载为:65http://www.
paper.
edu.
cn-3-中国科技论文在线为了达到负载均衡,应求得重负载节点应该传递其它节点的负载量,为了避免负载被迁移到系统中重负载节点上,引入,如果<,则=0,那么为:最后,该节点就可以按照mk向系统中的其它节点发送事务,保证负载均衡.
70权重轮询分配算法:根据分布式系统中每台服务器的事务处理能力,为其分配不同的权重值,,,…分别表示系统中各个节点的负载能力;,…表示系统中各个节点的负载能力权重值;L表示分布式数据库系统的平均负载值,则L为:分布式数据库系统中的事务分配算法不局限于某一个算法,而是根据系统的不同部署情75110况对算法进行选择或组合,根据系统负载分配情况进行实时调整,这样可以提高系统中每个数据库的性能和可用性.
2系统缓存的搭建与优化Web站点性能良好、用户访问时延小,已经成为一个网站长远发展的核心竞争力[4].
缓存具有快速、方便、可扩展的特性,缓存的加入可以保持热点数据的快速访问,减少磁盘检80索的次数,减少数据库服务器的压力,给予用户快速的相应.
图2缓存Fig.
2Cache2.
1缓存静态页面85当用户对某个页面发起请求时,此页面可能与上次请求的内容一直,即没有发生数据更新.
比如网站的文章信息、个人简介、新闻的过时报道、用户的基本信息等,这些数据很少会发生变更.
如果每次请求都是直接访问静态页面,而不是每次都需要后端服务器进行渲染,那么每次请求将十分迅速,并且可以减少服务器的压力.
使用CGI生成静态页面,然后缓存到云护理后端服务器的磁盘,下次请求直接返回该文件即可.
90http://www.
paper.
edu.
cn-4-中国科技论文在线图3静态化Fig.
3Staticize进一步,随着云护理后台系统的不断庞大,磁盘中可能出现大量缓存的静态文件,但是也会存在一大堆失效或者旧的静态文件,管理十分不便.
于是消息系统随之进行了二次优化,95使用redis服务器搭建独立的缓存系统,使用KEY/VALUE的形式和LRU算法可以十分方便地进行集中式缓存文件管理.
图4Redis缓存Fig.
4RedisCache1002.
2缓存集群将缓存独立成单独地服务好,很好的解决了管理混乱的问题,但是随之带来的是单点服务问题,如果只采用单点服务,那么当缓存服务宕机后可能给整个云护理平台带来灭顶之灾.
所以必需进行缓存集群搭建.
Rediscluster以主从机进行水平扩展,每个结点都可以提供缓存服务,当有某个结点挂掉后,集群马上激活备份机器,避免影响云护理平台系统.
105http://www.
paper.
edu.
cn-5-中国科技论文在线图5Redis集群Fig.
5RedisCluster图6Redis架构110Fig.
6Redisarchitecture2.
3缓存数据库修改指令数据库里的最大瓶颈就是写操作,写入磁盘需要调用底层操作系统指令,而且要寻址和进行磁盘运算,十分耗费时间.
在云护理平台中,当大量消息需要写入消息系统时,先将修改的请求缓存起来,做成一个缓存队列,当队列到达某个阈值时,统一进行修改,这样就把115单次修改指令,变成了批处理.
大大减少了磁盘IO的开销,提高数据库效率.
图7缓存指令Fig.
7Instructioncache3数据库层的优化120用户量的飙升和海量请求压力的解决单靠增加服务器数量,是需要很大成本、有很多局限性的.
其中数据库也是海量用户下的瓶颈之一,Web后台服务系统引入数据缓存、分库分表、主从备份、读写分离解决数据库瓶颈问题.
http://www.
paper.
edu.
cn-6-中国科技论文在线3.
1数据库分区、分表当数据量呈现爆炸时增长,或者系统使用时间很长,在MySQL数据库里存储了大量数125据时,数据库的各项性能都会受到影响.
有其时查询和修改操作.
当数据到达这个级别时就需要对数据库执行分库、分表、分区等操作,有时数据量很大的表可以进行横向拆分,字段过多的大表需要进行数据库的纵向拆分.
这样做虽然在代码或者操作上增加复杂性,但是总体对于效率的提高十分有意义.
3.
2建立Mysql数据库集群130Web服务器集群技术为Web服务器系统容量的不断扩展提供了良好的途径,它将一组Web服务器通过一定的形式组织在一起,构成单一的服务器映像,以提供强大的服务能力[5].
单台数据库服务器,不仅存储不了太多的数据,并且单点部署存在很大的风险,当其发生故障崩溃宕机时,会造成整个应用的停用,所以建立数据库集群是非常必要和必须的.
Digital-VM商家的暑期活动促销,这个商家提供有多个数据中心独立服务器、VPS主机产品。最低配置月付80美元,支持带宽、流量和IP的自定义配置。Digital-VM,是2019年新成立的商家,主要从事日本东京、新加坡、美国洛杉矶、荷兰阿姆斯特丹、西班牙马德里、挪威奥斯陆、丹麦哥本哈根数据中心的KVM架构VPS产品销售,分为大硬盘型(1Gbps带宽端口、分配较大的硬盘)和大带宽型(10Gbps...
运作了18年的德国老牌机房contabo在继去年4月开办了第一个美国数据中心(中部城市:圣路易斯)后立马在本月全新上马两个数据中心:纽约、西雅图。当前,为庆祝美国独立日,美国三个数据中心的VPS全部免除设置费,VPS本身的配置很高,价格适中,有较高的性价比!官方网站:https://contabo.com/en/SSD VPSKVM虚拟,纯SSD阵列,不限制流量,自带一个IPv4内存CPUSSD带...
关于HostDare服务商在之前的文章中有介绍过几次,算是比较老牌的服务商,但是商家背景财力不是特别雄厚,算是比较小众的个人服务商。目前主流提供CKVM和QKVM套餐。前者是电信CN2 GIA,不过库存储备也不是很足,这不九月份发布新的补货库存活动,有提供九折优惠CN2 GIA,以及六五折优惠QKVM普通线路方案。这次活动截止到9月30日,不清楚商家这次库存补货多少。比如 QKVM基础的五个方案都...