高性能服务器压力测试
服务器性能测试
测试类型
服务器性能测试主要分为两类:
- 连接吞吐测试: 测试TCP的连接建立和断开性能
- 数据吞吐测试: 测试数据收发能力
测试工具尝试
1. hping3测试
hping3主要用于TCP/UDP/ICMP测试,可以用于简单的TCP并发连接测试。
测试命令:
1 | hping3 -S -p 8080 -c 200 --fast 127.0.0.1 |
参数说明:
- -S:发送SYN包(建立TCP连接)
- -p 8080:目标端口8080
- -c 200:发送200个连接
- –fast:快速发送请求
2. 测试问题
hping3存在问题:只发送SYN包而不完成完整的三次握手。
尝试使用nping:
- 可以同时发送SYN和ACK
- 但服务器直接返回RST拒绝连接
- 可能是因为同时发送导致的问题
3. wrk测试
最后尝试使用http测试工具wrk:
1 | wrk -t4 -c1000 -d10s http://127.0.0.1:8082/ |
参数说明:
- 4个线程
- 1000并发连接
- 持续10秒
测试结果:
1 | Running 10s test @ http://127.0.0.1:8082/ |
4. 最终方案
虽然wrk需要解析HTTP协议会带来额外开销,但考虑到测试的完整性,最终还是选择了:
- 使用简单的HTTP响应
- 通过自定义client.cpp进行压力测试
评论