FreeBSD 6.2-STABLE && apache 2.2.4 = bad performance. Help!

Michael Vaughn x0dapara at gmail.com
Thu Jul 19 00:11:27 UTC 2007


On 7/19/07, Chuck Swiger <cswiger at mac.com> wrote:
>
> On Jul 18, 2007, at 4:15 PM, Michael Vaughn wrote:
> >> Your Apache processes are huge; mine typically stay under 20MB in
> >> VSIZE even with PHP loaded (this is Apache-2.0.59 + PHP 4.4.7 or PHP
> >> 5.2.x).  I suspect your PHP app(s) are leaking memory or otherwise
> >> have some significant problems with the way they are coded.
> >
> > The SIZE is huge; What they really use is about 20-30Mb as would be
> > expected.
>
> I tend to see 20MB VSIZE and 15-18 MB RES; 140MB VSIZE and 20MB RES
> means 120MB is either swapped out, allocated but never referenced, or
> in "inactive" memory state.


With apache 1.3 I see about 80K size and 35-40K RES (on a 6.2-STABLE
server as of Mon
Feb 26 02:46:31 UTC 2007, dual cpu i386).

That memory profile of your apache is surprising and resembles only a
> few cases I ran into, where people were writing huge Perl+DBD/DBI
> scripts via mod_perl that inflated RAM usage significantly and caused
> similar problems until some sanity checking and limiting of result
> sets was implemented in their code.


60M come from pecl-APC (apc.shm_size
 = 60), which I've tried setting at 30, and disabling via apc.enabled=0
, both to no avail.

I have, as mentioned before, disabled all the apache modules I did not
need (a quick grep ^LoadModule and ^#LoadModule shows 35 enabled vs 16
disabled) .

>> > I had to lower MaxClients on apache substancially from 128 to 32,
> >> > or loads would quickly go to 40+. (Other servers with dual cpus
> >> instead of
> >> > quad and apache 1.3 on freebsd 6.0 don't have this problem)
> >>
> >> The fact that your server starts dogging out around 40 processes is
> >> not surprising-- 40 * ~140MB per httpd child = 5600 MB, which exceeds
> >> the available physical memory in the system, at which point you start
> >> swapping excessively and the performance is going to plummet.
> >
> > Swap: 8000M Total, 8000M Free
>
> OK-- was this under your 30+ simultaneous clients load where you
> start seeing problems, or was this at a point where the system was
> closer to idle?



CPU states: 15.6% user, 0.0% nice, 79.2% system, 0.8% interrupt, 4,4%
idleSwap: 8000M Total,
8000M Free

Taken right now, with a load of 10.18 and 34 apache processes. Swap was the
first thing I checked, it *never* gets used at all.

Compare with the other server on 6.2-STABLE/i386 apache 1.3:

CPU states: 15.4% user, 0.0% nice, 21.3% system, 2.1% interrupt, 61.2% idle

Huge difference, and the server that's performing well is more loaded than
the one with problems, running on inferior hardware (2cpu vs 4cpu).





>> > Am I the only one getting terrible performance with apache2 on
> >> > FreeBSD 6 ?
> >>
> >> Apache-2.0 + PHP does just fine for me; I'm not sure that Apache-2.2
> >> + PHP5 has been as well tested or is as lightweight in resources as
> >> the older Apache 1.3 or 2.0 flavors are.  It might be worth
> >> downgrading to an older Apache to test things out, but it really does
> >> sound like the web app you've got is the problem more than FreeBSD 6
> >> or the rest of your infrastructure....
> >
> > I might give 2.0 a go; I felt this was worth mentioning because
> > most of the cpu time is spent on system, even with just 32 MaxClients.
> >
> >  Do note I mentioned the same app runs on inferior, with loads of
> > 0-4 (not optimal, but there is no noticeable slowdown there) on
> > FreeBSD 6.0/i386 apache 1.3 (this is 6.2-STABLE/amd64 apache
> > 2.2.4), and that is also part of the reason I went ahead and mailed
> > the list. It doesn't make sense that a server with twice the ram,
> > twice the processors and a recent OS version is spending 70% of the
> > time in system% whereas the old servers running for 400+ days spend
> > about 25% in system%.
>
> True enough.  There's a fair difference in memory profile between the
> 32-bit x86 flavor of FreeBSD and the AMD64 flavor, although I
> wouldn't expect it to result in such an extreme difference.  It'd be
> interesting to see how the 32-bit version of 6.2 does and whether it
> makes a noticable change, if you get a chance to switch out for
> testing...


I can't trash this server and install the i386 version on it.

Tthe closer I have is the 6.2-STABLE
 server (exact date mentioned above) which runs on a dual xeon with
4GB ram, on i386. That one is way more loaded and the load is usually
around 1-4, without noticeable slowdowns.


Mark


More information about the freebsd-questions mailing list