9
votes

I have a doubt regarding the backlog value in listen system call. From man page of listen system call.

If the backlog argument is greater than the value in /proc/sys/net/core/somaxconn, then it is silently truncated to that value; the default value in this file is 128.

It means my server can accept only <128 connections at once. What if I want to accept more connection >128 ?? Can I simply set the value to the possible maximum number so that I can access more number of connection ??

3

3 Answers

9
votes

That number is only the size of the connection queue, where new connections wait for somebody to accept them. As soon as your application calls accept(), a waiting connection is removed from that queue. So, you can definitely handle more than 128 simultaneous connections because they usually only spend a short time in the queue.

4
votes

Yes. Use a command such as

$ echo 1000 >/proc/sys/net/core/somaxconn

To set the limit higher. See, for instance, this page for more tuning tips.

1
votes

The backlog value is not the number of maximum connections, it's the number of outstanding connections, i.e connections which you havn't accept():ed.