httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tom Evans <tevans...@googlemail.com>
Subject Re: [users@httpd] Large static files - no mod_xsendfile available
Date Fri, 24 Aug 2012 08:39:10 GMT
On Thu, Aug 23, 2012 at 8:16 PM, Ben Johnson <ben@indietorrent.org> wrote:
> If you meant to say file *downloads*, I don't see any reason that you
> should encounter a blocking/locking issue. I don't use Python, but with
> PHP, any number of Apache requests, from the same user-agent, will be
> serviced concurrently. That said, there *are* Apache configuration
> directives that affect/limit this behavior (I believe most to be off/set
> reasonably by default), and poor session-handling within the application
> logic can lead to session-locking (forcing Apache to service only one
> request at a time).

This is actually a legitimate concern. Python web-apps are not usually
served by a mod_foo interpreter, unlike PHP, but using either FastCGI,
or WSGI. You will usually have less app worker processes than you
would Apache children.

If you process the download through the application, then you are
using an entire app process and an apache process to serve a static
file. Do this a lot, and you starve dynamic requests from getting to
run on an app process. Using X-Sendfile allows you to quickly hand off
such a request to apache after performing the necessary AAA, releasing
the app child to the pool sooner, and allowing another request to run.

Similarly, anything using a mod_foo style interpreter or application
is wasting resource when those apache processes are trivially serving
files. Serving static files from a separate host and/or reverse
proxying to the application server give huge boosts in performance if
you hit this scenario.

Cheers

Tom

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message