- 浏览: 117328 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (131)
- J2EE (5)
- 系统配置 (2)
- eclipse (3)
- MySQL (3)
- 数据库 (1)
- log4j (2)
- hibernate (5)
- JBOSS (3)
- https (2)
- Struts2 (7)
- javascript (2)
- CSS (4)
- HTTP (2)
- J2SE (1)
- apache (6)
- XML (1)
- android (3)
- session (3)
- Spring (3)
- 前端优化 (2)
- Drools (2)
- java笔试题 (8)
- SVN (2)
- linux (19)
- linux命令 (3)
- memcache (1)
- Servlet (2)
- Java RMI (1)
- 领域模型 (1)
- LVS (4)
- Linux shell (2)
- WEB (1)
- F5 (2)
- WinRAR (1)
- TCP (1)
- MQ (2)
- weblogic (1)
- winxp安装FTP (1)
- WebLogic和Tomcat (1)
- 虚拟机 (1)
- nexus-maven (1)
- jstl (1)
- jvm (1)
- Redis (2)
- mongodb (3)
- JAVA (2)
- mybatis (1)
- SQLserver (1)
- GC (1)
- zabbix (1)
- node (1)
最新评论
-
huosange:
简单明了,通俗易懂
JAVA为什么只允许单继承
linux--apache的ab命令
- 博客分类:
- linux
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头及内容; 压力测试时不要这么做哦:)
例: ./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 yum 下载至本地及使用本地缓存安装包
2018-12-29 08:04 30271.搭建yum服务器 2.使用yum下载缓存进行封装,然后使用 ... -
linux grep命令
2014-12-08 10:06 4901.作用 Linux系统中grep命令是一种强大的文本搜索工具 ... -
Linux中Samba详细安装
2014-12-08 09:05 464为了实现Windows主机与Linux服务器之间的资源共享,L ... -
linux挂载光驱以及yum配置与安装
2014-12-01 10:12 11131,使用命令ll /dev/* |gr ... -
linux培训笔记3
2014-10-29 11:55 530selinux: 传统权限:以 ... -
linux培训笔记2
2014-10-28 16:47 768linux的编辑器: 1、gedit & (必须在图形 ... -
linux 培训笔记
2014-10-27 11:33 737何世晓 server raid lsi 内存大于等于1G,带锂 ... -
linux培训笔记
2014-10-27 11:32 511/boot分区单独划分,大小为200M,其他采用LVM逻辑卷划 ... -
Linux: 字体安装
2014-04-14 11:58 651本实验以安装宋体( simsun.ttf ) 为例, 记录下安 ... -
make报错:"/usr/bin/ld: cannot find -lXXX"
2014-04-12 18:16 732在编译php时报错如下: # make 。。。 /usr/bi ... -
/bin/sh^M: bad interpreter:没有那个文件或目录解决
2014-03-09 18:55 868/bin/sh^M: bad interpreter:没有那个 ... -
linux定时任务的设置
2014-01-03 11:47 524为当前用户创建cron服务 ... -
Centos和RHEL的区别
2013-10-19 20:19 717CentOS简介关于CentOS CentOS是Comm ... -
Linux 查看CPU信息、机器型号等硬件信息
2013-10-11 14:20 488测试机器的硬件信息: 查看CPU信息(型号) # cat ... -
Linux 查看CPU,内存,硬盘
2013-06-08 10:59 6801 查看CPU 1.1 查看CPU个数 # cat /pr ... -
常见命令
2013-06-08 10:53 5061,打开开机启动项(win7):在菜单搜索框中输入msconf ... -
Linux init.d
2013-06-08 10:05 557本文包括3部分内容 1、 Linux的引导过程 2 ... -
Linux下which、whereis、locate、find 命令的区别
2013-06-04 17:40 597我们经常在linux要查找 ...
相关推荐
http://localhost:4999/stats开始测试docker-compose exec -T app ./vendor/bin/phpunit AB测试如果您使用linux,请确保您具有apache utils: sudo apt-get install apache2-utils 运行命令: ab | ab.exe -n 3000 -...
3、Linux下很全面的监控工具dstat:dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据...
o Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows o Not Not Not Not compatible with Gnu Compiler for Java (gcj) Note: Note: Note: Note: If JDK is already installed on your ...
安装 Linux linux直接yum -y install httpd-tools,然后ab -V测试 Windows 1、查看80端口有没有被占用 netstat -ano | findstr...D:\apache24\bin>ab -c 200 -n 1000 http:nginx负载均衡/压力方法 6 、测试结果 研究re
1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...
============= pcf-自动缩放 简单的缩放演示。 我最近用来演示CF的ruby应用程序。 它模仿了Matt Stine编写的Java应用程序,但是我用ruby重新... 该应用程序还显示了一些env变量,因此您可以讨论linux容器,隔离,服务绑
#每晚的21:30重启apache。 30 21 * * * /usr/local/etc/rc.d/lighttpd restart #每月1、10、22日 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart #每天早上6点10分 10 6 * * * date #每两个小时 0
1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...
cron服务是Linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务: /sbin/service crond start /sbin/service crond stop /sbin/service crond restart /sbin/service crond reload 以上1-4行...
1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...
我们大家在工作中,经常会碰到每隔多少天/小时/分钟执行一次脚本,或某个命令的情况。如果是每隔多少小时,多少分运行一次程序,在crontab中可能比较好实现一些,下面是一些示例及crontab的格式说明: 具体示例: #...
1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...
1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...
1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...
1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 ...
1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1...
1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...