大型网站技术架构(四)--网站的高性能架构

大型网站技术架构(一)--大型网站架构演化

大型网站技术架构(二)--架构模式

大型网站技术架构(三)--架构核心要素

网站性能是客观的指标,可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。

1、性能测试指标

1.1 响应时间

指应用执行一个操作需要的时间,指从发出请求到最后收到响应数据所需要的时间。如下列出了系统常用的操作响应时间表.


操作


响应时间


打开一个网站


几秒


数据库查询一条记录(有索引)


十几毫秒


机械磁盘一次寻址定位


4毫秒


从机械磁盘顺序读取1M数据


2毫秒


从SSD磁盘顺序读取1M数据


0.3毫秒


从远程分布式换成Redis读取一个数据


0.5毫秒


从内存读取1M数据


十几微妙


Java程序本地方法调用


几微妙


网络传输2Kb数据


1微妙

实践中计算响应时间通常是通过平均时间计算的平均值。

1.2并发数

指系统能够同时处理的请求的数目,这个数字也反映了系统的负载性能。对于网站而言,并发数指网站用户同时提交请求的用户数目。

网站系统用户数>网站在线用户数>网站并发用户数

1.3吞吐量

指单位时间内系统处理的请求数量,体现系统的整体处理能力。对于网站,可用“请求数/秒”或“页面数/秒”或“访问人数/天”或“处理业务数/小时”等来衡量。

TPS(每秒事物数)是吞吐量的一个常用量化指标。刺猬还有HPS(每秒HTTP请求数)、QPS(每秒查询数)。

1.4性能计数器

指操作系统的一些数据指标如System load(系统负载),CPU使用率、内存使用率、磁盘等使用情况。

2、性能优化策略

根据网站分层架构,可分为Web前端性能优化、应用服务器性能优化、存储服务器性能优化。

2.1 Web前端优化

2.1.1 浏览器访问优化

  • 减少HTTP请求数,主要可通过合并CSS,JavaScript、图片。
  • 使用浏览器端缓存。在某些时候,静态资源文件编写需要及时应用到客户端浏览器,这种情况下,可通过改变文件名来实现。
  • 启用页面压缩,文本文件的压缩效率可达80%以上。
  • CSS放在页面最上面,JavaScript放在页面最下面
  • 减少Cookie传输。可以考虑使用独立域名来发送Cookie等。

2.1.2 CDN加速

CDN的本质仍然是一个缓存,只是部署在离用户最近的服务器上,一般缓存的都是静态资源。

2.1.3 反向代理

除了能够保护网站安全的作用以及负载均衡的作用外,反向代理还能够提供缓存作用(动态资源)。

2.2 应用服务器性能优化

应用服务器就是处理网站业务的服务器,网站的业务代码都部署在这里,主要优化手段有缓存、集群、异步等。

2.2.1 分布式缓存

缓存主要用来存放哪些读写比很高、很少变化的数据。

分布式缓存指缓存部署在多个服务器组成的集群中,以集群方式提供缓存服务,其具体架构有两种,一种是以JBoss Cache伪代码的需要更新同步的分布式缓存, 一种是以Memcached为代表的不互相通信的分布式缓存

Jboss Cache 的分布式缓存在集群中的所有服务器中保存相同的缓存数据,当某台服务器有缓存更新的时候,会通知集群中其他机器跟新缓存数据。优点是应用程序可以 从本地快速的获取缓存数据,但当集群规模较大的时候,缓存更新信息需要通过到集群所有机器,其代价可想而知。

大型网站需要的缓存数据一般都很大,可能会有TB的内存占用,这时候就的使用Memcached,是一中互不通信的架构,每台存储的缓存数据可以不一样。

2.2.2 异步操作

为了改善网站的扩展性,可以使用消息队列将调用异步化。

2.2.3 使用集群

在网站高并发访问的情况下,使用负载均衡技术为一个应用构建一个由多台服务器组成的集群,将并发访问请求分发到多台服务器上处理。

2.2.4 代码优化

代码优化主要涉及多线程、资源复用(对象池或单例)、数据结构和垃圾回收。

2.3 存储性能优化

可以考虑使用分布式存储、openfiler、磁盘阵列、HDFS(Hadoop)。

大型网站技术架构(四)--网站的高性能架构,布布扣,bubuko.com

时间: 2024-12-25 21:55:14

大型网站技术架构(四)--网站的高性能架构的相关文章

大型网站技术架构 读书笔记3 高性能架构

很明显,这一章是说性能优化的,那么在说性能之前,我们得先了解性能的具体定义,也就是说如何评定一个系统性能是好还是不好. 因此,我们就先说说性能测试,然后分别是前端性能,应用服务器的性能以及存储性能的优化. 性能测试 1 不同的人对性能的认识是不一样的 对用户来说,他们认为的性能就是网站反应的快慢,具体来说就是他们点击鼠标,然后看到效果所需要的时间.对于这部分的优化,可以参见后面的前端部分 对开发人员来说,那就简单了,包括系统延迟,系统吞吐量,并发处理能力,稳定性等等.当然,这部分的优化就主要在应

架构师必备之高性能架构学习路线:消息中间件,Nginx,Redis等!

一)Zookeeper分布式环境指挥官 zookeeper基础 ZooKeeper是一种分布式协调服务,用于管理大型主机.在分布式环境中协调和管理服务是一个复杂的过程.ZooKeeper通过其简单的架构和API解决了这个问题.ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性. 分布式应用的优点 (1)可靠性?- 单个或几个系统的故障不会使整个系统出现故障. (2)可扩展性?- 可以在需要时增加性能,通过添加更多机器,在应用程序配置中进行微小的更改,而不会有停机

《大型网站技术架构 -核心原理与安全分析》读书笔记

大型网站架构演化的价值观 网站的价值在于它能为用户提供什么价值,在于网站能做什么,而不在于它是怎么做的,所以在网站还很小的时候去追求网站的架构是舍本逐末,得不偿失的.小型网站最需要做的就是为用户提供好的服务来创造价值,得到用户的认可,活下去,野蛮生长. 网站架构设计误区 一味追求大公司的解决方案 大公司的经验和成功模式固然重要,值得学习借鉴,但如果因此而变得盲从,就失去了坚持自我的勇气,在架构演化的道路上迟早会迷路. 为了技术而技术 网站技术是为业务而存在的,除此毫无意义.在技术选型和架构设计中

《大型网站技术架构》读书笔记四:瞬时响应之网站的高性能架构

一.网站性能测试 (1)性能测试指标:①响应时间:②并发数:③吞吐量:④性能计数器: (2)性能测试方法:①性能测试:②负载测试:③压力测试:④稳定性测试: (3)性能优化策略: ①性能分析:检查请求处理各个环节的日志,分析哪个环节响应时间不合理,检查监控数据分析影响性能的因素: ②性能优化:Web前端优化,应用服务器优化,存储服务器优化: 二.Web前端性能优化 (1)浏览器访问优化: ①减少http请求:因为http是无状态的,每次请求的开销都比较昂贵(需要建立通信链路.进行数据传输,而服务

《大型网站技术架构:核心原理与案例分析》阅读笔记四

本次第四章<瞬时响应:网站的高性能架构>的内容概述和阅读体会写一下. 网站的性能是客观的指标,可以具体体现到响应时间.吞吐量等技术指标,同时也是主观的感受,用户感受和工程师感受不同. 性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准.不同视角下的网站性能是不同的,用户.开发人员和运维人员的视角是不同的.开发和测试人员的视角,网站性能测试的主要指标有响应时间.并发数.吞吐量和性能计数器等. 性能优化分为Web前端性能优化.应用服务器性能优化.存储服务器性能优化.浏览器访问优化可以

《大型网站技术架构》网站的高性能架构及优化

一.网站性能测试 (1)性能测试指标:①响应时间:②并发数:③吞吐量:④性能计数器: (2)性能测试方法:①性能测试:②负载测试:③压力测试:④稳定性测试: (3)性能优化策略: ①性能分析:检查请求处理各个环节的日志,分析哪个环节响应时间不合理,检查监控数据分析影响性能的因素: ②性能优化:Web前端优化,应用服务器优化,存储服务器优化: 二.Web前端性能优化 (1)浏览器访问优化: ①减少http请求:因为http是无状态的,每次请求的开销都比较昂贵(需要建立通信链路.进行数据传输,而服务

大型网站技术架构(2):架构要素和高性能架构

上一篇我们把整个架构演变过程大致说了一下,这次我们来说说从哪方面进行考虑设计 为了使网站的能够应对高并发访问,海量数据处理,高可靠运行等一系列问题,我们可以选择横向或纵向两个方向来入手 基本思路 首先可以对整个架构进行分层,一般可以分为 应用层,服务层,数据层:实践中,大的分层结构中还可以继续分层,比如 应用层 还可以继续分为 视图层 和 业务逻辑层,服务层也可以继续细分为 数据接口层 逻辑处理层 等 通过分层,我们把一个庞大的系统切分为不同的部分,便于分工开发和维护:各层之间相互有一定的独立性

学习笔记5:《大型网站技术架构 核心原理与案例分析》之 瞬时响应:网站的高性能架构

网站性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准. 不同的人员会有不同的衡量标准:用户,开发人员,运维人员. 一.性能测试指标 1.响应时间 指应用执行一个操作所需要的时间,包括从发出请求开始到收到最后的响应数据的时间.响应时间是系统最重要的性能指标,直观的反映了系统的'快慢'. 2.并发数 系统能够同时处理请求的数目,这个数字反映了系统的负载特性,对于网站而言,并发数就是网站并发用户数,指同时提交请求的用户数目. 网站系统用户数>网站在线用户数>网站并发用户数 在网站设计

《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构

此篇已收录至<大型网站技术架构>读书笔记系列目录贴,点击访问该目录可获取更多内容. 首先,所谓网站的伸缩性,指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力.在整个互联网行业的发展渐进演化中,最重要的技术就是服务器集群,通过不断地向集群中添加服务器来增强整个集群的处理能力. 一.网站架构的伸缩性设计 1.1 不同功能进行物理分离实现伸缩 (1)纵向分离:将业务处理流程上得不同部分分离部署,实现系统的伸缩性: (2)横向分离:将不同的业务模块分离部署