PHP技术,PHP研究及学习,Python学习,人工智能,大数据服务

PHP+Python » 服务器 » 使用ab进行网站压力测试,web压力测试工具ab

使用ab进行网站压力测试,web压力测试工具ab

今天在百度文库里面打课程来听了,发了ab这个命令的作用,并在网站查找了一下资料。记录之... ab是apache自带的一款压力测试工具,安装完apache后就有了,一般在/usr/bin目录下。系统为CentOS。 ab使用方法形如 ab -c 20 -n 1000 http://www.example.com/ -c:并发数 -n:总请求数 ===我蛋疼的看了源代码,这段可以跳过=== ab是如何分配并发和请求数的呢? 在test函数中,先给连接数和请求数分配内存,组http报文头、组http请求报文默认使用GET方法(最大2048个字节) 进入for循环 for (i = 0; i < concurrency; i++) { con[i].socknum = i; start_connect(&con[i]); } start_connect函数里,concurrency有几个并发,就创建几个socket连接 apr_socket_create 设置TCP窗口大小 apr_socket_connect started++ 打开的并发数加加 进入write_request函数 apr_socket_send 把request里的内容通过socket发过去最大2048个字节 发送数据是一个字节一个字节发的吗? 一个并发创建完成及一次请求发送后,出上一个for循环进入一个do while循环 这个do while循环里面又有一个for循环 for (i = 0; i < n; i++) n为并发数 进入read_connection函数 apr_socket_recv 进入close_connection函数 统计一些成功失败数量 平均时间,到一定数量会显示"Completed XXXX requests" apr_socket_close 然后connect again,再次调用start_connect函数创建socket连接,再write_request,循环n次 然后return =================================== 假设c为并发数,n为总请求数,done为已完成数。从这里可以看出ab的运作方式是创建c个并发,同时发送c个请求,然后关闭socket连接,如果done小于n,则继续创建c个并发,同时发送c个请求,然后关闭socket连接,一直循环,直到done等于n时退出。 3、ab运行完成后会有比较详细的结果 Server Software: web服务器软件及版本 Server Hostname: 请求的地址 Server Port: 请求的端口 Document Path: 请求的页面路径 Document Length: 页面大小 Concurrency Level: 并发数 Time taken for tests: 测试总共花费的时间 Complete requests: 完成的请求数 Failed requests: 失败的请求数 Write errors: 写入错误 Total transferred: 总共传输字节数,包含http的头信息等 HTML transferred: html字节数,实际的页面传递字节数 Requests per second: 每秒处理的请求数,服务器的吞吐量(重要) Time per request: 平均数,用户平均请求等待时间 Time per request: 服务器平均处理时间 Transfer rate: 平均传输速率(每秒收到的速率) 4、其它注意事项 1) ab并发数不能大于请求数,会提示 ab: Cannot use concurrency level greater than total number of requests 2) 请求数默认不能超过1024个,会提示 socket: Too many open files (24) 可用ulimit -n命令修改,例如:ulimit -n 8192 (设置用户可以同时打开的最大文件数)。 3) 并发数默认不能大于20000个,会提示 ab: Invalid Concurrency [Range 0..20000] 需要修改apache源代码support目录下ab.c文件,找到: #define MAX_CONCURRENCY 20000 将宏定义的值改大,重新编译安装apache。 4) 提示 apr_socket_recv: Connection reset by peer (104) 网上说是apr-util有些问题,不太稳定,多试几次就好了。 5) 还有单独的apache bench源码包,及如何单独安装ab教程 下载:http://apachebench-standalone.googlecode.com/files/ab-standalone-0.1.tar.bz2 安装教程:https://code.google.com/p/apachebench-standalone/wiki/HowToBuild 参考资料: http://www.cnblogs.com/yjf512/archive/2011/05/24/2055723.html http://www.kwx.gd/CentOSApp/CentOS-Apache-Bench.html http://blog.csdn.net/largetalk/article/details/7337102 http://apr.apache.org/docs/apr/0.9/group__apr__network__io.html

本站使用ThinkPHP框架开发读图网主题,目前托管在阿里云,图片由读图网提供. 蜀ICP备12031064号

Copyright © 2011-2018adophper.com All Rights Reserved.