1、概述
压力测试是服务开发中十分重要的一环,需要测试服务在高并发的环境下功能的稳定性以及性能的瓶颈,根据测试结果输出详细的测试数据,有针对性地对服务进行优化。
2、测试机器
系统 | CentOS release 6.5 (Final) |
CPU | model name : Intel(R) Pentium(R) CPU G2030 @ 3.00GHz processor : 1 cpu cores : 2 |
内存 | MemTotal: 3624428 kB |
3、测试工具
3.1 Siege
它是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力。可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。
3.2 Siege 使用手册
3.2.1 Siege 安装
通过 yum install siege 命令可以安装,但是一般会根据系统源进行下载,下载的版本比较低,建议根据下列操作步骤安装最新版本。
wget http://download.joedog.org/siege/siege-4.0.4.tar.gz tar -zxvf siege-4.0.4.tar.gz cd siege-4.0.4/ ./configure make make install |
3.2.2 命令参数
siege -c 并发用户数 -r 循环次数 --header "http协议头设置" '请求链接' |
3.2.2 测试结果
测试50,000 个数据包,500 个用户每个用户发送 100 个测试包。header头填充 Cookie 的相关信息,token 和 userid。
操作方法:POST
协议:url: http://192.168.1.1:1111/xxx/im/relation/user/friend/check
协议包体:./friend_check.json
siege -c 500 -r 100 --header "Cookie:token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQjIsImV4cCI6MTU1MjE4MTAzMH0.Cz8MN2kREkueZC4tAwGw_r0qv7b0oRgli8mYOozXHG8;userid=2" 'http://192.168.1.1:1111/xxx/im/relation/user/friend/check POST < ./friend_check.json' |
压测结果:
Transactions: 500000 hits Availability: 100.00 % Elapsed time: 115.34 secs Data transferred: 19.55 MB Response time: 0.20 secs Transaction rate: 4335.01 trans/sec Throughput: 0.17 MB/sec Concurrency: 865.90 Successful transactions: 500000 Failed transactions: 0 Longest transaction: 3.03 Shortest transaction: 0.00 |
Transactions | 500000 hits | 已完成的事务总数 |
Availability | 100.00 % | 完成的成功率 |
Elapsed time | 115.34 secs | 总共使用的时间 |
Data transferred | 19.55 MB | 响应中数据的总大小 |
Response time | 0.20 secs | 显示网络连接的速度 |
Transaction rate | 4335.01 trans/sec | 平均每秒完成的事务数 |
Throughput | 0.17 MB/sec | 平均每秒传送的数据量 |
Concurrency | 865.90 | 实际最高并发链接数 |
Successful transactions | 500000 | 成功处理的次数 |
Failed transactions | 0 | 失败处理的次数 |
Longest transaction | 3.03 | 最长事务处理的时间 |
Shortest transaction | 0.00 | 最短事务处理时间 |