`
san_yun
  • 浏览: 2639550 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

ab和http_load的测试对比

 
阅读更多

                当gu只有1个worker,我理解他没有并发能力,所有的请求都是顺序执行的。
    所以 http_load -parallel 1 -fetches 1000 url 和 http_load -parallel 100 -fetches 1000 url 的总耗时是一样的,如果gu有并发能力,-parallel 100总耗时应该减少。为了方便说明,我这样对比测试:
    
    gu只有1 worker,用ab压,1000个请求,分别-c1和-c100
    
    1个并发:
    qps:603.40
    平均耗时(Time per request):1.657ms
    总耗时(Time taken for tests):1.65s
    
    100个并发:
    qps:608.63
    平均耗时(Time per request):164.302ms
    总耗时(Time taken for tests):1.64s
    
    当ab -n1000 -c100时,ab实际上是每次100个并发,分成10次完成1000个请求。这里的平均耗时164ms是每批次100个request全部完成后的耗 时,gu实际在执行时是顺序执行的,所以约等于1.65ms*100,http_load的测试结果和ab类似,1000个请求,分别 -parallel1和-parallel100
    1个并发:
    qps:609.40
    平均耗时(msecs/first-response): 1.647ms
    总耗时:1.647s
    
    100个并发:
    qps:654.534
    平均耗时(Time per request):145.154ms
    总耗时:1.527s
    
    gu有8 worker时,再用ab压,同样是1000个请求,分别-c1和-c100
    
    1个并发:
    qps:544
    平均耗时(Time per request):1.83ms
    总耗时(Time taken for tests):1.85s
    
    100个并发:
    qps:4317
    平均耗时(Time per request):23.16ms
    总耗时(Time taken for tests): 0.23s
    
    
    可以发现这次单个请求耗时没有变化(因为代码本身需要这么多时间来执行),但100个并发时,总耗时降低到只有0.23s,原因是100 个并发请求基本被同时处理,所以只有10个顺序执行的'批次',大大减少了总耗时。每批次耗时是23ms,总体qps提升到了4317。 http_load的测试结果和ab是类似的。
    
    单个请求:
    qps:483.187
    平均耗时(msecs/first-response):1.83ms
    总耗时:2.0s
    
    100个并发:
    qps:4287
    平均耗时(msecs/first-response):20.5ms
    总耗时:0.23s
      
    好了,前面码了这么多字,其实我想说明的是,当-parallel增加时,qps也期望能提升,这个点现在是 -parallel=10,qps就无法提升了,如果再增加-parallel,msecs/first-response也随之增加,吞吐量无法再提 高。比如 http_load -parallel 200 -fetches 1000 urllist 时msecs/first-response会增加一倍,达到41.95ms。
    
    当然这里的测试是纯cpu消耗的,所以并发提升有限,我之前的detail页面,平均耗时200ms,但这里有mysql,cache等 外部消耗时间,真正的cpu占用其实没有200ms,当一个request过来时,如果cpu在等待io,gu应该能智能的切换去处理另外一个 request,但现在貌似它在傻傻的wait,是我配置有问题吗?

分享到:
评论

相关推荐

    windows下web压力测试工具ab

    - `Siege`:跨平台的压力测试工具,提供更复杂的配置选项,支持HTTP和HTTPS协议。 5. **教程资源**: - 提供的`.mht`文件,如“Web性能压力测试工具之ApacheBench(ab)详解.mht”和“Siege使用教程.mht”,包含...

    测试工具总结

    其次,Siege、ab和http_load也是常见的Web服务器压力测试工具。Siege提供了一种可配置的、可重复的测试方式,支持并发用户模拟和多种HTTP请求类型。ab(ApacheBench)是Apache服务器自带的轻量级测试工具,可以测量...

    升级PHP5的理由:PHP4和PHP5性能大对比

    - **测试工具**: ab(也可使用http_load) #### 关键术语解释 - **RPS** (Requests per second): 每秒的请求数量 #### 测试结果 **PHP 4.4.2测试结果** - **函数(Function)**: ab -n 10000 -c 50的结果为1047....

    服务器性能测试流程规范_V1.0

    - **命令行工具**:http_load、webbench、ab、Siege等。 ##### 5.7 编写脚本和增强脚本 - **编写脚本**:根据测试用例的具体内容编写测试脚本。 - **增强脚本**:对脚本进行参数化、关联等操作,以提高脚本的灵活...

    性能测试基础培训

    性能测试的类型主要包括负载测试(Load)、压力测试(Stress)、耐久性测试(Endurance)、可扩展性测试(Scalability)和标杆测试(Benchmark)。负载测试关注于系统在预定负载级别下的表现,压力测试则旨在找到...

    PHP4和PHP5性能测试和对比 测试代码与环境

    - **测试工具**:ab (ApacheBench),也可使用 http_load。 - **关键指标**:RPS (Requests per second,每秒请求数)。 #### 测试方法概述 本次测试主要关注 PHP4.4.2 和 PHP5.2.1 两个版本的性能差异。测试内容包括...

    Mysql 集群测试文档

    `--auto-generate-sql-load-type`则可以指定测试负载的类型,包括混合型、更新型、写入型、键值型或读取型,从而模拟不同的业务场景;`--commit=#`参数用于设定执行多少条SQL语句后进行一次事务提交,这对于评估事务...

    高级Web渗透测试工程师-Mysql注入教程.pdf

    本资源为高级Web渗透测试工程师的Mysql注入教程,涵盖了Mysql的基础知识、安装、操作命令、函数、PHP mysqli链接、数据库结构对比、Mysql注入原理、读取和写入的妙用、后台手工注入及绕过、PHP的魔术引号与宽字节...

    apache-bench-dotnet-core-load-test:中篇文章样本申请

    Apache Bench (ab) 是一个由 Apache HTTP 服务器项目提供的轻量级工具,用于对Web服务器进行性能测试。在本文中,我们将深入探讨如何利用Apache Bench对Asp.Net Core Web API服务进行负载测试,以评估其在高并发情况...

    MySQL 5.1参考手册 (中文版)

    2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 2.10.3. 将MySQL数据库拷贝到另一台机器 ...

    mysql官方中文参考手册

    2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 2.10.3. 将MySQL数据库拷贝到另一台机器 ...

    MYSQL中文手册

    2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 2.10.3. 将MySQL数据库拷贝到另一...

    MySQL 5.1参考手册中文版

    2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 2.10.3. 将MySQL数据库拷贝到另一台...

    MySQL 5.1参考手册

    2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 2.10.3. 将MySQL数据库拷贝到另一台机器 ...

    MySQL 5.1官方简体中文参考手册

    2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 2.10.3. 将MySQL数据库拷贝到另一台机器 ...

    MySQL 5.1中文手冊

    2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 2.10.3. 将MySQL数据库拷贝到另一台机器 ...

    MySQL5.1参考手册官方简体中文版

    2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 2.10.3. 将MySQL数据库拷贝到另一台机器 ...

    mysql5.1中文手册

    安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 2.10.3. 将MySQL数据库...

Global site tag (gtag.js) - Google Analytics