`

linux--apache的ab命令

 
阅读更多
1. 最基本的关心两个选项 -c -n
例: ./ab -c 100 -n 10000 http://127.0.0.1/index.php

-c 100 即:每次并发100个
-n 10000 即: 共发送10000个请求

2. 测试结果分析

[junjie2@login htdocs]$ /data1/apache/bin/ab -c 1000 -n 50000 "http://10.10.10.10/a.php "
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking 10.65.129.21 (be patient)
Completed 5000 requests
Completed 10000 requests
Completed 15000 requests
Completed 20000 requests
Completed 25000 requests
Completed 30000 requests
Completed 35000 requests
Completed 40000 requests
Completed 45000 requests
Finished 50000 requests
Server Software: Apache/1.3.33
Server Hostname: 10.65.129.21
Server Port: 80

Document Path: /a.php //请求的资源
Document Length: 0 bytes // 文档返回的长度,不包括相应头

Concurrency Level: 1000 // 并发个数
Time taken for tests: 48.650 seconds //总请求时间
Complete requests: 50000 // 总请求数
Failed requests: 0 //失败的请求数
Broken pipe errors: 0
Total transferred: 9750000 bytes
HTML transferred: 0 bytes
Requests per second: 1027.75 [#/sec] (mean) // 平均每秒的请求数
Time per request: 973.00 [ms] (mean) // 平均每个请求消耗的时间
Time per request: 0.97 [ms] (mean, across all concurrent requests) // 就是上面的时间 除以并发数
Transfer rate: 200.41 [Kbytes/sec] received // 时间传输速率

Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 183 2063.3 0 45003
Processing: 28 167 770.6 85 25579
Waiting: 21 167 770.6 85 25578
Total: 28 350 2488.8 85 48639

Percentage of the requests served within a certain time (ms)
50% 85 // 就是有50%的请求都是在85ms内完成的
66% 89
75% 92
80% 96
90% 168
95% 640
98% 984
99% 3203
100% 48639 (last request)

3. 用127.0.0.1来访问可以排除网络的因素,不过在Linux上用本机的对外ip访问也是不走网卡,没有网络消耗的



ab 帮助:

1.  我们知道用ab测试时,最大并发不能超过1024,其实ab本身没有做这个限制,而是系统限制每个进程打开的最大的文件数为1024,ulimit查看如 下:

[root@localhost ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 1024
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 32765
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

而且open files这个选项在一般的系统里是不允许修改成无限制的,如下:
[root@localhost ~]# ulimit -n unlimited
bash: ulimit: open files: cannot modify limit: Operation not permitted

但是稍微修改大一些或者是小一些,还是允许的,我们修改的小一 些试试:
[root@localhost ~]# ulimit -n 1020
[root@localhost ~]# ulimit -n
1020
[root@localhost ~]#

在用ab测试,错误如下:

socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 1019
ioctl(1019, FIONBIO, [1])               = 0
gettimeofday({1243919682, 867688}, NULL) = 0
connect(1019, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("10.55.38.18")}, 16) = -1 EINPROGRESS (Operation now in progress)
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = -1 EMFILE (Too many open files )
close(-1)                               = -1 EBADF (Bad file descriptor)
第1019个还能正常打开,下一个就报Too many open files的 错误了

确实有效,那么我们修改大一些吧:

[root@localhost ~]# ulimit -n 10240
[root@localhost ~]# ulimit -n
10240
[root@localhost ~]#

但是我们发现改大却不行,这里却冒出了一个AF_AX25 的名词:
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 1024
ioctl(1024, FIONBIO, [1])               = 0
gettimeofday({1243919592, 254950}, NULL) = 0
connect(1024, {sa_family=AF_INET , sin_port=htons(80), sin_addr=inet_addr("10.55.38.18")}, 16) = -1 EINPROGRESS (Operation now in progress)
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 1025
ioctl(1025, FIONBIO, [1])               = 0
gettimeofday({1243919592, 255242}, NULL) = 0
connect(1025, {sa_family=AF_AX25 , sa_data="\0P\n7&\22\0\0\0\0\0\0\0\0"}, 16) = -1 EAFNOSUPPORT (Address family not supported by protocol)


这个AF_AX25可能是buffer溢出造成的,但不确定 哦:)。

另:
-n 可以指定最大请求数,但是也不能超过50000哦:)
-v n   当n>=2 时,可以显示发送的http请求头,和响应的http头及内容; 压力测试时不要这么做哦:)
分享到:
评论

相关推荐

    linux-Apache

    4. Apache Bench (`ab`):进行性能测试,评估服务器处理请求的能力。 七、备份与迁移 1. 备份:使用`tar`命令将Apache配置文件、网站文件和日志文件打包成`.tar.gz`文件,例如: ``` sudo tar -czvf apache_backup...

    Apache网站压力测试工具ab使用教程.zip

    1. **在Linux上安装**:如果你使用的是基于Debian的系统(如Ubuntu),可以通过`sudo apt-get install apache2-utils`命令安装;如果是基于Red Hat的系统(如CentOS),则使用`sudo yum install httpd-tools`。 2. ...

    linux 下实现office预览功能需要的环境安装以及配置

    wget https://download.oracle.com/otn/java/jdk/8u211-b12/478a62b7d4e34b78b671c754eaaf38ab/jdk-8u211-linux-x64.tar.gz?AuthParam=1556526529_ff0d654b4dc02f6bddc87cf330595b53 ``` 或者访问Oracle官网下载...

    Apache24 下载

    要使用Apache AB,首先确保Apache服务器正在运行,然后在命令行中输入以下命令: ```bash ab -n &lt;请求次数&gt; -c &lt;并发用户数&gt; http://&lt;服务器地址&gt;/ ``` - `-n` 参数指定要发送的请求数。 - `-c` 参数设置并发连接...

    使用Apache ab工具对Apache服务器进行简单的压力测试

    安装完成后,你就可以在终端中运行ab命令了。下面是对ab命令常用参数的详细解释: - `-n requests`:指定要执行的总请求数。这是你希望ab工具向服务器发送的HTTP请求的总数。 - `-c concurrency`:设置并发连接数...

    压力测试工具-ab

    `ab`通常作为Apache HTTP服务器的一部分预装在Linux或Unix系统中。对于未预装的环境,可以通过包管理器(如`apt-get`、`yum`或`brew`)进行安装。在命令行中输入`ab`即可启动工具。 ### 3. 基本用法 `ab`的基本...

    Installing Accelerated OpenSSL (OCF) and Apache* on Linux*

    根据提供的文档信息,本文将详细介绍如何在Linux系统上安装并配置加速版OpenSSL(OCF)及Apache服务器,这是英特尔官方发布的技术文档,主要应用于基于Intel® QuickAssist Technology的安全应用开发环境中。...

    基于linux的apache+mysql+php的安装配置.docx

    基于 Linux 的 Apache+MySQL+PHP 的安装配置 本文档详细介绍了基于 Linux 平台的 Apache、MySQL 和 PHP 的安装配置过程。Apache 是一个流行的 Web 服务器软件,MySQL 是一个小型关系型数据库管理系统,PHP 是一种...

    linux下部署JAVAEE项目

    在 Linux 下安装 JDK 需要从 Oracle 官方网站下载对应的安装包,下载完成后,使用 cd 命令切换到下载的目录,使用 ./jdk-6u27-linux-i586.bin 命令安装 JDK。安装完成后,需要配置环境变量,编辑 /etc/profile 文件...

    性能测试工具wrk-4.1.0-linux

    wrk以其轻量级、高性能和易于扩展性,区别于其他性能测试工具,如Apache JMeter、ab(Apache HTTP Server Benchmarking Tool)等。它更适合对高并发、短连接场景下的Web服务进行压力测试,而JMeter则更适合功能测试...

    httpd在centos7.6下的离线安装包

    4. `httpd-tools-2.4.6-90.el7.centos.x86_64.rpm`:这个包包含了一些与httpd相关的命令行工具,如`apachectl`用于控制httpd服务,`ab`用于性能测试等。 5. `mailcap-2.1.41-2.el7.noarch.rpm`:Mailcap文件定义了...

    《Linux网络操作系统》2套期末考试卷AB卷带答案习题试卷模拟卷.doc

    Linux 网络操作系统期末考试卷 AB 卷带答案习题试卷模拟卷 本资源摘要信息涵盖了 Linux 网络操作系统的多个方面,包括 Linux 的历史、网络协议、文件系统管理、服务器配置、网络安全等。下面是其中的一些知识点: ...

    我的CGI框架,基于apache的

    在这个例子中,命令`ab -n 100 -c 100 http://www.u8group.com/cgi-bin/echo-cpp.e.fcgi`表示将发起100次并发度为100的请求到指定的FastCGI应用。 总结来说,这个基于Apache的CGI框架是一个功能完善的开发工具,它...

    Centos7.1+apache+mysql+php+zendGuardload配置教程.docx

    可以使用以下命令安装 Apache 扩展: yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql 7. 安装 MySQL 在 CentOS 7.1 中,需要安装 MySQL 数据库,以便能够存储数据。可以使用以下命令安装 MySQL: ...

    压力测试工具ab使用

    1. 安装:在大多数Linux发行版中,ab工具通常作为Apache HTTP Server的一部分预装。如果未安装,可以通过包管理器(如`apt-get`或`yum`)轻松获取。例如,在Ubuntu上,可以运行`sudo apt-get install apache2-utils`...

    ApacheBench测试详解

    - 基本命令格式:`ab -n &lt;请求次数&gt; -c &lt;并发数&gt; &lt;URL&gt;` - `-n` 参数定义了要发送的请求数量。 - `-c` 参数定义了同时进行的并发请求数。 - `&lt;URL&gt;` 是要测试的Web服务器地址。 **二、主要选项及参数** 1. **...

    Linux Commands

    - **命令功能**: `ab` 是一个用于测试 Apache HTTP 服务器性能的工具,通过向服务器发送大量请求来评估其响应能力。 - **应用场景**: 在部署 Web 应用之前,可以使用 `ab` 来测试服务器的压力承受能力和性能瓶颈。 -...

Global site tag (gtag.js) - Google Analytics