httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dean gaudet <>
Subject Re: Scoreboard redesign
Date Fri, 18 May 2001 04:08:31 GMT
if you think of the MPM as an "operating system" and the requests as
"processes" then mod_status is really just /bin/ps or /usr/bin/top. (there
is value to this metaphor).

the 1.3 scoreboard is terrible for performance on multiprocessor boxes
because zero effort was expended to allow cache line locality in the
scoreboard.  so what can happen is that two processors need to bang on the
same line, and this means all reads/writes to that line will be
essentially uncached.  (MP hardware does its best to make caches useful,
but if software insists on banging on the same location in multiple cpus
then the caches can't do a thing.)

this could be "fixed" by padding out the scoreboard records into
cache-line sized/aligned pieces.  and then presumably a process doesn't
migrate off its processor easily, so the access will be mostly local and

nitty gritty details such as cache line sizes, and affinity to processors
is stuff which should live in the MPM.  it's the MPM which decides how to
dispatch requests in the best way to take advantage of processor
affinities... it's the MPM which knows what the underlying machine looks

some of the scoreboard design enforces a particular structure on the MPM
which isn't valid at all in my opinion (and i said a lot about it years
ago when i did the mpm stuff).  especially the HARD_SERVER_LIMIT crap.

the way that many unix kernels export process information to userland
these days is through a /proc virtual filesystem (rather than the old
mucking around in /dev/kmem).  an analogous mechanism in apache would be
to issue internal requests which the MPM responds to with data in a
pre-defined format.

you could make the request response a simple ascii format, and then
reformat it within mod_status.  or you could make the response come back
in xml ... and mod_snmp could make similar queries and translate into


View raw message