-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].
单台数据库服务器,不仅存储不了太多的数据,并且单点部署存在很大的风险,当其发生故障崩溃宕机时,会造成整个应用的停用,所以建立数据库集群是非常必要和必须的.
Megalayer 商家主营业务是以独立服务器和站群服务器的,后来也陆续的有新增香港、菲律宾数据中心的VPS主机产品。由于其线路的丰富,还是深受一些用户喜欢的,有CN2优化直连线路,有全向国际线路,以及针对欧美的国际线路。这次有看到商家也有新增美国机房的VPS主机,也有包括15M带宽CN2优化带宽以及30M带宽的全向线路。Megalayer 商家提供的美国机房VPS产品,提供的配置方案也是比较多,...
介绍:御速云成立于2021年的国人商家,深圳市御速信息技术有限公司旗下品牌,为您提供安全可靠的弹性计算服务,随着业务需求的变化,您可以实时扩展或缩减计算资源,使用弹性云计算可以极大降低您的软硬件采购成本,简化IT运维工作。主要从事VPS、虚拟主机、CDN等云计算产品业务,适合建站、新手上车的值得选择,拥有华东江苏、华东山东等国内优质云产品;香港三网直连(电信CN2GIA联通移动CN2直连);美国高...
提速啦 成立于2012年,作为互联网老兵我们一直为用户提供 稳定 高速 高质量的产品。成立至今一直深受用户的喜爱 荣获 “2021年赣州安全大赛第三名” “2020创新企业入围奖” 等殊荣。目前我司在美国拥有4.6万G总内存云服务器资源,香港拥有2.2万G总内存云服务器资源,阿里云香港机房拥有8000G总内存云服务器资源,国内多地区拥有1.6万G总内存云服务器资源,绝非1 2台宿主机的小商家可比。...