2010-04-19 110 views
6

我正在开发一个基准测试应用程序,为此我需要在短时间内创建大量http连接,我在java中创建了一个程序来测试有多少线程是java能够在我的2GB单核机器中,事实证明,限制在5000到6000之间变化,给JVM提供1 GB的内存,然后在达到堆栈限制的情况下达到内存错误。多少并发http请求可以erlang处理

建议erlang能够生成更多并发进程,如果能够解决问题,我愿意学习erlang,erlang能够生成大约100000个进程,这些进程本质上是http请求等待对于响应,在几秒钟内没有达到像内存错误等任何限制,

+0

Erlang专为电话交换机而设计,可以同时运行数十万个“用户代理”(即进程)。 – 2010-04-19 20:02:42

回答

3

根据着名的理查德琼斯blog你几乎可以开箱即可处理100k连接。你必须增加进程限制,参见+P参数,并且它需要小的内存管理技巧,例如, gc或hibernate。为了显著实现更多你所要做的多与C.黑客

1

它可以处理几乎任何东西你扔它。 Erlang进程的重量非常轻。

请参阅http://www.sics.se/~joe/apachevsyaws.html了解Yaws和Apache之间并发性的基准。它可以让你了解什么是可能的。

+0

如果你扔得够多,没有什么可以处理“几乎所有你扔到它的东西”。良好的链接,但。 – 2010-04-20 20:37:44

1

如前所述,很多是一个很好的答案。并且考虑到您的要求是编写海啸客户端,您可以/应该将代码分发到多个erlang节点。

更好的是,你可能想看看Tsung。这是一个用erlang编写的分布式负载测试应用程序。

如果你不想使用它,我很确定你想在那里读取代码。