apache hanging on 8.0 AMD64
Rainer Duffner
rainer at ultra-secure.de
Sat Jan 9 05:25:54 UTC 2010
Hi,
we have an "interesting" problem with FreeBSD 8.0 AMD64:
The server is a HP DL380G5 with two Harpertown-class CPUs and 8 GB RAM.
It is running MySQL, Apache (worker MPM) and PHP as CGI with Fast-CGI
and SUEXEC.
It has over 500 ZFS filesystems that comprise various customers
websites, each running PHP as their own user.
Soon after we put this system into production, we saw httpd-processes
being stalled in the "ucond" state, leading to a total stand-still of
the apache-server (apache blocked itself somehow).
I disabled ZFS prefetching and the problem went away for a couple of
days - until yesterday, when it happened again.
Swap was unused when it happened the last time.
I switched top into "thread-mode" (M) and saw that the processes
actually seemed to be in different state (zio->i, arc_mr, tx_tx, RUN).
I cannot get any info from kstat, because when the problem happens and I
attach to one of the processes, I don't get anything back - it just sits
there.
If there anything I can take a look at to further debug this problem?
At the time of the hang, no swap was used:
last pid: 6450; load averages: 36.32, 30.17,
17.75
up 4+11:15:44 20:11:01
482 processes: 28 running, 452 sleeping, 1 zombie, 1 lock
CPU: % user, % nice, % system, % interrupt, % idle
Mem: 1619M Active, 3829M Inact, 2066M Wired, 211M Cache, 827M Buf, 188M Free
Swap: 8192M Total, 8192M Free
PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND
6011 user1 44 0 24960K 3432K RUN 1 2:50 7.08% pure-ftpd
6038 user2 66 0 161M 18856K RUN 3 1:26 3.47% php-cgi
716 root 46 0 32452K 13776K select 5 104:53 3.08% snmpd
6021 user3 63 0 163M 20232K RUN 7 1:28 2.49% php-cgi
6009 www 44 0 103M 26952K tx->tx 3 0:55 1.76% {httpd}
6030 www 44 0 101M 26168K CPU4 7 0:57 1.66% {httpd}
6028 www 44 0 101M 26476K tx->tx 2 0:55 1.66% {httpd}
6030 www 44 0 101M 26168K zio->i 5 0:55 1.66% {httpd}
6008 www 44 0 102M 26640K RUN 2 1:23 1.56% {httpd}
6009 www 46 0 103M 26952K tx->tx 3 1:22 1.56% {httpd}
6016 www 44 0 102M 26636K tx->tx 2 1:17 1.56% {httpd}
6024 www 44 0 106M 26568K RUN 1 1:07 1.56% {httpd}
5978 www 44 0 102M 26960K RUN 0 1:00 1.56% {httpd}
6008 www 44 0 102M 26640K zio->i 7 0:55 1.56% {httpd}
5970 www 44 0 108M 27700K arc_mr 4 0:59 1.46% {httpd}
6024 www 44 0 106M 26568K tx->tx 5 0:50 1.46% {httpd}
5979 www 45 0 102M 26904K zio->i 1 1:14 1.37% {httpd}
6009 www 47 0 103M 26952K zio->i 7 1:11 1.37% {httpd}
I disabled all the apache-modules we don't need.
This is the only system of its kind we have, currently, but we would
really like to get this fixed so we can move more of our
hosting-customers to similar setup servers.
Another detail: due to the fact that every user has a access- and
error-logfile, we had to bump FD_SETSIZE to 16384U.
We tried bumping kern.maxvnodes to larger and larger values (now at
400000, <200k are used), but it didn't really help that much. Disabling
prefetching helped a lot (only one crash in 5 days) - but we would like
to know why it actually happens and then fix it forever ;-)
Best Regards,
Rainer
More information about the freebsd-stable
mailing list