MACOSX Apache ab压力测试

简介:

MACOSX Apache ab压力测试

@Date 2018.12.24

一. 介绍

  • ab是apachebench命令的缩写, 默认mac下都已经安装了, 但是默认版本会有几个问题, 故写此文章进行总结

二. 问题

1. apr_socket_recv: Connection reset by peer (xx)
  • 原因 : 此问题是apache的bug, 在高版本上已经解决, 故我们需要在mac上升级ab的版本
  • 解决 :

    1. 现在较高版本的apache, 下载地址(http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.34.tar.gz)
    2. 现在apache依赖的包,分别如下

      1. APR : http://mirrors.shu.edu.cn/apache//apr/apr-1.6.5.tar.gz
      2. APR-Util : http://mirrors.shu.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
      3. pcre : https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz
    3. 安装(prefix是指向想要安装的路径)

      1. APR :

        • 下载的APR压缩包解压缩, 进入APR目录
        • 执行 ./configure –prefix=/usr/local/apr
        • 使用sudo权限执行 make
        • 使用sudo权限执行 make install
      2. APR-Util

        • 同样进入解压后的apr-util目录
        • 执行 ./configure –prefix=/usr/local/apr-util -with-apr=/usr/local/apr/ (此命令依赖apr)
        • 使用sudo权限执行 make
        • 使用sudo权限执行 make install
      3. pcre

        • 同样进入解压后的pcre目录
        • 执行 ./configure –prefix=/usr/local/pcre
        • 使用sudo权限执行 make
        • 使用sudo权限执行 make install
      4. 安装ab

        • 进入解压后的httpd-2.3.34目录
        • sudo权限创建/usr/local/httpd/目录
        • 依赖上面安装好的各种包, 执行以下命令 ./configure –prefix=/usr/local/httpd/ -with-apr=/usr/local/apr -with-apr-util=/usr/local/apr-util/ -with-pcre=/usr/local/pcre/
        • 使用sudo权限执行 make
    4. 替换Mac默认的ab

      1. 在上述3.4中, httpd目录下. 执行以下命令 sudo cp support/ab /usr/sbin .将编译后的最新ab命令copy到系统中.
      2. 此时会遇到最新MacOSX中权限问题, 请看下文[权限异常 Operation not permitted]()

2. apr_poll: The timeout specified has expired (70007)
  • 原因 : 高版本的ab需要增加-s参数, 执行超时时间, 否则会30s则超时
  • 解决 :

    • ab --help 查询命令帮助
    • -s timeout 使用ab命令时,增加-s参数
3. MacOSX中/usr/sbin报错, Operation not permitted
  • 原因 : 系统增加了Rootless机制机制,防止恶意程序执行高权限命令
  • 解决 :

    • 重启Mac系统, 在重启过程中一直按住Command+R, 进入恢复模式.
    • 在恢复模式中无需点击其它操作, 在菜单栏中打开Terminal, 执行以下命令 csrutil disable. 解锁dtrace限制

三. ab命令使用

1. 参数详解
# 显示用法信息,其实就是ab -help
-h

# 打印版本号并退出
-V

# 即requests,用于指定压力测试总共的执行次数
-n

# 即concurrency,用于指定压力测试的并发数
-c

# 即timelimit,等待响应的最大时间(单位:秒)
-t

# 即windowsize,TCP发送/接收的缓冲大小(单位:字节)
-b

# 即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数
-p

# 即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数
-u

# 即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain
-T

# 即verbosity,指定打印帮助信息的冗余级别
-v

# 以HTML表格形式打印结果
-w

# 使用HEAD请求代替GET请求
-i

# 插入字符串作为table标签的属性
-x

# 插入字符串作为tr标签的属性
-y

# 插入字符串作为td标签的属性
-z

# 添加cookie信息,例如:"key=value"(可以重复该参数选项以添加多个)
-C

# 添加任意的请求头HEADER,请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)
-H

# 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开
-A

# 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开
-P

# 指定使用的代理服务器和端口号
-X

# 使用HTTP的KeepAlive特性
-k

# 不显示百分比
-d

# 不显示预估和警告信息
-S

# 输出结果信息到gnuplot格式的文件中
-g

# 输出结果信息到CSV格式的文件中
-e

# 指定接收到错误信息时不退出程序
-r
相关文章
|
8月前
|
人工智能 Cloud Native 搜索推荐
贝叶斯 AB 测试
贝叶斯 AB 测试
61 0
|
1月前
|
SQL 搜索推荐 Android开发
AB测试实战(一)
AB测试是一种数据驱动的产品优化方法,用于比较不同版本的网页、应用界面或营销策略的效果。
|
1月前
|
测试技术 Python
AB测试实战(二)
AB测试是一种数据驱动的产品优化方法,用于比较不同版本的网页、应用界面或营销策略的效果。
|
2月前
|
测试技术 Apache Windows
如何使用apache的ab压力测试小工具传参数
该内容是关于在Windows环境下使用PHPStudy中的Apache集成的ab工具进行性能测试的简要教程。
48 9
|
2月前
|
SQL Apache 流计算
Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
【2月更文挑战第25天】Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
497 3
|
2月前
|
SQL 消息中间件 Kafka
Apache Hudi测试、运维操作万字总结
Apache Hudi测试、运维操作万字总结
171 1
|
10月前
|
SQL 分布式计算 测试技术
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris:有赞业务场景下性能测试与迁移验证
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris 迁移实践:有赞查询提速近 10 倍,OLAP 分析更实时高效!
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris:有赞业务场景下性能测试与迁移验证
|
10月前
|
SQL 分布式计算 测试技术
从 Clickhouse 到 Apache Doris:有赞业务场景下性能测试与迁移验证
当前,电商运营的主要痛点不仅来自多变的市场和客户需求,也受困于碎片化用户触达等带来的竞争与挑战。为了深度挖掘用户价值、培养用户忠诚度、实现业绩增长,有赞为商家搭建了全方位 OLAP 分析系统,提供实时与离线分析报表、智能营销与人群圈选等 SaaS 服务。本文将详细介绍有赞从 Clickhouse 至 Apache Doris 的迁移规划和性能对比测试实践,分享如何基于 Apache Doris 统一 OLAP 技术栈,并满足庞大数据体量下的实时分析与极速查询,最终有赞在多个场景下实现查询平均提速 200% 。
293 0
|
测试技术 Apache
Apache自带压力测试工具—ab
Apache自带压力测试工具—ab
353 0
Apache自带压力测试工具—ab
|
网络协议 Java 中间件
玩转Apache JMeter—测试HTTP接口篇
玩转Apache JMeter—测试HTTP接口篇

推荐镜像

更多