`
100Continue
  • 浏览: 160552 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

安装介绍——HTTP压力/性能测试工具ABSender

阅读更多

简介:

本博文描述了怎么样单独编译ABSender而不依赖于Apache。修改并翻译自:http://code.google.com/p/apachebench-standalone/wiki/HowToBuild 如何单独安装ApacheBench

 

源码下载:

你可以从以下GitHub地址下载到ABSender安装工具,内含ABSender源码,但并非最新版本,最新版本请前往ABSender的GitHub地址下载:

 

ABSender-InstallTool: https://github.com/100Continue/ABSender-InstallTool

ABSender Source Code: https://github.com/100Continue/ABSender

 

如果安装过程遇到问题,请查看blog: http://100continue.iteye.com/blog/2119722 

 

依赖包:

ABSender依赖于APR包(Apache Portable Runtime)和APR-util包。

下文将向您介绍如何安装这些依赖包及安装ABSender。

 

首先,您需要到以下地址下载最新版本的APR包和APR-util包:

APR包和APR-util包下载地址:http://apr.apache.org/download.cgi

 

安装步骤:

APR库安装:

1. 解压APR包: tar -zxvf apr-1.5.2.tar.gz

2. 进入所解压出来的依赖包的工作目录:cd apr-1.5.2

3. 配置APR库:configure

4. 编译APR:make

5. 安装APR:sudo make install

6. 为APR pkgconfig 文件建立软链接:sudo ln -s /usr/local/apr/lib/pkgconfig/apr-1.pc /usr/local/lib/pkgconfig/apr-1.pc

7. 使用ABSender-InstallTool来验证APR库是否成功安装:

cd ABSender-InstallTool

make apr-skeletion

 

APR-util库安装:

1. 解压APR-util包:tar -zxvf apr-util-1.5.4.tar.gz

2. 配置APR-util库:./configure --with-apr=/usr/local/apr

3. 编译APR-util库:make

4. 安装APR-util库:sudo make install

 

环境设置:

1. export PKG_CONFIG_PATH=/usr/local/apr/lib/pkgconfig:$PKG_CONFIG_PATH

2. sudo ln -s /usr/local/apr-util/lib/libaprutil-1.so.0.5.4 /usr/lib/libaprutil-1.so  (so.0.5.4,请按实际安装版本来)

3. sudo ln -s /usr/local/apr-util/lib/libaprutil-1.so.0.5.4 /usr/lib/libaprutil-1.so.0(so.0.5.4,请按实际安装版本来)

4. sudo ln -s /usr/local/apr-util/lib/libapr-1.so.0.5.2 /usr/lib/libapr-1.so  (so.0.5.2,请按实际安装版本来)

5. sudo ln -s /usr/local/apr-util/lib/libapr-1.so.0.5.2 /usr/lib/libapr-1.so.0(so.0.5.2,请按实际安装版本来)

6. cd /etc, 执行 ldconfig

 

ABSender安装:

1. 进入ABSender-InstallTool文件夹并放入最新的ABSender源码:

make ABSender

 

安装完毕,所生成的可执行文件 ABSender, 您可以放在任何地方进行执行。

详细的ABSender帮助信息,可以通过执行 ./ABSender -h 获得。

 

安装问题及解决方法:

感谢windr同学的安装与使用,以下博文是他在安装过程中遇到的一些环境问题及解决方案,欢迎大家参考:

http://blog.sina.com.cn/s/blog_9aa583cf0101819w.html

 

 

谢谢您使用ABSender。

 

分享到:
评论
11 楼 windr 2013-03-05  
又有问题来提问了
请求一个连接
192.168.0.2  上面是一个nginx+php环境

./ab -c3000 -n100000 -k http://192.168.0.2/fav/?a=ylike&cid=C866F130-39BC-F2DA-A295-F0FC5F3F8202&movieid=213213

先出现
[1] 2402
[2] 2403
不明白这个是什么意思

然后看最终结果吧
Server Software:        nginx/1.2.6
Server Hostname:        192.168.0.2
Server Port:            80

Document Path:          /fav/?a=ylike  (为什么是这样的,不是全链接呢)
Document Length:        27 bytes

Concurrency Level:      3000
Time taken for tests:   226.465 seconds
Complete requests:      100000
Failed requests:        20652
   (Connect: 0, Receive: 0, Length: 20652, Exceptions: 0)

这句length也不是很明白

Write errors:           0
Non-2xx responses:      20652
Keep-Alive requests:    20652
Total transferred:      20580408 bytes
HTML transferred:       5694540 bytes
Requests per second:    441.57 [#/sec] (mean)
Time per request:       6793.942 [ms] (mean)
Time per request:       2.265 [ms] (mean, across all concurrent requests)
Transfer rate:          88.75 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   12  77.5      5    3005
Processing:    81 6383 11518.8    279   45078
Waiting:       81 6383 11518.8    279   45078
Total:         85 6394 11532.7    285   48009

Percentage of the requests served within a certain time (ms)
  50%    285
  66%   1657
  75%   5167
  80%  21005
  90%  21009
  95%  21405
  98%  45011
  99%  45241
100%  48009 (longest request)

[1]-  Done                    ./ab -c3000 -n100000 -k http://114.112.82.127/fav/?a=ylike
[2]+  Done                    cid=C866F130-39BC-F2DA-A295-F0FC5F3F8202
 

最终的地方,为什么出现以上信息。。

另外一个问题,同样一个连接,用webbench,可以上3000用户,事物吞吐量和ABSender接近,但是没有报错的情况

呵呵
写的比较多
希望能得到回答
10 楼 windr 2013-02-21  
100Continue 写道
windr 写道
呵呵
最终全部搞定了。。
一点点找错误才完全搞定的
不过我对linux确实不熟悉
所以有些提示要猜很久
makefile没问题
只是里面有些路径我感觉不是现在这两个库的标准路径了


恭喜搞定了。你可以把你遇到的问题和解决的方法,贴到评论上来。我可以在博文上加上一些帮助内容,我们一起来帮助其他人使用他。



http://blog.sina.com.cn/s/blog_9aa583cf0101819w.html
这个是我自己的记录
写的比较乱,呵呵
希望你能看明白
9 楼 100Continue 2013-02-20  
windr 写道
市面上有本书,叫构建高性能web站点
和你这个名字很接近了
多谢~


那本书不错,有很多入门知识。
tips: 我目前主要针对的高性能web服务器是nginx。
8 楼 100Continue 2013-02-20  
windr 写道
呵呵
最终全部搞定了。。
一点点找错误才完全搞定的
不过我对linux确实不熟悉
所以有些提示要猜很久
makefile没问题
只是里面有些路径我感觉不是现在这两个库的标准路径了


恭喜搞定了。你可以把你遇到的问题和解决的方法,贴到评论上来。我可以在博文上加上一些帮助内容,我们一起来帮助其他人使用他。
7 楼 windr 2013-02-18  
市面上有本书,叫构建高性能web站点
和你这个名字很接近了
多谢~
6 楼 windr 2013-02-18  
呵呵
最终全部搞定了。。
一点点找错误才完全搞定的
不过我对linux确实不熟悉
所以有些提示要猜很久
makefile没问题
只是里面有些路径我感觉不是现在这两个库的标准路径了
5 楼 windr 2013-02-18  
你好,我自己试着和httpd一起安装,成功了一次
但是我还是想在没有apache的环境下也做一次
现在碰到的情况是编译的时候提示这个

ap_release.h:25:41: error: apr_general.h: No such file or directory

需要把这个加到哪里去吗
4 楼 100Continue 2013-02-17  
windr 写道
100Continue 写道
windr 写道
你好
对这个工具很感兴趣
能否给一个存在apache2的安装方法呢

如果是和httpd一起部署,那么你可以将ABSender.c源码替换 httpd目录下的support下的ab.c即可。其他部署方式与部署httpd是一致的。


我重现找了台干净的机器,安装上面给的步骤安装
到了make apr-skeletion
提示make: *** No rule to make target `apr-skeletion'.  Stop.

对了,sudo ln -s /usr/local/apr/lib/pkgconfig/apr-1.pc /usr/local/lib/pkgconfig/apr-1.pc
这一步的时候,文件不存在,我检查了一下,/usr/local/lib/pkgconfig/这个目录不存在
我是手工建的目录
但是之前安装的时候都没有错误的
能帮忙看一下吗?多谢


首先,多谢你的使用。
其次,关于软链接你的处理方式是可以的。
最后,关于make apr-skeletion 报错的问题,其实你可以跳过这一步,继续安装apr-util库。

依赖httpd的安装方式:
ABSender的源码,如果替换httpd源码内support文件夹下的ab.c文件,则可以直接通过httpd的configure,make,make install进行安装。 安装路径在configure的时候--prefix进行设置;

单独ABSender安装:
基本原则就是服务器上装有apr库和apr-util库。有了那两个库,ABSender就可以make ABSender了。如果对细节不了解,可以查看makefile内的代码。
3 楼 windr 2013-02-17  
100Continue 写道
windr 写道
你好
对这个工具很感兴趣
能否给一个存在apache2的安装方法呢

如果是和httpd一起部署,那么你可以将ABSender.c源码替换 httpd目录下的support下的ab.c即可。其他部署方式与部署httpd是一致的。


我重现找了台干净的机器,安装上面给的步骤安装
到了make apr-skeletion
提示make: *** No rule to make target `apr-skeletion'.  Stop.

对了,sudo ln -s /usr/local/apr/lib/pkgconfig/apr-1.pc /usr/local/lib/pkgconfig/apr-1.pc
这一步的时候,文件不存在,我检查了一下,/usr/local/lib/pkgconfig/这个目录不存在
我是手工建的目录
但是之前安装的时候都没有错误的
能帮忙看一下吗?多谢
2 楼 100Continue 2013-02-05  
windr 写道
你好
对这个工具很感兴趣
能否给一个存在apache2的安装方法呢

如果是和httpd一起部署,那么你可以将ABSender.c源码替换 httpd目录下的support下的ab.c即可。其他部署方式与部署httpd是一致的。
1 楼 windr 2013-01-31  
你好
对这个工具很感兴趣
能否给一个存在apache2的安装方法呢

相关推荐

    ABSender+apr+apr-util

    Apache Bench是Apache HTTP Server自带的一款简单HTTP请求性能测试工具,而ABSender在它的基础上进行了功能扩展和优化,提供了更多高级特性,使得用户能够更加精确地模拟真实场景,评估服务器在高负载情况下的性能...

    ABsender-master.zip

    5. **性能测试**:通过模拟多个并发请求,评估服务器的负载能力和响应时间,帮助优化系统性能。 6. **安全性测试**:可能包含一些基础的安全测试功能,如SQL注入或跨站脚本(XSS)测试。 在"ABSender-master"的源...

    modern-cv-style-letter:带有现代外观的德语字母的Easy LaTeX模板

    现代简历样式字母 这个项目的目标是为LaTeX(和... 如果这些数据不会持续变化, absender.lco打开文件absender.lco并查找“个人信息”部分即可。 行之间列出了所有必填字段。 %====================================

    cole_02_0507.pdf

    cole_02_0507

    工程硕士开题报告:无线传感器网络路由技术及能量优化LEACH协议研究

    内容概要:南京邮电大学工程硕士研究的无线传感器网络路由技术。通过对无线传感器网络路由协议的历史和研究现状进行了详细探讨,着重介绍了SPIN、LEACH、TEEN、pEGASIS等常见协议的特点、优势与局限性。文中分析了现有路由协议中的能量管理和网络覆盖问题,并提出了一种结合最大覆盖模型的改进型能量LEACH协议来应对这些问题。该研究旨在提高无线传感网络能量效率和覆盖效果,从而拓展其在各行业尤其是环境监测和军事安全领域的大规模应用。 适合人群:本篇文章主要面向具有无线传感网路研究背景或对此有兴趣的研究人员、工程师和技术爱好者,特别是在能源消耗控制上有较高需求的应用开发者。 使用场景及目标:①帮助理解和选择合适的无线传感器网络路由技术;②指导开发新路由协议时关注的关键要素;③为企业实施物联网相关项目提供理论支撑。 其他说明:文章强调了优化算法对于改善系统性能的重要性,并展示了具体的实施方案。通过仿真实验对不同协议的效果进行了验证,体现了科学研究的严谨态度与实践导向。

    【东海期货-2025研报】东海贵金属周度策略:金价高位回落,阶段性回调趋势初现.pdf

    【东海期货-2025研报】东海贵金属周度策略:金价高位回落,阶段性回调趋势初现.pdf

    图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作)

    【资源介绍】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,也可以作为小白实战演练和初期项目立项演示的重要参考借鉴资料。 3、本资源作为“学习资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研和多多调试实践。 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip

    diminico_02_0709.pdf

    diminico_02_0709

    agenda_3cd_01_0716.pdf

    agenda_3cd_01_0716

    A课件Python全栈开发线下班.zip

    目录: 第1章 Linux命令入门及VIM编辑器 第2章Python基础 第3章Python面向对象编程 第4章数据结构与算法 第5章UDP与TCP通信 第6章多进程编程 第7章多线程编程 第8章协程 第9章正则表达式 第10章 Http协议 Web服务器并发服务器 第11章网络通信过程 第12章 Python提高1 第13章 Python提高2 第14章 Mysq|基本使用 第15章 Mysq|查询 第16章Mysql与Python交互 第17章Mysql高级 第18章WSGI-miniWeb框架 第19章闭包装饰器 第20章 mini-web框架 添加路由-MySQL功能 第21章 mini-web框架 添加log日志路由支持正则 第22章元类与ORM-面向接口编程

    diminico_02_1108.pdf

    diminico_02_1108

    基于人工智能大模型技术的果蔬农技知识智能问答系统.pdf

    基于人工智能大模型技术的果蔬农技知识智能问答系统.pdf

    diminico_02_0307.pdf

    diminico_02_0307

    dawe_3cd_01_0717.pdf

    dawe_3cd_01_0717

    anslow_3ck_01_0319.pdf

    anslow_3ck_01_0319

    C#全自动多线程上位机源码编程:替代传统PLC触摸屏、以太网通信,强大功能多级页签,支持西门子PLC和OPC,安装KepserverEx5,链接其他数据库,C#多线程自动化工控屏幕上位机源码编程系统:

    C#全自动多线程上位机源码编程:替代传统PLC触摸屏、以太网通信,强大功能多级页签,支持西门子PLC和OPC,安装KepserverEx5,链接其他数据库,C#多线程自动化工控屏幕上位机源码编程系统:功能强大,多级页签,通信灵活,兼容多种配置与数据库连接,C#全自动多线程上位机源码编程 0, 纯源代码。 1, 替代传统plc搭载的触摸屏。 2, 工控屏幕一体机直接和plc通信。 3, 功能强大,多级页签。 4, 可以自由设定串口或以太网通信。 5, 主页。 6, 报警页。 7, 手动调试页。 8, 参数设定页。 9, 历史查询页。 10,系统设定页。 11, 赠送所有控件。 12,使用的西门子Plc。 13,注册opcdaauto.dll组件,用于使用opc。 15,安装kepserverEx5。 16,可以链接其他数据库。 ,核心关键词: C#; 全自动多线程; 上位机源码编程; 纯源代码; PLC替代; 通信; 强大功能; 多级页签; 串口或以太网通信; 主页; 报警页; 手动调试页; 参数设定页; 历史查询页; 系统设定页; 控件赠送; 西门子PLC; OPC

    移动应用开发全流程解析:从创意到上线与推广的最佳实践

    内容概要:本文详细介绍了移动应用开发的全过程,从创意构思和需求分析开始,依次阐述了原型设计、技术选型、前后端开发、测试优化、上线准备到最后的推广和后续维护,帮助读者深入了解和掌握各个环节的要点和最佳实践,特别注重实际操作中的问题和解决方法。文章不仅涵盖技术层面的内容,还包括市场营销和社会影响等方面的探讨。 适合人群:移动应用开发初学者和有一定经验的开发者,想要了解移动应用从构想直到推向市场全部过程的专业人士。 使用场景及目标:指导新创企业和个体开发者从零开始制作自己的应用程序,提供系统的理论知识以及实用技能指导。 阅读建议:本文适合分章节细读,尤其对于每个关键阶段,可以结合具体的案例研究深入理解;在实践应用时应注意参考文中提到的实际开发中容易碰到的问题及其解决方案。

    axios-v0.18.0

    axios-min.js

    Rust语言教程:从入门到进阶 Rust是一门注重性能、内存安全以及并发的系统编程语言 它被设计用来替代C和C++,同时提供更高的安全性和更好的并发支持 本教程将引导你从Rust的基础语法开始,逐步掌

    Rust语言教程:从入门到进阶 Rust是一门注重性能、内存安全以及并发的系统编程语言。它被设计用来替代C和C++,同时提供更高的安全性和更好的并发支持。本教程将引导你从Rust的基础语法开始,逐步掌握到更高级的概念。 一、Rust入门 1. Rust安装 工具链安装:通过rustup安装Rust工具链,它包含Rust编译器、Cargo包管理器以及标准库文档。 验证安装:在终端运行rustc --version和cargo --version来检查Rust和Cargo是否成功安装。 2. Hello, World! 创建一个新的Rust项目:cargo new hello_world --bin。 进入项目目录:cd hello_world。 编辑srcmain.rs文件,添加fn main() { println!(Hello, World!); }。 编译并运行项目:cargo run。 3. Rust基础语法 变量:使用let关键字声明变量,默认情况下变量是不可变的(immutable)。 数据类型:整数(i32, u32等)、浮点数(f32, f64)、布尔值(bool)、字

    anslow_05_0109.pdf

    anslow_05_0109

Global site tag (gtag.js) - Google Analytics