2010-10-11 117 views
2

我很感兴趣gen_tcp的限制是什么:accept函数? 我的意思是什么是最大并发连接数? 或者如何配置? (gen_tcp设置,ulimit或其他东西) get_tcp每秒能接受多少连接?erlang:gen_tcp:接受限制

回答

5

最大并发连接将取决于操作系统。在unix系统上,它将受到nfds ulimit的限制,并且具有内核配置处理的最大连接数。

每秒接受的连接数主要取决于您的应用程序代码。它必须及时处理请求。挂起选项指定listen函数的最大挂起连接请求数。大多数系统限制最大积压大小,在linux和freebsd上,这个选项被命名为somaxconn。还有一半的TCP握手问题。您需要了解有关syncookies以及用于调整最大数目的半建立连接的任何选项。

+0

也许你知道如何获得未处理(还)插座队列的当前值?我需要它来设置backlog param的最优值。 – vinnitu 2010-10-12 13:23:48

+0

@vinnitu,我不认为有办法获得积压的连接数量。您应该构建您的应用程序,以便它可以快速接受连接。如果你这样做,你不太可能会积压积压。例如在erlang中,你会接受连接并产生一个进程来处理它,这样你几乎可以立即接受下一个连接。 – 2010-10-12 22:22:12