高并发架构相关概念

  1. 互联网时代,讲的并发、高并发,通常是指 并发访问。也就是在某个时间点,有多少个访问同时到来。
  2. QPS(Queries per second): 每秒钟请求或者查询的数量,在互联网领域,指每秒响应请求数(指 HTTP 请求数)。
  3. 吞吐量(Throughput): 单位时间内处理的请求数量(通常由 QPS 与并发数决定)
  4. 响应时间(Response time): 从请求发出到响应花费的时间
  5. PV: 综合浏览量(Page View),即页面浏览量或者点击量,一个访客在24小时内访问的页面数量。
    同一个人浏览你的网站同一页面,只记作一次 PV
  6. UV: 独立访客(UniQue Visitor),即一定时间范围内相同访客多次访问网站,只计算为1个独立访客。
  7. 带宽(Bandwidth ): 计算带宽需关注两个指标,峰值流量和页面的平均大小。
    日网站带宽=PV/统计时间(换算到秒)* 平均页面大小(单位KB)* 8
    峰值一般是平均值的倍数,根据实际情况来定
  8. QPS 不等于 并发连接数
    QPS 是每秒 HTTP 请求数量,并发连接数 是系统同时处理的请求数量
  9. (总PV数*80%) / (6小时数*20%) = 峰值每秒请求数
    80% 的访问量集中在 20% 的时间
  10. 常用性能测试工具
    ab、wrk、http_load、Web Bench、Siege、Apache JMeter
    ab 全程是 apache benchmark,是 apache 官方推出的工具。创建多个并发访问线程,模拟多个访问者同时对某一 URL 地址进行访问。它的测试目标是基于 URL 的,因此,它既可以用来测试 apache 的负载压力,也可以测试 nginxlighthttptomcatIIS 等其它 Web 服务器的压力。
    ab 的使用
    模拟并发请求 100 次,总共请求 5000 次
    eg: ab -c 100 -n 500 http://xxx.com
  11. 解决方案
    (1) QPS 达到 100
    假设关系型数据库的每次请求在 0.01 秒完成
    假设单页面只有一个 SQL 查询,那么 100 QPS 意味着 1 秒钟完成 100 次请求,但是此时我们并不能保证数据库查询能完成 100
    方案:数据库缓存层、数据库的负载均衡
    (2) QPS 达到 800
    假设我们使用百兆带宽,意味着网站出口的实际带宽是 8M 左右
    假设每个页面只有 10K,在这个并发条件下,百兆带宽已经吃完
    方案:CDN 加速、负载均衡
    (3) QPS 达到 1000
    假设使用 Memcache 缓存数据库查询数据,每个页面对 Memcache 的请求远大于请求直接对 DB 的请求
    Memcache 的悲观并发数在 2W 左右,但有可能在之前内网带宽已经吃光,表现出不稳定
    方案:静态 HTML 缓存
    (4) QPS 达到 2000
    这个级别下,文件系统访问锁都成为了灾难
    方案:做业务分离,分布式存储
  12. 优化方式
    流量优化:防盗链处理
    前端优化:减少 HTTP 请求、添加异步请求、启用浏览器缓存和文件压缩、CDN 加速、建立独立图片服务器
    服务端优化:页面静态化、并发处理、队列处理
    数据库优化:数据库缓存、分库分表、分区操作、读写分离
    Web服务器优化:负载均衡

以上资源均来自网络,只为记录~

你可能感兴趣的:(高并发)