文档首页> 技术教程> 用 ab 与 wrk 给网站做压力测试

用 ab 与 wrk 给网站做压力测试

发布时间:2026-05-22 15:44        更新时间:2026-05-23 04:12
压测不一定需要复杂平台,两条命令就能给网站一个量化的答案。ab(Apache Bench,Apache 自带的 HTTP 基准测试工具)胜在处处有,wrk(多线程压测工具)胜在性能和延迟统计。 准备:CentOS 装 ab 用 yum install -y httpd-tools,Ubuntu 用 apt install -y apache2-utils;wrk 需要编译或从发布页下载。压测机与被测机分开部署,避免自己压自己。 一、ab 起步 ab -n 2000 -c 100 http://被测地址/path/,-n 是总请求数,-c 是并发数,这个组合意思是 100 个并发连着发完 2000 个请求。关注输出里的 Requests per second(每秒处理数)、Time per request(平均耗时)和 Failed requests(失败数),非 2xx 响应会在下面单独列出来。先测静态页再测业务接口,把网络能力和业务能力分开看。ab 的缺点是自身单线程,并发上千后数字容易失真,这时换 wrk。 二、wrk 加压 wrk -t4 -c200 -d30s --latency http://被测地址/path/,四个线程、200 条连接、压 30 秒。wrk 的优势在延迟分布:--latency 输出的 99% 分位延迟,比平均值更贴近慢用户的真实感受,平均值容易被多数快请求摊平。wrk 支持用 Lua 脚本构造带参数的请求,简单场景用不上,复杂接口用得着。 三、指标怎么读 单次绝对值意义有限,同参数对比才有价值:优化前一轮、优化后一轮,QPS 和分位延迟的变化就是改动效果的量化。每轮之间留几分钟让连接和缓存恢复原状;记录时把命令原样存下来,保证下次复现的是同一场景。CPU 没到顶而吞吐上不去,瓶颈多半在锁或后端依赖,压测数据只是入口。 四、隔离与边界 小并发起步,阶梯往上加,观察错误率拐点即可;被测机上有数据库等无关服务时,确认资源余量,别把生产数据卷进来;只压自己的地址,别人的服务再慢也不归你测。压测机自身带宽不足也会让数字缩水,先确认出口够用。 压测报告存档一份,容量规划时用得上。数字要配着时间戳和当时的配置快照一起留,对比测试时注意两次的机器状态尽量一致,重启过服务就重跑基线。