erlang处理多少并发http请求

时间:2010-04-19 17:00:42

标签: java memory erlang

我正在开发一个用于基准测试目的的应用程序,为此我需要在短时间内创建大量的http连接,我在java中创建了一个程序来测试java能够创建多少线程,结果在我的2GB单核机器,限制在5000到6000之间变化,给JVM提供1 GB内存,然后在达到堆限制时达到内存错误。

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

4 个答案:

答案 0 :(得分:3)

根据着名的理查德·琼斯blog,您几乎可以开箱即可处理100k连接。您必须增加进程限制,请参阅+P参数,它需要一点内存管理技巧,例如gc或hibernate。为了实现更多目标,你必须用C做更多的黑客攻击。

答案 1 :(得分:1)

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

有关Yaws和Apache之间的并发性基准,请参阅http://www.sics.se/~joe/apachevsyaws.html。它让你很好地了解可能性。

答案 2 :(得分:1)

我觉得有趣的是,一个人能够与mochiweb获得一百万个彗星连接http://www.metabrew.com/article/a-million-user-comet-application-with-mochiweb-part-1

答案 3 :(得分:1)

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

更好的是,您可能需要查看Tsung。它是用erlang编写的分布式负载测试应用程序。

如果您不想使用它,我很确定您想要在那里阅读的代码。