首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在 Linux 上进行 Apache Bench 测试

在 Linux 上进行 Apache Bench 测试

作者头像
SmileNicky
发布2025-08-09 10:10:04
发布2025-08-09 10:10:04
15400
代码可运行
举报
文章被收录于专栏:Nicky's blogNicky's blog
运行总次数:0
代码可运行

在 Linux 上进行 AB 测试(Apache Bench,简称 ab)非常简单,适合快速对 Web 接口或页面进行压力测试。以下是详细的Linux AB 测试教程,包括安装、使用、参数说明、常见问题及进阶技巧。

✅ 一、安装 ab(Apache Bench)

代码语言:javascript
代码运行次数:0
运行
复制
# Ubuntu / Debian
sudo apt-get update
sudo apt-get install apache2-utils

# CentOS / RHEL
sudo yum install httpd-tools -y

验证安装:

代码语言:javascript
代码运行次数:0
运行
复制
ab -V

✅ 二、基本使用语法

代码语言:javascript
代码运行次数:0
运行
复制
ab [选项] <测试URL>
🔧 常用参数说明

参数

示例

说明

-n

-n 1000

总请求次数

-c

-c 100

并发用户数

-t

-t 60

最大测试时间(秒)

-k

-k

启用 HTTP KeepAlive

-p

-p post.txt

POST 请求数据文件

-T

-T "application/json"

指定 Content-Type

-H

-H "Authorization: Bearer xxx"

添加自定义请求头

-A

-A user:pass

添加 Basic 认证

-w

-w

以 HTML 表格形式输出结果


✅ 三、实战示例

1️⃣ GET 请求测试
代码语言:javascript
代码运行次数:0
运行
复制
ab -n 1000 -c 100 https://example.com/api/v1/users
2️⃣ POST 请求测试(带 JSON 数据)

准备 post.json 文件内容:

代码语言:javascript
代码运行次数:0
运行
复制
{"username": "test", "password": "123456"}

执行命令:

代码语言:javascript
代码运行次数:0
运行
复制
ab -n 500 -c 50 -p post.json -T "application/json" https://example.com/api/login

✅ 四、结果解读(关键指标)

指标

含义

Requests per second

吞吐量(QPS)

Time per request

平均响应时间

Failed requests

失败请求数

Transfer rate

每秒传输速率

50%/90%/95%

请求延迟分布


✅ 五、常见问题与解决方案

问题

原因

解决方案

apr_socket_recv: Connection reset by peer

服务器拒绝连接

降低并发数 -c

socket: Too many open files

文件句柄限制

ulimit -n 65535

ab: Invalid Concurrency

并发数 > 20000

修改源码限制

SSL 证书问题

证书无效

添加 -k 忽略验证


✅ 六、进阶技巧

✅ 脚本自动化测试
代码语言:javascript
代码运行次数:0
运行
复制
#!/bin/bash
for c in 10 50 100 200; do
  ab -n 1000 -c $c https://example.com/api >> results.txt
done
✅ 可视化结果(gnuplot)
代码语言:javascript
代码运行次数:0
运行
复制
ab -n 1000 -c 100 -g result.tsv https://example.com/api
# 用 gnuplot 绘图

✅ 七、注意事项

  • 测试机与目标服务器分开,避免干扰结果
  • 不要对线上生产环境直接压测
  • 结合 tophtopiftop 监控服务器资源
  • ab 是单线程工具,复杂场景建议使用 wrkJMeter

✅ 总结一句话

安装 → 写命令 → 看指标 → 调并发 → 出报告

如需更复杂测试(如带登录、带 Cookie、动态参数),建议结合 JMeterLocust 使用。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ✅ 一、安装 ab(Apache Bench)
  • ✅ 二、基本使用语法
    • 🔧 常用参数说明
  • ✅ 三、实战示例
    • 1️⃣ GET 请求测试
    • 2️⃣ POST 请求测试(带 JSON 数据)
  • ✅ 四、结果解读(关键指标)
  • ✅ 五、常见问题与解决方案
  • ✅ 六、进阶技巧
    • ✅ 脚本自动化测试
    • ✅ 可视化结果(gnuplot)
  • ✅ 七、注意事项
  • ✅ 总结一句话
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档