服务器性能压测工具:自己动手给服务器做个性能压力测试,这些工
为什么需要给服务器做压力测试?
刚上线的新服务器,或者刚换完配置的系统,心里总没底:到底能抗多少并发?
会不会一上线就崩?
这时候就需要服务器性能压测工具来帮忙模拟真实用户请求,提前暴露短板。
本文选用两款最适合新手的工具——ab (Apache Bench) 和 wrk,它们安装简单、输出清晰,照着做就能跑出第一份报告。
准备工作:安装工具与环境确认
1. 确认操作系统
不管你是 CentOS 7、Ubuntu 20.04 还是 Debian,下面命令都兼容。
先登录你的服务器(SSH 或用宝塔终端)。
2. 安装 ab
ab 是 Apache 自带的压测工具,无需安装完整 Apache,只需安装 httpd-tools 包。
# CentOS / RHEL / Fedora
yum install -y httpd-tools

Ubuntu / Debian
apt update && apt install -y apache2-utils
安装完成后输入 ab -V 如果显示版本号说明成功。
3. 安装 wrk
wrk 性能更强劲,但需要编译。
先安装依赖:
yum install -y git gcc make openssl-devel # CentOS
apt install -y git gcc make libssl-dev # Ubuntu然后从 GitHub 拉取源码:
git clone https://github.com/wg/wrk.git
cd wrk && make
cp wrk /usr/local/bin/输入 wrk --version 验证。
实战一:用 ab 做一次并发压力测试
假设你的站域名是 https://example.com,测试首页:
ab -n 1000 -c 10 https://example.com/-n 1000:总请求数 1000 个-c 10:同时并发 10 个连接
看到类似输出:
Requests per second: 245.22 [#/sec] (mean)
Time per request: 40.780 [ms] (mean, across all concurrent requests)
Failed requests: 0重点关注 Requests per second(每秒请求数,越大越好)和 Failed requests(失败数,0 为正常)。
如果失败数多,说明服务器扛不住当前并发。
实战二:用 wrk 压测更真实的场景
wrk 用法类似,但可以设置线程数,更贴近真实多线程访问:
wrk -t4 -c100 -d30s https://example.com/-t4:启动 4 个线程-c100:保持 100 个并发连接-d30s:持续压测 30 秒
输出片段:
Requests/sec: 3120.56
Latency (平均延迟): 31.24mswrk 会给出延迟分布(50%、75%、99% 分位延迟),可以更精准判断性能拐点。
如果 99% 延迟远超平均值,说明有些请求被卡住了,需要排查数据库或 PHP-FPM 设置。
常见问题与避坑指南
1. 压测本机时出现 apr_socket_connect: 连接被拒绝
检查目标服务(如 Nginx、Apache)是否运行:
systemctl status nginx以及防火墙是否放行了对应端口(默认 80/443)。
如果服务器在本地压测,建议从另一台机器发起请求,避免压测工具占用服务器资源。
2. wrk 提示 no support for LuaJIT
wrk 默认支持 Lua 脚本来模拟复杂请求,但如果你不需要,忽略即可;
若执意要支持,需先安装 LuaJIT 再重新编译 wrk(零基础用户建议直接忽略,不影响基本压测)。
3. 压测过程中服务器直接卡死
并发数一开始不要太大,从 -c 10 或 -c 100 逐步增加,观察 CPU 和内存占用。
同时建议先用 htop 或宝塔面板监控资源,避免压测导致生产环境故障。
效果验证:读懂报告并及时优化
一次完整的压测结束后,你会得到一组数字。
新手可以按这个顺序判断:
- 失败请求是否为 0? 不为 0 则先检查网络、服务状态。
- 每秒请求数(QPS)是否满足预期? 比如一个 1M 并发/天的网站,QPS 至少要到 50 以上。
- 平均延迟是否在可接受范围? 普通页面建议 <200ms,API 接口 <500ms。
- 99% 延迟是否远高于平均值? 如果差 3 倍以上,说明存在长尾请求,需要优化慢查询或缓存。
如果你发现 QPS 偏低,可以从这几个方向入手:升级带宽、开启 Nginx 缓存、启用 PHP OPCache、使用 Redis 缓存数据库查询。
记住,服务器性能压测工具的价值就是帮你找到短板,而不是只看跑分。
现在你已经学会自己动手压测了,下次碰到服务器慢就别瞎猜了,直接跑一遍数据再来优化。
遇到异常时优先回看本文的避坑和高频问题部分,基本都能解决。
