× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Dave O. wrote:
Nathan, you're great. Just what I thought.

i5-PHP architecture is rather complex. Browser requests are first received by
an instance of the i5 Apache based HTTP server running under the native virtual
machine. Then an HTTP server plug-in forwards PHP requests to another job
which is hosting an instance of PASE along with another instance (and version)
of Apache supported under PASE, which forwards the request to one or more CGI
server jobs, each of which are hosting their own instance of PASE and their own
instance of PHP.

PASE and PHP are fairly robust virtual machines, where PHP is an interpretive
runtime environment for scripts. It's likely that PHP scripts will instantiate
one or more database connections, each of which will likely launch a
corresponding DB server job. The flow-chart looks like:

Job # 1: Apache based server (native virtual machine) ->
Job # 2: Apache server (PASE virtual machine) ->
Job # 3: PHP server (PASE virtual machine) ->
Job # 4: DB server (native virtual machine)

so at least four (4) jobs are servicing each browser/database request.

I suspect Job #3 is a behemoth because it's running 2 virtual machines (PASE
and PHP).

If one instance of Job #3 is busy when a new request arrives, the request will
be routed to the next available instance, according to the CGI specification.

The runtime environment of PHP must be big. It's so robust. A script might be
simple, but the runtime environment isn't.

Say you deploy a product of 500 scripts. The runtime engine loads each one
into memory as they're requested, and probably uses some algorithm for swapping
them in and out of memory according to use. Over time, on a busy server, each
instance of the PHP runtime jobs will likely load each script into memory.
Some architects would call that a memory leak.

The part where developers have control is in the architecture of their scripts,
but robust applications might use Model-View-Controller, HTML template, DB
connection pooling, object-relational mapping frameworks, and so forth. The
design can get rather complex.

Nathan.







As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.