高并发大流解决量方案


一、概念

  • QPS:每秒钟请求或者查询的数量,通常是指每秒相应请求数(http)
    • QPS不等于并发连接数,QPS是每秒的HTTP请求数量,并发连接数是指系统同时处理的请求数量
    • 峰值的每秒请求数(QPS)= (总PV数 80%)/(6小时秒数 20%)
    • 峰值QPS的计算规律主要是80%的访问量集中在20%的访问时间
  • 吞吐量:单位时间内处理请求的数量
  • 响应时间:从请求发出到收到响应花费的时间
  • PV(page view)综合浏览量,即页面点击数。通常日PV在千万级就是高并发的网站
  • UV(unique visitor)独立访客,一定时间内相同访客访问网站,只计算为1个独立访客
  • 带宽:计算带宽大小,我们需要关注两个指标,峰值流量和平均大小

    日网站的带宽 = PV/统计时间(秒) 平均页面大小(KB) 8

  • 压力测试

    • 1.测试能承受的最大并发
    • 2.测试最大承受QPS值
ab(apache benchmark)工具使用:

ab会创建多个并发访问线程,模拟多个访问者同时对一个URL地址进行访问。

1
2
3
4
5
ab的基本使用
ab -c 100 -n 5000 url
并发请求100次,总共5000次

测试时注意被测试机器的CPU、内存、网络都不超过最高限度的75%

此处介绍一些QPS的数值:

  1. 50:小型网站,一般服务器即可应付
  2. 100:假设数据库每次请求都在0.01秒内完成,单个页面只有一个sql,100QPS意味着1秒钟要完成100次请求,但是我们数据库不一定能完成100次查询。此时优化方案为:数据库缓存、数据库负载均衡
  3. 800:假设网站有百兆带宽,意味着实际出口的带宽为8M左右,如果每个页面只有10K,在这个QPS下,带宽已经吃完。此时的方案:CDN加速,负载均衡
  4. 1000: 假设使用nosql来缓存数据库查询(memcache或redis),每个页面对nosql的请求远大于直接对DB的请求
  5. 2000: 业务分离,做分布式存储

二、优化方案

  • 流量优化:
  1. 防盗链处理
  2. 减少前端http请求(合并css、js等静态资源)
  3. 添加异步请求,减少http请求的并发量
  4. 启用浏览器的缓存和使用文件压缩
  5. CDN加速,减轻服务器压力和带宽压力
    • 服务端优化
    1. 页面静态化
    2. 并发处理
    • 数据库优化
    1. 数据库缓存
    2. 分库分表,分区操作
    3. 读写分离
    4. 负载均衡
    • web服务器优化
    1. 负载均衡
坚持原创技术分享,您的支持将鼓励我继续创作!