比较来自世界各地的卖家的域名和 IT 服务价格

为什么我会得到拒绝联系 1024 连接?

我在本地服务器上测试 Linux 在一个服务器上使用服务器和客户端。 之后 1024 在我连接的代码中的连接,我在连接中获得了失败。 起初我认为这是极限 fd_set_max 1024 为了 select, 并改变了服务器进行调查 select, 而且我仍然不能通过这个号码。 我的 ulimit-n 出发 2048, 我正在跟踪 lsof 在服务器上,它大致达到了 1033 /不确定这是一个精确的数字/ 并失败了。 任何帮助都非常有价值。
已邀请:

诸葛浮云

赞同来自:

如果你连接得更快 , 比你的服务器原因
accept//

, 可以填充等待连接的队列。 最大队列长度由第二个参数设置
listen//

在服务器或价值上
sysctl net.core.somaxconn

/通常 128/, 如果少。

快网

赞同来自:

您可能已达到打开文件描述符的流程限制。

我不确定我是否理解正确:你在同一过程中有服务器和客户端吗? 然后,您将使用两倍的文件描述符。 它接近你用ulit看到的东西。 如果不是这种情况,问题是否可以在服务器端? 也许服务器进程有耗尽的描述符,不再可以



没有连接。


http://manpages.ubuntu.com/man ... .html
有人提到你必须得到返回值:

EMFILE

为每个过程实现打开文件描述符的数量。

ENFILE

已经实现了开放文件总数的系统限制。

你得到了什么错误代码? 显然,您只能添加成功的那些连接 _accept_ed 在

select

或者

poll

.

我知道你已经知道了 , 如何检查

ulimit

, 但其他人可能不知道:


ulimit -a
core file size /blocks, -c/ 0
data seg size /kbytes, -d/ unlimited
scheduling priority /-e/ 0
file size /blocks, -f/ unlimited
pending signals /-i/ 40448
max locked memory /kbytes, -l/ 32
max memory size /kbytes, -m/ unlimited
open files /-n/ 4096
pipe size /512 bytes, -p/ 8
POSIX message queues /bytes, -q/ 819200
real-time priority /-r/ 0
stack size /kbytes, -s/ 8192
cpu time /seconds, -t/ unlimited
max user processes /-u/ 40448
virtual memory /kbytes, -v/ unlimited
file locks /-x/ unlimited

诸葛浮云

赞同来自:

我有同样的症状。 即使在增加之后 ulimit-n 我仍然无法应付超过 1024 传入连接......

我的问题是我用过 select, 哪个无法处理 socket-FDs 更高 1024. 因此,当我增加我的极限时,我的问题真的很改变!/我没有注意到....../

所以帮助任何有类似问题的人:

如果你需要更多 1024 套接字你必须这样做


增加

它自己的

限制

为了 open FDs /ulimit -n/

和你

不能使用 select

// /相反,使用

poll

///

石油百科

赞同来自:

我看到了你对运营商做的评论 close/sock_fd/ 在错误处理过程中。

您使用后清楚地关闭套接字。 - close// 或者 shutdown//.

我认为没有。 你真的有 1024 + 同时活性化合物? 你必须拥有 pthreads 参与其中才能做到。 这是正确的?

奔跑吧少年

赞同来自:

是否有任何危险,服务器为收到的每个连接打开单独的日志文件?

根据另一组的,上限是多少,有一个服务器?

在一个程序中我照顾 /若干年前/, 有一点代码设置了相等的最大文件大小 1 MB. 遗憾的是,当他第一次添加时,它增加了大小,但随着时间的推移和文件的增长后,这意味着他减少了大小! 有没有机会服务器有类似的问题 - 例如,它设置了荒谬的号码上的最大打开文件数 1024?

风见雨下

赞同来自:

为主要是微不足道的问题道歉 :/

他们在他们说时重新编译了服务器 "改变为调查"? 服务器是否在同一帐户下工作? 它
fork

-ing 或也许流式传输服务器? 你会得到
errno == ECONNREFUSED

呼吁后
connect//

在客户? 你能确认你得到了吗?
RST

回应
SYN


tcpdump

? 是自定义端口号码是否再次使用? 有没有链接
TIME_WAIT

?

董宝中

赞同来自:

你的约束 - 来自 linux user limitation. 除非另有说明,否则限制 linux 平等的 1024 打开文件。 要永远更改它,请编辑 /etc/security/limits.conf 并添加

软用户 nofile 16535
用户 Hard nofile 16535

或者从控制台尝试

ulimit-n 16535

尊敬

莫问

赞同来自:

所以,经过几个研究..它看起来像我的服务器听转弯深度 20. 我觉得这就是这个原因。 你们中的任何人也认为这是问题吗?

尊敬

要回复问题请先登录注册