首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在几秒钟内发送50.000个HTTP请求?

如何在几秒钟内发送50.000个HTTP请求?
EN

Stack Overflow用户
提问于 2021-08-05 10:53:19
回答 2查看 103关注 0票数 1

我想为我的应用程序的一个功能创建一个负载测试。它使用的是Google App Engine和VM。用户向App Engine发送HTTP请求。这个引擎在几秒钟内收到数以千计的请求是现实的。所以我想创建一个负载测试,在1-10秒的时间范围内发送20.000 - 50.000。

你将如何解决这个问题?

我开始尝试使用Google Cloud Task,因为它看起来很适合这个。您可以将HTTP请求安排在特定时间点。文档上说,每个队列每秒只能执行500个任务。如果您每秒需要更多任务,可以将此任务拆分到多个队列中。我这样做了,但Google Cloud Tasks不会在给定的时间点执行所有计划的任务。一个队列需要2-5分钟来执行500个请求,这些请求都调度在同一个第二个:thinking_face上:

我还尝试了一个运行异步node-fetch请求的TypeScript脚本,但我的macbook需要77秒的5.000个请求。

EN

回答 2

Stack Overflow用户

发布于 2021-08-05 12:18:53

我不认为你可以在“几秒钟内”从你的macbook获得50.000个HTTP请求,最好考虑使用一个特殊的负载测试工具(它可以部署到GCP虚拟机上,以最小化network latency和流量成本)

工具的选择取决于你,要么你需要有足够强大的machine type,这样它就能在几秒钟内处理来自单个虚拟机的50k请求,要么该工具需要具有在clustered mode中运行的功能,这样你就可以启动几台机器,它们会在同一时刻一起发送请求。

如果您提到了TypeScript,您可能想尝试一下k6 tool (虽然它不能扩展),或者查看Open Source Load Testing Tools: Which One Should You Use?看看还有哪些其他选项,它们都没有提供JavaScript应用程序接口,但是有几个根本不需要编程语言知识

票数 2
EN

Stack Overflow用户

发布于 2021-08-05 21:50:38

您可以考虑使用的一个工具是siege

这是Linux based,为了防止从外部系统进行测试而产生的额外成本。

您可以在GCP中的一台relatively large machine或几台机器上部署围攻。

它的设置相当简单,但由于您提到需要在几秒钟内使用20-50k,因此在默认情况下,每秒钟只允许255个请求。You can make this larger,所以它可以满足您的需求。

您需要考虑一台机器可以建立多少个连接,因为每台机器都有基于CPU、内存和网络套接字数量的特定限制。你可以增加-c的数量,直到机器给出“错误:系统资源耗尽”或者类似的错误。尝试GCP上的虚拟机可以处理的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68665235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档