handling slow script execution caused by external dependencies
am 11.06.2007 17:45:09 von lkosakI've got an application built in PHP that's currently running on a
CentOS 4 reverse-proxied Apache 1.3.37 server (Apache 2.2.4 is doing
the proxying, externally facing).
The problem I'm running into is that many of the PHP scripts being
executed have to perform requests on a cluster of servers on the LAN
via SOAP. Those servers are reasonably fast, but can sometimes
produce delays of several seconds, up to about 15 seconds at the very
worst.
This causes slow PHP script execution times, most of which is spent
waiting for responses from the remote servers. Thus, while a given
script spends very little time actually processing, its execution can
take up to 15 seconds. The cluster of servers is running my company's
primary production environment, and I can't expect any speed increases
in the foreseeable future.
If I set MaxClients on Apache 1.3 above ~75, load avg. jumps to about
15 and stays there, things become slow, and at some point the server
becomes unresponsive. The server is a 2.4 ghz Xeon with 500 megs of
ram.
Is there anything I can do besides adding more servers that will allow
Apache to handle a lot of concurrently executing PHP scripts which
aren't individually demanding too much of the server?
Thanks,
Lou Kosak