PHP-常见高并发解决方案
PHP如何解决网站大流量与高并发的问题
高并发架构的概念
相同的时间点有多少个访问同时到达
- QPS:每秒请求或者查询的数量,在互联网领域,指每秒响应请求数(http)
- 吞吐量:单位时间处理的请求数
- PV:24小时内综合浏览量,页面数量
- UV:独立访客,时间范围内访问相同网站,只算为1个独立访客
- 带宽:日网站的带宽 = PV/统计时间(秒) 平均页面大小(kb) 8
- (总PV数 80%) / (6小时秒数 20%) = 峰值每秒请求数(QPS)
压力测试
- 测试能承受的最大并发
测试最大承受的QPS
测试工具:ab(apache benchmark)
ab的使用:模拟并发请求100次,从工请求5000次
- ab -c 100 -n 5000 待测试网站
- 注意事项
- 测试机器预备测试机器要分开
- 不要对线网站做压力测试
观测测试工具ab所在的机器,以及被测试的前端机的CPu,内存,网络等都不要超过最好限度的75%
- QPS 达到50
方案:小型网站,不需要优化
- QPS达到100
方案:数据库缓存层,数据库的负载均衡
- QPS达到800
方案:CDN加速,负载均衡
- QPS达到1000
方案:静态HTML缓存
- QPS达到2000
方案:做业务分离,分布式存储
高并发解决方案案例
流量优化
- 防盗链处理
前端优化
- 减少HTTP请求(css,js,图片)
- 添加异步请求(数据异步加载)
- 启用浏览器缓存和文件压缩
- CDN加速
- 建立独立的图片服务器
服务端优化
- 页面静态化
- 并发处理
- 队列处理
数据库优化
- 数据库缓存
- 分库分表,分区操作
- 优化sql语句
- 读写分离
- 负载均衡
web服务器优化
- 负载均衡