我们之前在我们的环境中遇到了问题,似乎我们正在达到FreeBSD的最大连接限制。 我们采取行动http://nginx.org/en/docs/freebsd_tuning.html并提高了我们的连接限制为500:kern.ipc.somaxconn:500
我们仍然有问题,我们希望看到从客户端到这个特定服务器的额外连接,我们不是,他们错过了。
我们不知道这是一个应用程序问题还是一个networking问题。 但是我想知道现在是否还有其他限制,可能是build立了最大连接数?
这里有一些图表显示了我们的连接行为,看起来奇怪的是它有300个连接的限制:


我们的服务器上丢失的命令的大概数量^
编辑:
有关应用程序的更多详细信息:应用程序是一个tclsh(tcl shell),它使用套接字应用程序侦听特定的tcp端口来接收连接。 也许这是一些基于tcl的限制或套接字应用限制?
故障排除详细信息:当我运行nmap基本上“平”一遍又一遍所需的端口
for i in {1..600}; do nmap -p 2069 serverIP; done
我似乎得到了以下与netstat:
netstat -Lan | grep 2069 tcp4 193/0/128 *.2069 tcp4 193/0/128 *.2069 tcp4 193/0/128 *.2069 tcp4 193/0/128 *.2069
这似乎意味着我实际上超出了kern.ipc.somaxconn的默认值。 但是我们已经把这个值设定得比默认值高得多。
即使我监视build立的连接使用:
netstat -an | grep 2069 | wc -l
在2069年我只能得到192个连接的总数。意思是这个端口不能接受更多的连接。
似乎它实际上是一个应用程序的限制。 监听2069套接字的进程最多可以build立192个监听连接。
我假设很多应用程序都是按照这些限制来构build的,somaxconn可能会增加总的可允许的侦听套接字与应用程序的实际构build。
文件句柄出现在我的脑海里。 首先检查ulimit -n (或者,取决于shell, limit -n ),如果它返回1024 。 如果是这样,使用ulimit -n 16384 , limit -n 16384左右来提高文件句柄限制。 看看是否有帮助。