如何在单个linux机器上创建50000 tcp连接?

时间:2016-08-04 11:39:27

标签: java linux sockets tcp

我试图在单个linux机器上创建50000 tcp连接但是我无法创建50000个连接只创建了10800个tcp连接。之后我得到java.lang.OutOfMemoryError:无法创建新的本机线程。

我改变了  ulimit -n 200000, nproc in /etc/security/limits.d/90-nproc.conf,   /etc/sysctl.confsysctl -w net.ipv4.tcp_mem='8388608 8388608 8388608' sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608' sysctl -w net.ipv4.tcp_wmem='4096 65536 8388608

我将statck大小更改为ulimit -s 100000   帮我在单个linux机器上创建50000个tcp连接

1 个答案:

答案 0 :(得分:1)

不可能。独立于OutOfMemoryError,可以用更多内存解决,Linux中的每个套接字实际上都是一个文件描述符,并且给定的进程不能有50k打开文件描述符。