使用ab工具对多个URL进行基准测试

13

我想使用 "ab" 工具对网站进行负载测试。但是,我不太清楚如何以轮询的方式访问多个URL。有没有什么技巧可以做到这一点?

我看到有些人在 ab 命令前添加 & 符号,但这并不是我要做的。

4个回答

9

3

用于比较多个URL性能的另一种替代方案是siege

# install
sudo apt install siege

# show config
siege -C

# show help
siege --help   
  1. 创建一个包含URL列表的文件,例如在/var/tmp/urls.txt中
  2. 运行siege

不使用并发,运行10个测试:

siege -b -c 1 -r once -i -f /var/tmp/urls_file.txt --no-parser --no-follow

要像ab一样只运行一个URL的siege,您可以省略-f参数并将URL作为参数传递:

siege -b -c 1 -r 10 --no-parser --no-follow "https://example.org"

示例输出:

{   "transactions":                   10,
    "availability":               100.00,
    "elapsed_time":                 3.96,
    "data_transferred":             0.43,
    "response_time":                0.40,
    "transaction_rate":             2.53,
    "throughput":                   0.11,
    "concurrency":                  1.00,
    "successful_transactions":             0,
    "failed_transactions":                 0,
    "longest_transaction":              0.43,
    "shortest_transaction":             0.00
}

选项:

  • -c:并发用户数,默认为10。
  • -r--reps=NUM:运行测试的次数。 如果使用--reps=once,则每个用户将仅通过urls.txt文件运行一次。
  • -i--internet:模拟互联网用户,随机访问URL。

3

使用 Apache Benchmark(AB)无法从单个实例访问多个 URL。

你必须使用多个测试或者使用像 JMeter 这样的工具来满足需求。

注意:Apache Benchmark 不会测试诸如图像处理、ajax 调用等在实际情况中可能遇到的内容。


1
你可以使用parallel命令同时运行多个ab命令。更多详细信息请参见Simon Holywell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接