调整Apache的MaxClients和ListenBackLog的备忘录

– 默认情况下是511,但在httpd.conf中没有记载。
– ListenBackLog会加到内核的tcp_max_syn_backlog值上。
– tcp_max_syn_backlog的默认值是2048。

队列待处理的数量是ListenBackLog和tcp_max_syn_backlog值的总和。

默认情况下,排队等待的数量为511+2048=2559。

由于MaxClients值和ServerLimit值为256(同时访问数),所以假设有2000个同时访问,那么1744(2000-256)将处于排队等待状态,排队等待数量将有815(2559-1744)个空闲。

如果同时访问数为3000,那么2744(3000 – 256)将进入队列等待状态,队列等待数将超过2559个,并且将丢弃185个(2559 – 2744)。

※MaxClients:设定同时连接数的最大值。默认为256。该值不能大于ServerLimit的值,若要增加该值,需同时变更ServerLimit的值。
MaxClients的确定方式:可分配给Apache的服务器内存量 ÷ 子进程所消耗的内存量。

疑问1:由于没有设置ListenBackLog的默认值为511,所以可以认为tcp_max_syn_backlog的值即为队列等待数吗?

问题2:ListenBackLog在Apache的官方文档中未推荐修改设置,但是否无问题?

广告
将在 10 秒后关闭
bannerAds