apache压力测试-ab
1.apache自带的压力测试软件ab测试
2. apache benchmark,apache基准测试工具
3.由httpd-2.2.3-43.el5.centos软件提供
4.ab压力测试时,可能要创建很多测试文件并删除,文件过多系统就会报错, 修改如下:
ulimit -n 3600
ab测试常用命令
格式: ./ab [options] [http://]hostname[:port]/path
-n 测试会话中所执行的请求个数,默认时,仅执行一个请求
-c 一次产生的请求个数。默认是一次一个
-t 测试所进行的最大秒数
-v 设置显示信息的详细程度 - 4或更大值会显示头信息,3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息
ab测试举例
./ab -c 1000 -n1000 http://127.0.0.1/index.php
-n 1000 表示总请求数为1000
-c 10 表示并发用户数为10
http://127.0.0.1/index.php 表示这些请求的目标url
Concurrency Level | 并发数 |
Time taken for tests | 总测试时间 |
Complete requests | 总请求数 |
Total transferred | 总传输量 |
Requests per second | 每秒请求数 |
Time per request | 每请求时间 |
Transfer rate | 传输率 |
mysql压力测试-mysqlslap
MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单
mysqlslap的常用参数:
--auto-generate-sql, -a
自动生成测试表和数据
--auto-generate-sql-load-type=type
测试语句的类型。取值包括:read,key,write,update和mixed(默认)
--number-of-queries=N
总的测试查询次数(并发客户数×每客户查询次数)
--concurrency=N, -c N
并发量,也就是模拟多少个客户端同时执行select。可指定多个值,以逗号或者–delimiter参数指定的值做为分隔符
--engine=engine_name, -e engine_name
创建测试表所使用的存储引擎,可指定多个
--iterations=N, -i N
测试执行的迭代次数
--detach=N
执行N条语句后断开重连
--debug-info, -T
打印内存和CPU的信息
--only-print
只打印测试语句而不实际执行
mysqlslap测试举例
$mysqlslap -a --only-print
自动生成测试表和数据,并且全部打印出来
$mysqlslap -a --concurrency=50,100--number-of-queries 1000 --debug-info
50和100个并发分别得到一次测试结果(Benchmark),并发数越多,执行完所有查询的时间越长
$ mysqlslap -a --concurrency=50,100--number-of-queries 1000 --iterations=5 –debug-info
为了准确起见,可以多迭代测试几次
/usr/local/mysql/bin/mysqlslap --no-defaults-uroot -p123 -a --concurrency=50,100 --number-of-queries 3000 --iterations=5--engine=myisam,innodb --debug-info
50和100个并发用户测试,连续3000次增删改查,迭代5次
测试同时不同的存储引擎的性能进行对比