我有一个java服务器(1个进程)为每个传入连接生成一个线程。我知道有一个文件描述符限制为1024,它被编译到内核中。
1进程可以支持的套接字连接数有限制吗?
答案 0 :(得分:4)
在Linux上查看/proc/sys/fs/file-max
。
您可以将自己的价值回馈到其中。
还要确保增加用户限制:ulimit -n
在BSD上,它将是sysctl kern.maxfiles
和sysctl kern.maxfilesperproc
答案 1 :(得分:1)
除了hroptatyr提到的OS文件句柄限制之外,您可能还需要确保在侦听器套接字上使用凸起值来连接积压。这将允许更多连接在操作系统返回“连接被拒绝”之前排队,如果您的服务器应用程序暂时忙碌且无法足够快地响应传入连接。
如果你在Java中使用ServerSocket,你可以指定所需的积压作为构造函数的参数:
ServerSocket server = new ServerSocket(listenPort, 50);