版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
mm mm mm 第1页1网站的性能瓶颈分析访问请求后,服务器端只是简单地将该文档传输到客户端。从服务器运行的那个时间片来看,这个传输过程仅仅占用了很小的CPU资器来进行解释,这样就会给应用服务器添加额外的性能消耗,如果第2页进一步要访问数据库,则会增加数据库服务器的性能消耗,则动态第3页2系统架构设计为提高网站的高并发性能,提高开发效率及运营效率,主要按如下几个思路进行规划设计:2.1.2WEB应用开发架构思路第4页2)采用高效的网络文件共享策略,采用图片服务器来实现页2.1.4不同网络用户访问考虑第5页WEB服务MVCLVS第6页用户浏览页面代理服务器集群...第7页ORMHDFS后台支HTM统计支撑MMS消息中心第8页主交换机负载均衡器主交换机负载均衡器1服务器1服务器n服务器1服务器n服务器1服务器n服务器1服务器2生产DB服务器集群查询DB服务器组管理终端...服务器2服务器1服务器n服务器1服务器n备交换机VRRP磁盘阵列柜磁盘阵列柜采用双防火墙通知接通2线路互联网接入,设第9页的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字,不同的客户机会得到不同的地这种技术的优点是,实现简单、实施容易、成本低、适用于大多数TCP/IP应用;但是,其缺点也非常明显,首先这种方案不是真正意义上的不考虑每个Web服务器当前的负载情况;如果后台的Web服务器的配置和器不能充分发挥作用;其次未考虑容错,如果后台的某台Web服务器出现故障,DNS服务器仍然会把DNS请求分配到这台故障服务器上,导致不能响应客户端。最后一点是致命的,有可能造成相当一部分客户不能享受Web服务,并且由于DNS缓存的原因,所造成的后果要持续相当长一段时间(一般DNS的刷新周期约为24小时)。所以在国外最新的建设中心Web站2.通过硬件四层交换实现负载均衡F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵第10页3.通过软件四层交换实现负载均衡软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是LinuxVirtualServer,他提供了基于心跳线heartbeat的实时灾难应对解决方一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基4.通过反向代理服务器实现负载均衡充当WEB服务器的内容缓存器,反向代理服务器是针对WEB后台WEB服务器对互联网用户是透明的,用户只能看到反向代理服务器的求将被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答、与后台WEB服务器交互。利用反向代理服务器减轻了后台WEB服务器的负载,提高了访问速度,同时避免了因用户直接与WEB服务器通信第11页Squid是一个开源的软件,利用它的反向代理技术可以提高网站系统的访问速度,下面将重点介绍Squid反向代理的实现原理和在提高网站性客户端请求访问WEB服务时,DNS将访问的域名解析为Squid反向器。如果Squid反向代理服务器中缓存了该请求的资源,第12页源直接返回给客户端,否则反向代理服务器将向后台的WEB服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下从WEB服务器返回的HTTP头标记来缓冲静态页面,有四个最重要HTTP••••Nginx已经在俄罗斯最大的门户网站──RamblerMedia上运行了4年时间,同时俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务在国内,已经有新浪博客、新浪播客、搜狐通行证、网易新闻、网易第13页3)Nginx+squid页面缓存来实现反向代理负载均衡第14页使用apache和多个tomcat配置一个可以应用的web网站,用Apache进行分流,把请求按照权重以及当时负荷分tomcat1,tomcat2...去处理,第15页2)同时还要配置session复制,也就session,是要同步复制到其它tomcat,集群内的tomcat都有相同2.3.2缓存2)Nginx的缓存功能采用MMAP实现,设置的缓存区大小不能超过物3)基于memcached的缓存location/mem/{{第16页}}1)OSCache用,提供了在现有JSP页面之内实现快速内存缓冲的功能,OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。OSCache有以以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API--OSCacheAPI给你全面的程序来控制所有的OSCache特第17页集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略OSCache是当前运用最广的缓存方案,JBoss,Hibernate,2)拥有全面的API:OSCacheAPI允许你通过编3)永久缓存:缓存能被配置写入硬盘,因此允许在应用服务器的多次4)支持集群:集群缓存数据能被单个的进行参数配置,不需要修改代5)缓存过期:你可以有最大限度的控制缓存对象的过期,包括可第18页对于一些常用的动态数据通过开发程序服务缓存在内存中,提供给2)列表缓存,就像论坛里帖子的列表4)复杂一点的group,sum,count查询,比如积分的分类排名b)集成在WEB应用中的内存缓存在web应用中对于热点的功能,考虑使用完全装载到内存,保证绝第19页2.3.3页面静态化后,服务器端只是简单地将该文档传输到客户端。从服务器运行的那个所以我们需要引入常见的信息发布系统(CMS),信息发布系统(CMS)可以实现最简单的信息录入自动生成静态页面,对于一个大型网站来说,同时,HTML静态化也是某些缓存策略使用的手段,对于系统中频化来实现,比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时在进行html静态化的时候还可以使用一种折中的方法,就是前端继续使用动态实现,在一定的策略下通过后台模块进行定时把动态网页生为了提高静态HTML的访问效率,主要可以对以下几个方面进行优第20页2.3.4数据库配置及优化把生产数据库和查询数据库进行分离,针对系统业务数据的特点,把使用读/写数据库分离,随着系统变得越来越庞大,特别是当它们拥有很差的SQL时,一台数据库服务器通常不足以处理负载。但是多个数据库尽管概念上很简单,但是想要合理、精确地实现并不容易,这要大量的代码工作。因此,即便在开始时使用同一台数据库服务器,也要尽早计划在PHP中使用分离的DB连接来进行读写操作。如果正确地完成该项工作,那么系统就可以扩展到2台、3台甚至12台服务器很多公司都没有良好的备份机制,也不知道如何恰当地完成这另外还要确保拥有设计合理的、有用的关于安全、性能和稳定性问题的设第21页2.3.5文件存储1)HDFS(GFS)一个HDFS集群是由一个Namenode和一定数第22页2)NFS与GFS比较首先从它们的功能上进行分析。NFS即网络文件系统,是由SU司开发的。它是FreeBSD支持的文件系统中的一种,允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序访问远端系统而GFS是Google为了满足本公司迅速增长的数据处理要求而开发的文件系统。GFS是一个可扩展的分布式文件系统,用于大型的、分布至少一台客户机。被共享的目录和文件存放在服务器上,客户机远程地GFS则由一台Master(通常有几台备份)和若干台Trunk负责维护GFS中的Metadata,即文件名及其Trunk信息。客户端先从再从跨平台性上,NFS的基本原则是“容许不同的客户端及服务端最后从规模上比较,HDFS只应用在大批量的数据共享上。目前Google拥有超过200个的GFS集群,其中有些集群的PC数量超过5000第23页台。集群的数据存储规模可以达到5个PB,并且集群中的数据读写吞吐2.文件的多服务器自动同步使用独立的图片服务器不但可以避免以上这个情况,更可以对不同的使用性质的图片设置不同的过期时间,以便同一个用户在不同页面访问相同图片时不会再次从服务器(基于是缓存服务器)取数据,不但快速,而且还省了带宽。还有就是,对于缓存的时间上,亦可以做独立的第24页你不可能要求所有的使用人员,都和你的服务器在一个运营商的网络内,而不同网络之间访问速度会很慢,我们可以采用镜像网站和引入CDN用户用户静态内容(静态网页、图片)服务器1服务器n服务器1服务器n服务器1服务器n动态内容(社区、投票、调查、搜索、点评、视频)我们可以在不同的网络运营商部署web服务器,通过linux上的rsync然后通过配置智能DNS解析来引导不同网络的访问用户到对应的网络如果有足够的投资,也可以采用CDN(内容分发网),把静态内容(静第25页第26页2.3.7WEB应用开发架构设计思路应用开发实现MVC三层架构进行web应用开发,采用ibatis作为持久层第27页1)MVC架构示意第28页2)Struts架构这一过程非常重要,它是理解Struts框架的重点。上图结构,而下图通过一个活动图更具体描述接受请求直至返回响应的整个过第29页第30页这种架构是松散耦合的,并且围绕着服务进行构建。面向服务的架构提供给他们隔离特性,一个服务可能有很多台数据库服务器,他们之间的数据是相通的,而对外他们的接口只有一个,外面是无法知道这个服务后这样就有了越来越多的应用服务器。这些应用服务器从数据众多的服务(每个服务背后都有数据库或集群数据库)中聚合信息,然后生成我们在一定的架构基础上,要提高并发处理能力则需要调整服务器的操作第31页2.4.2tomcat服务器优化出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内型的应用项目中,这点内存是不够的,需要调大.2、连接器优化:在tomcat配置文件server.xml中的配置中,和acceptCount:指定当所有可以使用的处理请第32页第33页Apache在配置ContentType的时候可以尽量少支持,尽可能少的在处理静态页面或者图片、js等访问方面,可以考虑使用lighttpd代替worker_processes:该参数的值最好跟cpu核数相等,能够发挥最大第34页3Web服务架构评测主要对基于tomcat和nginx+tomcat的web服务器的处理性能进行测试,以作为不同性能要求下架构选型的依据第35页NginxTomcat1Tomcat2Test1Test2CPU:Intel(R)Xeon(R)E51502.66GHz2核*2千兆网卡HpDL580G4CPU:Intel(R)Xeon(TM)3.40GHz4核*2千兆网卡HpDL580G4CPU:Intel(R)Xeon(TM)3.40GHz4核*2千兆网卡HpDL580G5CPU:Intel(R)Xeon(R)E73101.60GHz4核*2千兆网卡IBMX3650CPU:Intel(R)Xeon(R)E51502.66GHz2核*2千兆网卡Redhatlinuxas4Redhatlinuxas5Redhatlinuxas5Redhatlinuxas5Redhatlinuxas4worker_processes4;error_log/usr/local/nginx/logs/nginx_error.logdebpid/usr/local/nginx/logs/nginx.piworker_rlimit_nofile51第36页{worker_connections51}{#gzip_typestext/plain}{application/x-javascripttext/css第37页}#后端的Web服务器可以通过X-Forwarded-For获取用户真实#proxy_set_headerX-Forwarded-For$remot#proxy_passhttp://#proxy_passhttp://'"$status"$body_bytes_sen'"$http_user_agent""$httpaccess_log/usr/local/nginx/logs/access.logaccess;第38页#跟后端服务器连接的超时时间_发起握手等候响应超时proxy_connect_timeout600;#连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中#后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所#代理请求缓存区_这个缓存区间会保存用户的头信息以供Nginx进行规}}第39页N123456数122222线程数请求万万万万万万秒秒秒毫秒毫秒毫秒测试服Test1Test1Test2Test1Test2Test1Test2Test1Test2Test1Test2服务器秒293秒422秒413秒742秒744秒秒秒秒秒平均速度条/秒4765条/秒4123条/秒条/秒条/秒条/秒条/秒请求万万万万万万万万万万万第40页3.2.2Nginx+2个TOMCAT的WEB服务器NO123456222222数请求万万万万万万秒秒秒毫秒毫秒毫秒测试服Test1Test1Test1Test2Test1Test2Test1Test2Test1Test2Test1Test2用内存 服务器持续时间322秒542秒544秒1140秒1141秒1860秒1863秒5475秒5565秒平均速度秒秒秒秒秒秒秒秒完成请最大响应时长93005毫秒21244毫秒45016毫秒45014毫秒93000毫秒92987毫秒毫秒毫秒第41页3.2.3Nginx+2个TOMCAT的WEB服务器+缓冲NO123456222222数请求万万万万万万0毫秒秒秒毫秒毫秒毫秒测试服Test1Test2Test1Test2Test1Test2Test1Test2Test1Test2Test1Test2Tomcat占用内存0.2G0.2G0.2G0.2G0.2G0.2G服务器秒秒秒秒秒秒秒秒平均速度2343725423完成请最大响应9993毫秒9616毫秒9608毫秒9015毫秒秒0.04毫秒0.040.04毫秒0.04毫秒0.10毫秒0.10毫秒0.13毫秒0.13毫秒0.40毫秒0.41毫秒2.00毫秒2.00毫秒第42页第43页3.3测试结果分析1)worker_processes参数该参数的值最好跟cpu核数相等,能够发挥最大性能,本次测试nginx所在2)MaxThread参数对tomcat并发性的影响测试时,tomcat启动并发线程过多,将服务器cpu耗尽。分析MaxThread虽能够提高tomcat并发能力,但前提是在一个合理的范围内,要确保服务3)-Xmx最大内存值对Tomcat能够持续响应高并发的影响2)单tomcat在配置1.7g最大内存时,在持续超过1479条/秒的并发请求3)Nginx+2tomcat架构下,2个tomcat分别配置1.7g最大内存时,在持第44页之后两个Tomcat内存都会达到1.7上限,响应会急剧变慢,但错包单个tomcat在超出并发能力的提求下,处理能力大大下降,并出现大量错包,而采用Nginx+2Tomcat架构在各种测试下,均未出现错配置了缓存后,nginx+2tomcat的处理能力实测数据超过了1.5第45页并发能力占用的网络带宽第46页序号123产品功能主机设备数据库服务器WEB服务器管理终端网络设备负载均衡器交换机存储设备光纤存储柜光纤交换机参考型号、配
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44724-2024城市公共汽电车无障碍运营服务规范
- 房地产营销策划 -美的 -义乌 -宝龙世家年度传播方案
- 夫妻离婚股份分割的流程-生活日常
- 西宁-PEP-24年小学英语第五单元测验卷
- 湖南衡阳2025届高三一轮复习好题训练:10月第1周 地理试题(解析版)
- 2025届高三英语二轮复习专项 2024年全国新课标I卷易错题二次开发练习 (含答案)
- 2024年冻土共振柱试验机项目资金筹措计划书代可行性研究报告
- 强化安全管理制度建设-坚持以人为本
- 概念验证服务标准
- Python程序设计实践- 习题及答案 ch05 实验1 数据的输入和输出
- 旅游纸质合同范本
- 五年级科学上册(大象版)第3课材料与保温(教学设计)
- 全球及中国测井仪器行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030)
- 社会工作者(社工)面试试题100题
- 2024光伏项目技术咨询服务协议
- 2024广西专业技术人员继续教育公需科目参考答案
- 工程变更通知单ECN模板-20220213
- Q GDW 10115-2022 110kV~1000kV架空输电线路施工及验收规范
- 化工和危险化学品生产经营单位二十条重大隐患判定标准释义(中化协)
- 黑变病的护理查房
- 2023《住院患者身体约束的护理》团体标准解读PPT
评论
0/150
提交评论