stress
- 安装:
apt install stress
- 压测CPU
-c <num>
: 产生 num 个进程,每个进程都反复不停的计算随机数的平方根
- 压测内存
-m <num>
: 产生 num 个进程,每个进程不断分配和释放内存-vm-bytes <size>
: 指定每个进程分配内存大小- 例如
200k, 300M, 1G
- 例如
--vm-keep
占住内存且不释放- 注意此时会进行 stride 操作,会消耗CPU (CPU 在用户态忙碌)
--vm-hang N
占住内存N秒- 此参数不会导致CPU升高
- 保持内存使用率80%
stress -m 1 --vm-keep --vm-bytes $(awk '/MemTotal/{printf "%d\n", $2 * 0.8;}' < /proc/meminfo)k
- 压测IO
-i <num>
: 产生 num 个进程,每个进程反复调用 sync() 将内存上的内容写到硬盘上
- 其他参数
-
-q
:静默
-t <num>
:num秒后结束进程--backoff <num>
:进程休眠 num 微秒再开始运行
-
wrk
- 安装:
apt install wrk
- 格式:
wrk <选项> <被测HTTP服务的URL>
- 选项:
-c <num>
跟服务器建立并保持的TCP连接数量-d <num>s/m/h
压测时间-t <num>
使用多少个线程进行压测--latency
在压测结束后,打印延迟统计信息- 包括平均值、标准偏差、最大值、正负一个标准差占比
-H <header>
为每一个HTTP请求添加HTTP头--timeout <num>s/m/h
超时时间,默认1s-s <path>
指定Lua脚本路径- 可以修改 method, header, body
- post请求的lua脚本
- Latency Distribution:响应时间分布
- Socket errors:错误统计
- 会统计 connect 连接失败请求个数(1754)、读失败请求个数、写失败请求个数、超时请求个数
- Requests/sec:QPS
- Transfer/sec:平均每秒读取数据的大小(吞吐量)