Nick Kew wrote:
Jan Kratochvil wrote:
In what sense low-cost?
Apache's high startup cost is self-reinforcing. We know it's a
once-only thing, so we have every module do expensive things at
startup rather than per-request. I don't see how inetd would
affect that. The only thing you'd save is the spawning of
children, which you already noted ...
Funny enough, the case where I'd think that partial restarts would
come in handy would be to be able to change configuration on one virtual
host on a production system without bringing them all down.
Practically, it isn't a big issue: I've run systems in the 10-50
virtual host range, and startup time seems to be a few seconds. Our
apache is basically stateless, so probably one person has to reload and
a few people see a transient broken image: no apps screw up. We add a
new virtual host or make a config change maybe once or twice a week, so
it's not terrible.
I wonder what mass hosting places with 1000's of hosts do, but I
guess they use dynamic methods of implementing vhosts, batch config
file changes, and are a little more tolerant of downtime.
Contrast this the ColdFusion MX server, which back ends one Apache
system I look after. It runs very well once it's up, but startup takes
about 30 seconds. Internal state kept on the server has two
consequences: we have to restart it often when we make configuration
changes in an app or after an app transitions to a bad state, also a
restart breaks sessions, seriously inconveniencing users.
I always laugh when people tell me that web apps need to keep state
in RAM in order to be scalable...