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服务器优化

    • 负载均衡