httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Querna <>
Subject Re: 2.3 upgrade on
Date Sun, 18 Jul 2010 17:58:45 GMT
A small update:

We thought the load average was a little high, in the 70+ range.  We
observed massive CPU usage from the httpd processes, but IO wise the
machine was fine -- tons of IO bandwidth to go around -- it seemed to
be something spinning inside httpd itself.

At first I thought it might of been the event mpm bug, so with the
awesome MPMs as a module, we switched to worker.

Didn't help.

I dug out ktrace, and started seeing what we were doing.

Every httpd processes I looked at was spinning on sendfile:

33893 httpd    CALL
33893 httpd    RET sendfile -1 errno 35 Resource temporarily unavailable

ktrace/dtrace dumps available to any committer who wants to take a
look.  A similar problem is described in this thread from 2002, about
running 2.0.x on Daedalus:

I've started tuning up the FreeBSD sysctls for network buffers etc,
but it didn't seem to have a significant effect.

We have now disabled Sendfile on, and the load average
dropped from ~80 to 0.35.

On Sun, Jul 18, 2010 at 3:08 AM, Paul Querna <> wrote:
> is now running trunk @ r965127, using the Event MPM on
> FreeBSD 8.1, on a new x86 box.
> Previously it was running on Solaris 10, with 2.2.x on sparc t2000s.
> I have also enabled OCSP stapling on the SSL side:
>  <>
> Anyways, I've made a list of the 2.3-ish issues seen during the upgrade.
> httpd itself:
>  - Using the Define directive to enable SSL was a bad idea.  The SSL
> init code was only being called once in post_config instead of twice
> This is only 'new' because the Define directive is new, so I tried to
> use it.  Example of how it was used:
>  <IfDefine MACHINE_NAME>
>     Define SSL
>     Listen
>  </IfDefine>
>  <IfDefine SSL>
>    LoadModule ssl_module ..
>  </IfDefine>
> We do -D MACHINE_NAME at the command line, and I was hoping to just
> enable SSL from within the config file, but that didn't work. Adding
> -D SSL to the command line fixed the issue.
> - Lots of warnings in our configurations about "Ignoring deprecated
> use of DefaultType".
> - Infra already had lots of <IfVersion blocks for most 2.3 authn/z
> changes, and those seem to stil be working fine.
> 3rd party:
> - APR's detection of BDB was funky again, I had --with-dbm=db48, which
> it was happy about, but until I added --with-berkeley-db=/usr/local,
> it wouldn't actually compile up the shared objects for the DB DBM, but
> configure reported success.
> - mod_wsgi:  Needed to comment out 2 lines debug logging, that were
> accessing server_rec->loglevel (which has been removed from 2.3.x).
> - mod_mbox/mod_allowmethods/mod_asf_cgi: Needed build system
> adjustments to not look for apr-util.
> Surprisingly painless upgrade after I figured out the mod_ssl config
> issue; Most of the work was around moving Solaris -> FreeBSD for our
> various rsyncs and crontabs,  of course let infra know if you see
> anything busted!
> Thanks,
> Paul

View raw message