我试图在单个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连接
答案 0 :(得分:1)
不可能。独立于OutOfMemoryError
,可以用更多内存解决,Linux中的每个套接字实际上都是一个文件描述符,并且给定的进程不能有50k打开文件描述符。