• 高性能吞吐率的理解


    http://blog.csdn.net/xiahancslg/article/details/5613210

    http://blog.csdn.net/xiahancslg/article/category/689576

    何为吞吐率,解释下,就是在单位时间内服务器处理的请求数,这也许是我们衡量一个WEB站点很重要的一个指标,当10个用户同时发起100请求和1 个用户 同时向服务器发起1000个请求,我们的效果是不是一样呢,这里有个概念要说明一下,连续请求的意思是一个用户的请求通过服务器并返回进行下一次请求这个 过程成为连续的请求,当我们10个用户发起100个请求的时候,每个用户的请求都会阻塞在缓冲区内,等待下一个请求的返回,所以显然两种方式的操作对站点 的影响是完全不同的,下面我们利用APACHE自带的性能测试工具AB来测试我们的吞吐率,在linux环境下输入(自己打到自己APACHE的安装目录),
    xiahan@xiahan-desktop:/usr/ali/apache2/bin$  ab -n1000 -c10 http://cn.my.alibaba.com:12608/index.htm
    得到如下结果
    This is ApacheBench, Version 2.3 <$Revision: 655654 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/

    Benchmarking cn.my.alibaba.com (be patient)
    Completed 100 requests
    Completed 200 requests
    Completed 300 requests
    Completed 400 requests
    Completed 500 requests
    Completed 600 requests
    Completed 700 requests
    Completed 800 requests
    Completed 900 requests
    Completed 1000 requests
    Finished 1000 requests


    Server Software: 

           Apache/2.0.59
    Server Hostname:        cn.my.alibaba.com
    Server Port:            12608

    Document Path:          /index.htm
    Document Length:        0 bytes

    Concurrency Level:      10
    Time taken for tests:   8.636 seconds
    Complete requests:      1000
    Failed requests:        0
    Write errors:           0
    Non-2xx responses:      1000
    Total transferred:      1023000 bytes
    HTML transferred:       0 bytes
    Requests per second:    115.79 [#/sec] (mean)
    Time per request:       86.364 [ms] (mean)
    Time per request:       8.636 [ms] (mean, across all concurrent requests)
    Transfer rate:          115.68 [Kbytes/sec] received

    Connection Times (ms)
                  min  mean[+/-sd] median   max
    Connect:        0    1   3.1      0      36
    Processing:     8   85 282.2     27    3242
    Waiting:        8   85 281.6     27    3242
    Total:          8   86 282.5     28    3242

    Percentage of the requests served within a certain time (ms)
      50%     28
      66%     49
      75%     64
      80%     77
      90%    132
      95%    289
      98%    513
      99%   1370
     100%   3242 (longest request)

    -n1000表示1000个请求,-c10表示10个用户,下面来解释下几个重要的结果指标
     Request per request:这就是我们重点关注的吞吐率,他等于 Complete requests/Time taken for tests
    Time per request:用户平均等待的时间,他等于Time taken for/(Complete requests/Concurrency Level)
    Time per request:(mean, across all concurrent requests)服务器平均处理请求的时间,他等于
    Time taken for /Complete requests
    这就是一些重要的指标
    当我们换成1个用户10个请求的时候,他的吞吐量会增加(由于篇幅原因就不打印出数据了),但是当我们为10个用户,10000个请求的时候吞吐率就会下 降,这说明了一个问题,当我们到达一个临界点的时候,是我们吞吐量最高的时候,当请求和用户数再增加的时候可能吞吐量就会下降,打个比方我们跑步的时候跑 20米一点不觉得累,跑30米也不会觉得累,当你跑到100米的时候感觉正好不累也不轻松,但是当你超过100米的时候,你就会感觉喘气,那100米就是 一个临界点,服务器处理的能力也类似于这个,但是光是我们掌握到最佳并发策略的web服务器的使用,我们就能应对各种各样的并发用户请求,答案显然不是。

  • 相关阅读:
    P1903 [国家集训队]数颜色 / 维护队列 莫对算法
    P1016 旅行家的预算 模拟 贪心
    P3948 数据结构 差分数组
    乘法逆元 模板
    二分法 最大化平均值
    HDU5213 Lucky 莫队算法 容斥定理
    P1083 借教室 差分数组
    发布订阅、redis的配置文件、redis的主从、redis的持久化、
    nosql、redis、性能测试、命令相关、redis的数据类型string、list、hash、set、zset、
    nginx的日志、禁止访问、反向代理、权重、nginx location匹配规则、location分离、WSGI、
  • 原文地址:https://www.cnblogs.com/usual2013blog/p/2767145.html
Copyright © 2020-2023  润新知