httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lu, Yingqi" <>
Subject RE: AW: Time for 2.4.11
Date Tue, 20 Jan 2015 00:31:50 GMT
Hi All,

Sorry for the delay. Below is a draft version of the documentation on "ListenCoresBucketsRatio".
Please chime in with your feedback and comments. This is my first time to help on the documentation.
Please let me know if this is sufficient or I need to follow some specific format.

Also, the 2.4 backports of the SO_REUSPORT patch has already been proposed at
This also includes the link to the 2.4 version of the patch. Thanks very much to Yann Ylavic
for his help! Everyone, please take some time to review this patch and let me know your feedback
and comments. If you like it, please give us a positive vote for it to be added in 2.4.12.

ListenCoresBucketsRatio Directive

Description: Enables duplicated listener (to use SO_REUSEPORT) feature
Syntax:	ListenCoresBucketsRatio num
Default:	ListenCoresBucketsRatio 0
Context: server config
Status: Core
Module: core
The SO_REUPOSTPORT feature introduced in Linux kernel 3.9 enables multiple sockets to listen
to the same IP:port and automatically round robins connections. ListenCoresBucketsRatio is
the configuration directive that sets the ratio between number of active CPU threads and number
of listener buckets. For each of the listen bucket, there will be 1 listener and 1 accept
mutex assigned. Default value of ListenCoresBucketsRatio is 0 which means there is only 1
listener bucket so that there is 1 listener and 1 accept mutex. When it is set to between
1 and number of active CPU threads, Apache httpd will first check if the SO_REUSEPORT feature
is supported in the kernel. If yes, the number of listener buckets will be calculated as "total
number of active CPU threads/ ListenCoresBucketsRatio". In some testing cases, especially
on big core count systems, enabling this feature (set it non-zero) has been tested to show
significant performance improvement with response time reductions. 

When ListenCoresBucketsRatio is set to non-zero, Apache httpd checks on the StartServers/
MinSpareServers/ MaxSpareServers/ MinSpareThreads/ MaxSpareThreads directives and make sure
there is always at least 1 httpd process per listener bucket. You may need to tune these directives
based on your own environment, a good starting point is to start httpd with 2-4 processes
per listener bucket (for example StartServers = 2 * number of listener bucket), keep at least
1 of them idle. You can increase the values later if needed.


-----Original Message-----
From: Lu, Yingqi [] 
Sent: Thursday, January 15, 2015 9:39 AM
Subject: RE: AW: Time for 2.4.11

Hi Yann,

Thanks very much for your help! 

Yes, I think I can help to document the "ListenCoresBucketsRatio", at least to draft it. Also,
I think I can share the settings from our testing regarding to this work.

I will send them later this week.


-----Original Message-----
From: Yann Ylavic []
Sent: Thursday, January 15, 2015 2:06 AM
To: httpd
Subject: Re: AW: Time for 2.4.11

On Thu, Jan 15, 2015 at 9:25 AM, Yann Ylavic <> wrote:
> There is still missing the "ListenCoresBucketsRatio" documentation, 
> and I don't think I can do it today, could you?

Also, would you share maybe some recommended settings ({Min,Max}Spare*,ServerLimit, StartServer,
...) wrt bucketing and this new directive?

I did some testing (though with linux-3.14, and httpd-2.2.x backport of the patch), and it
seems it really helps the scalability (at the limits).
And I did not notice any special dysfunctioning either, including during (graceful) restarts.
So +1 for me.

But, since the patch is quite big, it may be hard for reviewers to (in)validate today (thurs
here, which seems to be the T&R date).
So maybe we can take more time for this (with a patch already available for those who care)
and wait until 2.4.12 (next next)?
What do you (reviewers) think?

View raw message