一个进程UNIX的最大套接字连接

时间:2010-08-31 23:21:10

标签: java linux sockets tcp

我有一个java服务器(1个进程)为每个传入连接生成一个线程。我知道有一个文件描述符限制为1024,它被编译到内核中。

1进程可以支持的套接字连接数有限制吗?

2 个答案:

答案 0 :(得分:4)

在Linux上查看/proc/sys/fs/file-max。 您可以将自己的价值回馈到其中。

还要确保增加用户限制:ulimit -n

在BSD上,它将是sysctl kern.maxfilessysctl kern.maxfilesperproc

答案 1 :(得分:1)

除了hroptatyr提到的OS文件句柄限制之外,您可能还需要确保在侦听器套接字上使用凸起值来连接积压。这将允许更多连接在操作系统返回“连接被拒绝”之前排队,如果您的服务器应用程序暂时忙碌且无法足够快地响应传入连接。

如果你在Java中使用ServerSocket,你可以指定所需的积压作为构造函数的参数:

ServerSocket server = new ServerSocket(listenPort, 50);