先了解几个概念
-
QPS不等于并发连接数(QPS是每秒HTTP请求数量,并发连接数是系统同时处理的请求数量)
-
峰值每秒请求数(QPS)= (总PV数80%)/ (六小时秒数20%)【代表80%的访问量都集中在20%的时间内】
-
压力测试: 测试能承受的最大并发数 以及测试最大承受的QPS值
-
常用的性能测试工具【ab,wrk,httpload,Web Bench,Siege,Apache JMeter】
优化方案
- 当QPS小于50时
优化方案:为一般小型网站,不用考虑优化
2.当QPS达到100时,遇到数据查询瓶颈
优化方案: 数据库缓存层,数据库的负载均衡
3.当QPS达到800时, 遇到带宽瓶颈
优化方案:CDN加速,负载均衡
-
当QPS达到1000时
优化方案: 做html静态缓存 -
当QPS达到2000时
优化方案: 做业务分离,分布式存储
高并发解决方案案例:
1.流量优化
清理防盗链处理(去除恶意请求)
2.前端优化
(1) 减少HTTP请求[将css,js等合并]
(2) 添加异步请求(先不将所有数据都展示给用户,用户触发某个事件,才会异步请求数据)
(3) 启用浏览器缓存和文件压缩
(4) CDN加速
(5) 建立独立的图片服务器(减少I/O)
- 服务端优化
(1) 页面静态化
(2) 并发处理
(3) 队列处理
4.数据库优化
(1) 数据库缓存 MySQL缓存
(2) 分库分表,分区
(3) 读写分离
(4) 负载均衡
5.web服务器优化
(1) nginx反向代理实现负载均衡
(2) lvs实现负载均衡