listen系统调用中的积压值

时间:2009-10-28 07:58:34

标签: c linux sockets

我对listen系统调用中的backlog值有疑问。从listen系统调用的手册页。

  

如果backlog参数大于/ proc / sys / net / core / somaxconn中的值,则会以静默方式将其截断为该值;此文件中的默认值为128。

这意味着我的服务器一次只能接受< 128个连接。如果我想接受更多连接> 128怎么办?我可以简单地将值设置为可能的最大数量,以便我可以访问更多的连接数吗?

3 个答案:

答案 0 :(得分:8)

该数字只是连接队列的大小,其中新连接等待某人接受它们。应用程序调用{​​{1}}后,将立即从该队列中删除等待连接。因此,您肯定可以处理超过128个并发连接,因为它们通常只在队列中花费很短的时间。

答案 1 :(得分:4)

是。使用诸如

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

将限制设置得更高。例如,请参阅this page了解更多调优技巧。

答案 2 :(得分:1)

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