原文出处: 朱小厮
1. I/O优化
- 增加缓存,淘汰磁盘的会见次数。
- 优化磁盘的打点系统,设计最优的磁盘方法计策,以及磁盘的寻址计策,这是在底层操纵系统层面思量的。
- 设计公道的磁盘存储数据块,以及会见这些数据库的计策,这是在应用层面思量的。譬喻,我们可以给存放的数据设计索引,通过寻址索引来加速和淘汰磁盘的会见量,还可以回收异步和非阻塞的方法加速磁盘的会见速度。
- 应用公道的RAID计策晋升磁盘I/O。
2. Web前端调优
- 淘汰网络交互的次数(多次请求归并)
- 淘汰网络传输数据量的巨细(压缩)
- 只管淘汰编码(只管提前将字符转化为字节,可能淘汰从字符到字节的转化进程。)
- 利用欣赏器缓存
- 淘汰Cookie传输
- 公道机关页面
- 利用页面压缩
- 延迟加载页面
- CSS在最上面,JS在最下面
- CDN
- 反向署理
- 页面静态化
- 异地陈设
3.处事降级(自动优雅降级)
拒绝处事和封锁处事
4.幂等性设计
有些处事天然具有幂等性,好比讲用户性别配置为男性,不管配置几多次,功效都一样。可是对转账生意业务等操纵,问题就会较量巨大,需要通过生意业务编号等信息举办处事挪用有效性校验,只有有效的操纵才气继承执行。
(注:幂等性是系统的接口对外一种理睬(而不是实现), 理睬只要挪用接口乐成, 外部多次挪用对系统的影响是一致的. 声明为幂等的接口会认为外部挪用失败是常态, 而且失败之后一定会有重试.)
5.失效转移
若数据处事器集群中任何一台处事器宕机,那么应用措施针对这台处事器的所有读写操纵都需要从头路由到其他处事器,担保数据会见不会失败,这个进程叫失效转移。
失效转移包罗:失效确认(心跳检测和应用措施会见失败陈诉)、会见转移、数据规复。
失效转移担保当一个数据副本不行会见时,可以快速切换会见数据的其他副本,担保系统可用。
6.机能优化
按照网站分层架构,机能优化可分为:web前端机能优化、应用处事器机能优化、存储处事器机能优化。
- web前端机能优化
- 欣赏器会见优化:淘汰http请求;利用欣赏器缓存;启用压缩;css放在页面最上面、javaScript放在页面最下面;淘汰Cookie传输
- CDN加快
- 反向署理
- 应用处事器机能优化
- 漫衍式缓存(Redis等)
- 异步操纵(动静行列)
- 利用集群(负载平衡)
- 代码优化
- 存储机能优化
- 机器硬盘vs固态硬盘
- B+树 vs LSM树
- RAID vs HDFS
7. 代码优化
多线程(Q:怎么确保线程安详?无锁机制有哪些?)
资源复用(单例模式,毗连池,线程池)
数据布局
垃圾接纳
8. 负载平衡
HTTP重定向负载平衡
当用户发来请求的时候,Web处事器通过修改HTTP响应头中的Location标志来返回一个新的url,然后欣赏器再继承请求这个新url,实际上就是页面重定向。通过重定向,来到达“负载平衡”的方针。譬喻,我们在下载PHP源码包的时候,点击下载链接时,为了办理差异国度和地区下载速度的问题,它会返回一个离我们近的下载地点。重定向的HTTP返回码是302。
利益:较量简朴。
缺点:欣赏器需要两次请求处事器才气完成一次会见,机能较差。重定向处事自身的处理惩罚本领有大概成为瓶颈,整个集群的伸缩性国模有限;利用HTTP302响应码重定向,有大概使搜索引擎判定为SEO作弊,低落搜索排名。
DNS域名理会负载平衡
DNS(Domain Name System)认真域名理会的处事,域名url实际上是处事器的别名,实际映射是一个IP地点,理会进程,就是DNS完成域名到IP的映射。而一个域名是可以设置成对应多个IP的。因此,DNS也就可以作为负载平衡处事。
事实上,大型网站老是部门利用DNS域名理会,操作域名理会作为第一级负载平衡手段,即域名理会获得的一组处事器并不是实际提供Web处事的物理处事器,而是同样提供负载平衡处事的内部处事器,这组内部负载平衡处事器再举办负载平衡,将请求分发到真是的Web处事器上。
利益:将负载平衡的事情转交给DNS,省掉了网站打点维护负载平衡处事器的贫苦,同时很多DNS还支持基于地理位置的域名理会,即会将域名理会成举例用户地理最近的一个处事器地点,这样可以加速用户会见速度,改进机能。
缺点:不能自由界说法则,并且改观被映射的IP可能呆板妨碍时很贫苦,还存在DNS生效延迟的问题。并且DNS负载平衡的节制权在域名处事商哪里,图纸加密,网站无法对其做更多改进和更强大的打点。
反向署理负载平衡
反向署理处事可以缓存资源以改进网站机能。实际上,在陈设位置上,反向署理处事器处于Web处事器前面(这样才大概缓存Web相应,加快会见),这个位置也正好是负载平衡处事器的位置,所以大大都反向署理处事器同时提供负载平衡的成果,打点一组Web处事器,将请求按照负载平衡算法转发到差异的Web处事器上。Web处事器处理惩罚完成的响应也需要通过反向署理处事器返回给用户。由于web处事器不直接对外提供会见,因此Web处事器不需要利用外部ip地点,而反向署理处事器则需要设置双网卡和内部外部两套IP地点。
利益:和反向署理处事器成果集成在一起,陈设简朴。
缺点:反向署理处事器是所有请求和响应的中转站,其机能大概会成为瓶颈。
LVS-NAT:修改IP地点
LVS-TUN: 一个IP报文封装在另一个IP报文的技能。
LVS-DR:将数据帧的MAC地点改为选出处事器的MAC地点,再将修改后的数据帧在与处事器组的局域网上发送。
9.缓存