我需要为 apache 执行 3 种类型的性能测试。
- 500 个请求/秒,持续 60 秒
- 1000 个请求/秒,持续 60 秒
- 1500 个请求/秒,持续 60 秒
我浏览了 httperf 手册,但我真的对各种选项感到困惑,例如 --rate 、 --num-call 、 --num-conn 、 --wsess
任何人都可以帮助我关注:
如何指定持续时间以及如何配置 --rate 、 --num-conn 和 --num-calls 以便测试将在指定的持续时间和指定的请求数/秒内执行?
我会做这样的事情:
httperf --hog --server www.google.com --uri "/" --num-conn 30000 --num-call 1 \
--timeout 5 --rate 500 --port 80
httperf --hog --server www.google.com --uri "/" --num-conn 60000 --num-call 1 \
--timeout 5 --rate 1000 --port 80
httperf --hog --server www.google.com --uri "/" --num-conn 75000 --num-call 1 \
--timeout 5 --rate 1500 --port 80
注意 1:指定创建连接/会话的--rate固定速率。
NOTE2:指定--num-conn要创建的连接总数。因此,如果您正在创建X req/sec,您需要执行X * 60 秒,以指定时间长度。
最后一点是使用 httperf 最难弄清楚的事情。时间长度是速率和连接数的函数,您无需指定它。
所以对于你的例子:
500 req/sec @ 60 sec duration = 500 * 60 = 30,000 connections
1000 req/sec @ 60 sec duration = 1000 * 60 = 60,000 connections
1500 req/sec @ 60 sec duration = 1500 * 60 = 90,000 connections
有关 httperf 的更多详细信息,请参见手册页。
--rate=X Specifies the fixed rate at which connections or sessions are created.
Connections are created by default, sessions if option --wsess or
--wsesslog has been specified. In both cases a rate of 0 results
in connections or sessions being generated sequentially (a new
session/connection is initiated as soon as the previous one
completes). The default value for this option is 0.
--num-conn=N This option is meaningful for request-oriented workloads only. It
specifies the total number of connections to create. On each
connection, calls are issued as specified by options --num-calls
and --burst-length. A test stops as soon as the N connections have
either completed or failed. A connection is considered to have
failed if any activity on the connection fails to make forward
progress for more than the time specified by the timeout options
--timeout and --think-time‐out. The default value for this option is 1.