listen 系统调用中的积压值

问题描述 投票:0回答:3

我对

listen
系统调用中的积压值有疑问。来自监听系统调用的手册页。

如果 backlog 参数大于 /proc/sys/net/core/somaxconn 中的值,则它会被静默截断为该值;该文件中的默认值为 128。

这意味着我的服务器只能接受<128 connections at once. What if I want to accept more connection >128 ??我可以简单地将值设置为可能的最大数量,以便我可以访问更多的连接数量吗?

c linux sockets tcp
3个回答
9
投票

这个数字只是连接队列的大小,新连接等待某人接受它们。一旦您的应用程序调用

accept()
,等待连接就会从该队列中删除。因此,您绝对可以处理超过 128 个同时连接,因为它们通常只在队列中花费很短的时间。


4
投票

是的。使用诸如

之类的命令
$ echo 1000 >/proc/sys/net/core/somaxconn

将限制设置得更高。例如,请参阅此页面了解更多调整技巧。


1
投票

积压值不是最大连接数,而是未完成的连接数,即您尚未接受的连接数():ed。

© www.soinside.com 2019 - 2024. All rights reserved.