尽快发送 HTTP 请求

发布于 2024-08-01 13:34:20 字数 341 浏览 3 评论 0原文

为了测试我的程序,我想尽可能快地发送大约 50 个 http 请求。 目前我正在使用 bash 脚本,它调用curl & 发送每个请求

curl "http://my.host.com/test.php?param=1" &
curl "http://my.host.com/test.php?param=2" &
curl "http://my.host.com/test.php?param=100" &

,但似乎不够快。 我想因为每次curl调用都会先建立一个tcp连接,如果只建立一次连接,性能可以得到提高。 有没有其他工具可以有效地发送请求?

In order to test my program, I want to send about 50 http requests as fast as possile. Currently I'm using bash script which calls curl & to send each request like

curl "http://my.host.com/test.php?param=1" &
curl "http://my.host.com/test.php?param=2" &
curl "http://my.host.com/test.php?param=100" &

but it seems not fast enough. I guess since each curl call will establish a tcp connection first, and performance can be improved if the connection is established only once. Is there any other tools to send request effciently?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

水波映月 2024-08-08 13:34:20

尽管您后台下载了所有下载,但它仍无法执行的原因是操作系统仍然必须加载curl(但仍然从缓存中),为它创建一个进程,解析参数等。

您需要可以的东西并行发送 N 个请求而不启动新进程。

The reason why this doesn't perform despite the fact that you background all the downloads is that the OS still has to load curl (from cache but still), create a process for it, parse the parameters, etc.

You need something that can send N requests in parallel without starting new processes.

烂柯人 2024-08-08 13:34:20

JMeter负载测试 apache

从他们的网站:

Apache JMeter 是开源的
软件,100%纯Java桌面
设计用于负载测试的应用程序
功能行为和测量
表现。 原来是
专为测试 Web 应用程序而设计
但后来扩展到其他测试
功能。

我可以用它做什么?

Apache JMeter可用于测试
静态和动态性能
资源(文件、Servlet、Perl
脚本、Java 对象、数据库和
查询、FTP 服务器等)。 它可以
用于模拟重负载
服务器、网络或对象来测试其
实力还是整体分析
不同负载下的性能
类型。 你可以用它来制作一个
性能的图形分析或
测试您的服务器/脚本/对象
高并发负载下的行为。

JMeter is a good way to load test apache.

From their site:

Apache JMeter is open source
software, a 100% pure Java desktop
application designed to load test
functional behavior and measure
performance. It was originally
designed for testing Web Applications
but has since expanded to other test
functions.

What can I do with it?

Apache JMeter may be used to test
performance both on static and dynamic
resources (files, Servlets, Perl
scripts, Java Objects, Data Bases and
Queries, FTP Servers and more). It can
be used to simulate a heavy load on a
server, network or object to test its
strength or to analyze overall
performance under different load
types. You can use it to make a
graphical analysis of performance or
to test your server/script/object
behavior under heavy concurrent load.

酷炫老祖宗 2024-08-08 13:34:20

Apache 附带了一个名为“ab”的程序用于基准测试。 在网络上,有许多网站压力测试应用程序可供您使用。

Apache comes with a program called "ab" for benchmarking. On the net, there are many stress test applications for websites that you can use.

深海里的那抹蓝 2024-08-08 13:34:20

在 PHP 中(当然也在 CURL 中)有一些非常好的东西< /a>.

在 google.com 上执行 1000 次常规 GET 大约需要 16 秒,大约每秒 63 个请求

In PHP (and also in CURL of course) there is something really nice.

It takes about 16 seconds to do 1000 regular GETs on google.com, about 63 requests per second.

静待花开 2024-08-08 13:34:20

Apache JMeter 在多台机器上同时运行可能会相当快。

Apache JMeter in more than one machine running at the same could be pretty fast.

染柒℉ 2024-08-08 13:34:20

不要使用bash。 使用任何其他脚本语言(Perl、Python 等),然后创建单个连接并尽快处理请求。 为了获得奖励积分,请启动多个线程,以便测试程序处理同时连接的能力!

Don't use bash. Use any other scripting language (Perl, Python, whatever), then create a single connection and pound away on the requests as quickly as possible. For bonus points, launch multiple threads so that you test your program's ability to handle simultaneous connections!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文