系统架构|大型网站技术架构(核心原理与案例分析—第四章:瞬时响应:网站的高性能架构)
1,性能测试指标
1)响应时间 从发出请求开始到收到最后响应数据所需要的时间
2)并发数 指系统能够同时处理请求的数目,这个数字也反映了系统的负载特性,对于网站而言,并发数即网站并发用户数,指同时提交的用户数目
网站系统用户数>网站在线用户数>网站并发用户数
3)吞吐量 单位时间内系统处理的请求数量,体现系统的整体处理能力,对于网站,可以用“请求数/秒”,也可用“访问人数/天”或是“处理的业务数/小时”来衡量,TPS(每秒事务数)是吞吐量的一个常用量化指标,此外还有HPS(每秒HTTP请求数)、QPS(每秒查询数)
4)性能计数器 描述服务器或操作系统性能的一些指标,包括System Load、对象和线程数、内存使用、cpu使用、磁盘和网络io等指标
2,性能测试方法
1)性能测试
2)负载测试
3)压力测试
4)稳定性测试
3,Web前端性能优化
1)浏览器访问优化
减少http请求:合并CSS,合并JavaScript、合并图片。
使用浏览器缓存:将CSS、JavaScript、图标等静态文件缓存在浏览器中。更新静态资源时,采用批量更新的方法。
启用压缩:在服务器端对文件进行压缩,在浏览器端对文件解压缩。
CSS放在页面最上面,JavaScript放在页面最下面
减少Cookie传输
2)CDN加速
CDN(Content Distribute Network,内容分发网络)的本质仍然是一个缓存,而且将数据缓存在里用户最近的地方,使用户以最快速度获取数据。
CDN能够缓存的一般是静态资源。
3)反向代理
传统代理服务器位于浏览器一侧,代理浏览器将HTTP请求发送到互联网上,而反向代理服务器位于网站机房一侧,代理网站Web服务器接收HTTP请求。
安全功能+通过缓存加速Web请求,有些热门的帖子、词条、博客可缓存在代理服务器上
4,应用服务器性能优化
1)分布式缓存(memcached)
网站性能优化第一定律:优先考虑使用缓存优化性能
缓存的基本原理:缓存的本质是一个内存Hash表。网站数据访问通常遵循二八定律,即80%的访问落在20%的数据上,因此利用Hash表和内存的高速访问特性,将这20%的数据缓存起来,可以很好地改善系统的性能,提高数据读取速度,降低存储访问压力
2)异步操作(使用消息队列)
用户请求的数据发给消息队列后立刻返回,再由消息队列的消费者进程从消息队列中获取数据,异步写入数据库。消息队列有削峰作用,通过异步处理,将段时间高并发产生的消息存储在消息队列中,从而削平高峰期的并发事物。
3)使用集群:使用负载均衡技术为一个应用构建一个由多台服务器组成的服务器集群,并将并发访问请求分发到多台服务器上处理。
4)代码优化
多线程
资源复用:单例、对象池
良好的数据结构
垃圾回收
【系统架构|大型网站技术架构(核心原理与案例分析—第四章:瞬时响应:网站的高性能架构)】
5,存储性能优化
1)机械硬盘 vs. 固态硬盘
2)B+树VS LSM树
3)RAID VS HDFS
推荐阅读
- 如何在Mac中的文件选择框中打开系统隐藏文件夹
- 单点登陆
- 操作系统|[译]从内部了解现代浏览器(1)
- 游乐园系统,助力游乐园管理
- 中国MES系统软件随工业化成长
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Cesium|Cesium 粒子系统学习
- Android系统启动之init.rc文件解析过程
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- 针对大型商场和高层建筑的消防泵房建设会有何讲究呢