| Deutsch English Français Italiano |
|
<vdn9f9$gut$1@reader1.panix.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!panix!.POSTED.spitfire.i.gajendra.net!not-for-mail From: cross@spitfire.i.gajendra.net (Dan Cross) Newsgroups: comp.os.vms Subject: Re: Apache + mod_php performance Date: Thu, 3 Oct 2024 23:30:49 -0000 (UTC) Organization: PANIX Public Access Internet and UNIX, NYC Message-ID: <vdn9f9$gut$1@reader1.panix.com> References: <vcv0bl$39mnj$1@dont-email.me> <vdmokf$3r6ke$1@dont-email.me> <vdmvg1$onj$1@reader1.panix.com> <vdn1tr$3sh36$1@dont-email.me> Injection-Date: Thu, 3 Oct 2024 23:30:49 -0000 (UTC) Injection-Info: reader1.panix.com; posting-host="spitfire.i.gajendra.net:166.84.136.80"; logging-data="17373"; mail-complaints-to="abuse@panix.com" X-Newsreader: trn 4.0-test77 (Sep 1, 2010) Originator: cross@spitfire.i.gajendra.net (Dan Cross) Bytes: 3051 Lines: 45 In article <vdn1tr$3sh36$1@dont-email.me>, Craig A. Berry <craigberry@nospam.mac.com> wrote: > >On 10/3/24 3:40 PM, Dan Cross wrote: > >> The issue here is that a browser may open a connection to the >> server and the user may wander away; if that connection is >> persistent, then it's going to tie up an Apache instance, since >> the user has gone to get a cup of coffee or whatever and isn't >> actively using it. >> >> Of course, this isn't specific to VMS, or a function of how VSI >> ported it or whatever else Arne initially thought. > >What's specific to VMS is that pre-fork MPM is the only game in town if >you want to use Apache. Whether the other mechanisms in use on other >platforms and designed specifically to address the problem Arne >encountered could be made to work on VMS is an open question, but not >something anyone outside VSI could try without the sources. I think >event is out because there is no kqueue or epoll. The worker model >might be possible. Or a custom one using ASTs instead of pthreads. Apache is open source, it would be possible for someone outside of VSI to mount a porting effort and do a threads backend. But I do take your point that that would be a bit of work, versus modifying what VSI has already done. It strikes me that `select` is surely available; this could be used to increase scalability quite a bit. It's not as nice as kqueue or epoll or whatnot, but it's better than synchronous reads blocking on a single socket. Sadly, any of these would be subject to head-of-line blocking, but it would scale _better_ than the prefork-MPM stuff, provided the time to serve requests is relatively small (and it probably is). Of course, there's a limit to what one can do with a single HTTP server instance using _any_ model, be it threads, pre-created processes, or some sort of event-driven async task model. And then there's a limit to what one can do on a single machine, real or virtual. Once you hit a certain scale, you just have to be a bit more circumspect with design, and in particular, capacity planning; that's where things like load balancers start to come into play. - Dan C.