我知道我可以在 ab 中使用“-c”开关来模拟一定数量的并发连接。有没有一种方法可以使用“ab”来模拟每秒 100 个新客户访问我的网站或获取文件?我想知道我的服务器在这样的负载下将如何表现。
答案1
我不确定你能用 做到这一点ab
。
为此,我使用 JMeter 允许您以更可定制的方式在服务器上注入负载。你可以尝试一下。
答案2
我还建议您进行调查,jmeter
因为您得到的结果ab
通常不是很有用。该工具太简单了,无法为您的服务器创建实际的工作负载。有时这就是您所需要的(例如,如果您不关注网络服务器,而只关注重负载期间系统范围内发生的情况),但它实际上并没有做很多事情。
我还同意这样的观点,即您无法真正轻松地使用ab
.你能得到的最接近的是这样的:
for x in $(seq 1 10); do
ab -c 100 -n 100 http://localhost/ &
sleep 1
done > /tmp/abOutput.txt
这将每秒启动一个新ab
实例,告诉它立即创建 100 个客户端连接。
这个答案有点超越了,ab
加入了一些逻辑bash
,输出有点难以阅读,但总比没有好。任何比这更复杂的事情,我强烈建议查看jMeter
.
答案3
如果你对Python有点熟悉,也许你可以给刺槐尝试一下。使用 Locust,您需要创建一个包含所有需要检查的 URL 的 Python 脚本。您还可以启动 POST 请求并将数据发布到服务器。完成后,启动 Locust 的 Web 界面(或仅使用命令行界面)并指定要模拟的用户数量。网络界面很好地呈现了实时更新。