2010-10-11 78 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