• 高并发之相关基础概念


    高井发

    在互联网时代,所讲的
    井发、高井发,通常是指井发访问。也就是在某个时间点,有多少
    个访问同时到来。通常如果一个系统的日PV在干万以上,有可能是一个高井发的系统.

    高井发的问题,我们具体该关心什么?

    1. QPS:每秒钟请求或者查询的数量,在互联网领域,指每秒响应请
      求数(指HTTP请求)。

    2. 吞吐量:单位时间内处理的请求数量(通常由QPS与井发数决定)。

    3. 响应时间:从请求发出到收到响应花费的时间。例如系统处理一个
      HTTP请求需要100ms,这个100ms就是系统的响应时间。

    4. PV:综合浏览量(PageView),即页面浏览量或者点击量,
      个访客在24小时内访问的页面数量,同一个人浏览你的网站同一页面,只记作一次PV

    5. UV:独立客(UniQueVisitor),即一定时间范围内相同访客,多次访问网站,只计算为1个独立访客

    6. 带宽:计算带宽大小需关注两个指标,峰值流量和页面的平均大小。

    日网站带宽=PV/统计时间(换算到秒)平均页面大小(单位KB)
    峰值一般是平均值的倍数,根据实际情况来定.
    QPS不等于井发连接数
    QPS每秒HTTP请求数量=并发连接数是系统同时处理的请求数(总PVM
    80%)/(6小时秒数*20%)
    峰值每秒请求数(QPS)80%的访问量集中在20%的时间

    压力测试

    1. 测试能承受的最大井发
    2. 测试最大承受的QPS值

    常用性能测试工具

    • ab、wrk、http_load、WebBench、Siege、ApacheJMeter

    注意事顶

    1. 测试机器与被测试机器分开
    2. 不要对线上服务做压力测试
    3. 观察测试工具ab所在机器,以及被测试的前端机的CPU,内存,网络等都不超过最高限度的75%

    安装压力测试工具ab

    yum -y install http-tools

    QPS达到50
    可以称之为小型网站,一般的服务器就可以应付
    QPS达到100
    假设关系型数据库的每次请求在0·01秒完成
    假设单页面只有一个SQL查询,那么IOOQPS意味着1秒钟完成100
    次请求,但是此时我们井不能保证数据库查询能完成100次
    方案:数据库缓存层、数据库的负载均衡
    QPS达到800
    假设我们使用百兆带宽,意味着网站出口的实际带宽是8M左右
    假设每个页面只有10K,在这个井发条件下,百兆带宽已经吃完
    方案:(DN加速、负载均衡)
    QPS达到1000
    假设使用Memcache缓存数据库查询数据,每个页面对Mem的请求远大于直接对DB的请求.Mem的悲观并发数在2w左右,但有可能在之前内网带宽已经吃光,表现出不稳定.
    方案:静态HTML缓存

    QPS达到2000
    这个级别下,文件系统访问锁都成为了灾难.方案:做业务分离,分布式存储

  • 相关阅读:
    pip python代码
    Saltstack module http 详解
    Saltstack module hosts 详解
    Saltstack module highstate_doc 详解
    Saltstack module hashutil 详解
    Saltstack module group 详解
    Saltstack module grains 详解
    Saltstack module grafana4 详解
    Saltstack module google_chat 详解
    Saltstack module gnome 详解
  • 原文地址:https://www.cnblogs.com/qinsilandiao/p/10755980.html
Copyright © 2020-2023  润新知