Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Oct 2008 15:38:00 -0400
From:      FreeBSD <freebsd@optiksecurite.com>
To:        Chuck Swiger <cswiger@mac.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: collecting pv entries -- suggest increasing PMAP_SHPGPERPROC
Message-ID:  <49061898.60903@optiksecurite.com>
In-Reply-To: <E0956D53-6EA3-4E70-91B2-6606EA48869A@mac.com>
References:  <49060AE0.3000301@optiksecurite.com> <E0956D53-6EA3-4E70-91B2-6606EA48869A@mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Chuck Swiger a écrit :
> On Oct 27, 2008, at 11:39 AM, Francis Dubé wrote:
>> I've read that this is mainly caused by Apache spawning too many 
>> processes. Everyone seems to suggest to decrease the MaxClients 
>> directive in Apache(set to 450 at the moment), but here's the 
>> problem...i need to increase it ! During peaks all the processes are 
>> in use, we even have little drops sometime because there isn't enough 
>> processes to serve the requests. Our traffic is increasing slowly over 
>> time so i'm affraid that it'll become a real problem soon. Any tips on 
>> how I could deal with this situation, Apache's or FreBSD's side ?
> 
> You need to keep your MaxClients setting limited to what your system can 
> run under high load; generally the amount of system memory is the 
> governing factor. [1]  If you set your MaxClients higher than that, your 
> system will start swapping under the load and once you start hitting VM, 
> it's game over: your throughput will plummet and clients will start 
> getting lots of broken connections, just as you describe.
> 

According to top, we have about 2G of Inactive RAM with 1,5G Active (4G 
total RAM with amd64). Swapping is not a problem in this case. After 
checking multiple things (MySQL, networks, CPU, RAM) when a drop occurs, 
we determined that everytimes there is drop, the number is Apache's 
process is MaxClients (ps aux | grep httpd | wc -l) and the new http 
request doesn't get answer from Apache (the TCP hanshakes completes but 
Apache never push the data).

Thanks for your reply!

> For a rough starting point, divide system RAM by httpd's typical 
> resident memory size.  If your load legitimately exceeds this, you'll 
> need to beef up the machine or run multiple webserver boxes behind a 
> load-balancer (IPFW round-robin or similar with PF is a starting point, 
> but something like a Netscaler or Foundry ServerIron are what the big 
> websites generally use).
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49061898.60903>