一、wrk
wrk是一款开源的性能测试工具 ,简单易用,没有Load Runner那么复杂,他和 apache benchmark(ab)同属于性能测试工具,但是比 ab 功能更加强大,并且可以支持lua脚本来创建复杂的测试场景。
wrk 的一个很好的特性就是能用很少的线程压出很大的并发量, 原因是它使用了一些操作系统特定的高性能 I/O 机制, 比如 select, epoll, kqueue 等。 其实它是复用了 redis 的 ae 异步事件驱动框架. 确切的说 ae 事件驱动框架并不是 redis 发明的, 它来自于 Tcl的解释器 jim, 这个小巧高效的框架, 因为被 redis 采用,而更多的被大家所熟知。
wrk:地址
二、ubuntu 版本 安装
1) 环境
- unbuntu 18.04
ps: x86 或 arrch 架构都适用
2) 安装工具
# 安装 make 工具
sudo apt-get install make
# 安装 gcc编译环境
sudo apt-get install build-essential
# 安装openssl的库
sudo apt-get install libssl-dev
# 安装 压缩解压的库
sudo apt-get install zip
3)构建/编译
git clone https://github.com/wg/wrk.git
cd wrk
make -j2
# pwd # 获取 wrk 路径
# 如 /xxx/wrk
# 软链接 一个去 bin目录
sudo ln -s /xxx/wrk/wrk /usr/local/bin
4)检测版本
wrk -v # 获得版本
# -t 需要模拟的线程数
# -c 需要模拟的连接数
# --timeout 超时的时间
# -d 测试的持续时间
5)测试
# 12 个线程 , 模拟 100 个链接 , 30秒结束
wrk -t12 -c100 -d30s http://www.baidu.com
# Latency:响应时间
# Req/Sec:每个线程每秒钟的完成的请求数
# Avg:平均
# Max:最大
# Stdev:标准差
# +/- Stdev: 正负一个标准差占比
# 标准差如果太大说明样本本身离散程度比较高. 有可能系统性能波动很大.
# -------------------------------
# Requests/sec: (QPS/每秒请求数)