大型网站技术架构4_第1页
大型网站技术架构4_第2页
大型网站技术架构4_第3页
大型网站技术架构4_第4页
大型网站技术架构4_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大型网站技术架构大型网站技术架构核心原理与案例分析4 瞬时响应:网站的高性能架构4.1 网站性能测试 4.1.1 不同视角下的网站性能 4.1.2 性能测试指标 4.1.3 性能测试方法 4.1.4 性能测试报告 4.1.5 性能优化策略4.2 Web前端性能优化 4.2.1 浏览器访问优化 4.2.2 CDN加速 4.2.3 反向代理 4.3 应用服务器性能优化 4.3.1 分布式缓存 4.3.2 异步操作 4.3.3 使用集群 4.3.4 代码优化4.4 存储性能优化 4.4.1 机械硬盘VS.固态硬盘 4.4.2 B+树VS.LSM树 4.4.3 RAID VS.HDFS4.5 小结4.

2、1 网站性能测试 性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。不同视角下的网站性能有不同的标准,也有不同的优化手段。4.1.1 不同视角下的网站性能 1. 用户视角的网站性能 1 通过鼠标或键盘发出请求操作通过鼠标或键盘发出请求操作2发送发送HTTP请求请求4 通过屏幕看到响应信息通过屏幕看到响应信息3收到收到HTTP响应响应2.开发人员视角的网站性能开发人员关注的主要是应用程序本身及其相关子系统的性能,包括响应延迟,系统吞吐量、并发处理能力、系统稳定性等技术指标。主要的优化手段有使用缓存加速数据读取,使用集群推高吞吐能力,使用异步消息年加快请求响应及实现肖锋,使用代码优

3、化运维人员更关注基础设施性能和资源利用率,如网络运营的宽带能力、服务器硬件的配置、数据中心网络架构、服务器和网络宽带的资源利用率等。主要优化手段有建设优化骨网、使用代码优化手段改善程序性能。用高性价比定制服务器、利用虚拟化技术优化资源利用等。4.1.2 性能测试指标不同视角下有不同的性能指标,不同的标准有不同的性能指标,从开始和测试人员的角度,网站性能测试的主要指标有响应时间、并发数、吞吐量、性能计数器等操 作响应时间打开一个网站几秒在数据库中查询一条记录十几毫秒机械磁盘一次寻址定位4毫秒从机械磁盘顺序读取IMB数据2毫秒从SSD磁盘顺序读取IMB数据0.3毫秒从远程分布式缓存Redis读取一

4、个数据0.5毫秒从内存中读取IMB数据十几微秒Java程序本地方法调用几微秒网络传输2KB数据1微秒常用系统操作响应时间表4.1.3 性能测试方法性能测试是一个总称,具体可细分为性能测试、负载测试、压力测试、稳定性测试。TPSabcdbcd性能测试负载测试压力测试系统资源性能测试曲线响应时间日常运行区间系统最佳运行点系统最大负载点系统崩溃点并发用户数4.1.4 性能测试报告并发数响应时间(ms)TPS错误率(%)Load内存(GB)备注1050020058性能测试208003001010性能测试3010004021514性能测试40120045203016负载测试60200030405016压

5、力测试80超时0100不详不详压力测试4.1.5 性能优化策略 1.性能分析 检查请求处理的各个环节的日志,分析哪个环节响应时间不合理、超过预期; 检查监控数据,分析影响性能的主要因素是内存、磁盘、网络、还是CPU,是代码问题还是架构设计不合理,或者系统资源确实不足。2.性能优化定位性能问题的具体原因后,就需要进行性能优化,根据网站分层架构,可分为Web前端性能优化、应用服务器性能优化、存储服务器性能优化3大类。4.2 Web 前端性能优化一般说来Web前端指网站业务逻辑之前的部分,包括浏览器、网站浏览器加载、网站视图模型、图片服务、CDN服务等,主要优化手段有优化浏览器访问、使用反向代理、C

6、DN等。4.2.1 浏览器访问优化l 减少http 请求l 使用浏览器缓存l 启用压缩l CSS 页面最上面、JavaScript放在页面最下面l 减少Cookie传输4.2.2 CDN加速静态资源访问网站用户动态资源访问网络服务提供商本地机房CDN服务器网站数据中心机房网站应用服务器数据更新4.2.3反向代理用户浏览器用户发起访问请求反向代理服务器请求转发请求转发请求转发Web服务器集群4.3应用服务器性能优化4.3.1分布式缓存网站性能优化第一定律:优先考虑使用缓存优化性能1.缓存的基本原理(“abc, “hello)Key=“abc”Val

7、ue=“hello”计算计算key的的HashCode“abc”HashCode=99012345678计算HashCode对应的Hash表索引99%8=3数据库应用程序1.读取数据2 写入数据缓存3 读取数据2.合理使用缓存u 频繁修改的数据频繁修改的数据u 没有热点的访问没有热点的访问u 数据不一致与脏读数据不一致与脏读u 缓存可用性缓存可用性产品在设计之初就需要一个明确的定位:什么产品要实现的功能,什么不是产品提供的特性。在漫长的生命周期中,会有形形色色的困难和诱惑来改变产品的发展方向,左右摇摆、什么都想做的产品,最后有可能成为一个失去生命力的四不像。u 缓存预热缓存预热u 缓存穿透缓存

8、穿透3.分布式缓存架构应用服务器应用服务器1应用程序应用程序应用服务器应用服务器2应用程序应用程序应用应用服务器服务器3应用程序应用程序Jboss CacheJboss CacheJboss Cache更新同步更新同步更新同步需要更新同步的Jboss Cache4.Memcached应用服务器应用服务器1应用服务器应用服务器2应用程序应用程序memcached客户端Memcached服务器服务器1memcached服务服务端进程端进程不互相通信的MemcachedMemcached协议Memcached协议协议Memcached协议协议Memcached协议l 简单的通信协议l 丰富的客户端程

9、序l 高性能的网络通信l 高效的内存管理l 互不通信的服务器集群架构Slab_calss1Slab_calss2Slab_calss3Slab_calss4Slab_calss5Slab_calss6Slab_calssmslab1slab2slab3slab4slab5slab6slabnchunk1chunk2chunk3chunk4chunk5chunk6chunkx4.3.2异步操作1 发送请求2 保存数据3.接收响应用户网站应用服务器数据库服务器1.发送请求2 发送消息3 接收响应用户网站应用服务器消息队列服务器4 保存数据数据服务器负载压力时间直接调用消息队列异步处理使用消息队列消

10、除并发访问高峰4.3.3使用集群 用户浏览器用户发起访问请求负载均衡服务器请求转发请求转发请求转发Web服务器集群利用负数均衡技术改善性能利用负数均衡技术改善性能4.3.4 代码优化网站的业务逻辑实现代码主要部署在应用服务器上,需要处理复杂的并发事务。合理优化业务代码,可以很好地改善网络性能。不同编程语言的代码优化手段有很多,这里我们概要地关注比较重要的几个方面。1.多线程编程上,解决线程安全的主要手段有:将对象设计为无状态对象使用局部对象并发访问资源时使用锁2.资源复用3.数据结构4.垃圾回收Eden Space FromToYoung GenerationOld GenerationJVM分代垃圾回收机制分代垃圾回收机制4.4存储性能优化4.4.1 机械硬盘VS.固态硬盘机械硬盘结构图 SDD 硬盘4.4.2 B+树 VS. LSM 树173581226294546379111415272848526785B+树原理示意图4.4.3 RAID VS. HDFS RAID类型访问速度数据可靠性磁盘利用率RAID0很快 很低100%RAID1很慢很高50%RAID10中等很高50%RAID5较快较高(N-1)/NRAID6较快较(RAIDS)高 (N-2)/N4.5小结前沿技术总是出现在前沿业务领域。近几年,以Goo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论