I watch those presentation previously. Very well done.

I managed to solve the issue by changing "file_serve_method" in my 
deployment.ini to utilize xsendfile, then configured XSendfile in Apache. 

I might still need to mess with MPM, but for now it works.

Thanks

On Tuesday, September 17, 2013 8:08:04 PM UTC-5, Graham Dumpleton wrote:
>
> That depends on your web application and what it does.
>
> Watch that talk I referenced, plus another talk I did the prior year:
>
> http://lanyrd.com/2012/pycon/spcdg/
>
> Graham
>
> On 18/09/2013, at 11:06 AM, Fini Decima <[email protected]<javascript:>> 
> wrote:
>
> Thanks for the response.
>
> What, then, are the optimal settings for "processes=" and "threads="?
>
>
>
> On Tuesday, September 17, 2013 7:51:18 PM UTC-5, Graham Dumpleton wrote:
>>
>>
>> On 18/09/2013, at 10:47 AM, Graham Dumpleton <[email protected]> 
>> wrote:
>>
>> You have a very poorly setup configuration. Your WSGI application can 
>> only handle one request at a time. If one request takes a long time to run, 
>> it will block out everything else and if it blocks for too long, it will 
>> timeout.
>>
>> I would thus very much suggest not using processes=1 and threads=1 for 
>> daemon mode.
>>
>> You could also be suffering issues due to third party C extension modules 
>> which will not working in sub interpreters and which block and cause 
>> process to hang, thus invoking mod_wsgi deadlock timeout.
>>
>> I would suggest using:
>>
>> WSGIApplicationGroup %{GLOBAL}
>>
>>
>> Oh, you already use:
>>
>> application-group=%{GLOBAL}
>>
>> to WSGIScriptAlias, which does the same things.
>>
>> Because you are using process-group option to WSGIScriptAlias, then 
>> WSGIProcessGroup is actually redundant.
>>
>> Graham
>>
>>
>> Also go watch:
>>
>> http://lanyrd.com/2013/pycon/scdyzk
>>
>> which explains various stuff about Apache configuration for mod_wsgi.
>>
>> Graham
>>
>> On 18/09/2013, at 9:13 AM, Fini Decima <[email protected]> wrote:
>>
>> What I've observed is that after every 3 or 4 page loads, the sites takes 
>> a long time to load.  And after it loads, the process repeats itself.
>>
>>
>>
>>
>> On Monday, September 16, 2013 9:29:47 PM UTC-5, Fini Decima wrote:
>>>
>>> I have an installation of MediaCore, a media serving application built 
>>> atop the Django framework I have i running on Apache2 using mod_wsgi.
>>>
>>> Sometimes it works, other times, it also works, but it takes forever to 
>>> load, and I get some error messages in Apache's error file like these: =
>>>
>>> <code>
>>>
>>> [error] [client IP-ADDR] Script timed out before returning headers: 
>>> mediacore.wsgi, referer: http://IP-ADDR/ <http://ip-addr/>
>>> [error] [client IP-ADDR] Script timed out before returning headers: 
>>> mediacore.wsgi, referer: http://IP-ADDR/ <http://ip-addr/>
>>> [error] [client IP-ADDR] Script timed out before returning headers: 
>>> mediacore.wsgi, referer: http://IP-ADDR/ <http://ip-addr/>
>>> [error] [client IP-ADDR] Script timed out before returning headers: 
>>> mediacore.wsgi, referer: http://IP-ADDR/ <http://ip-addr/>
>>> [error] [client IP-ADDR] Script timed out before returning headers: 
>>> mediacore.wsgi
>>> [error] [client IP-ADDR] Script timed out before returning headers: 
>>> mediacore.wsgi, referer: http://IP-ADDR/ <http://ip-addr/>
>>> [error] [client IP-ADDR] Script timed out before returning headers: 
>>> mediacore.wsgi, referer: http://IP-ADDR/ <http://ip-addr/>
>>> [info] [client IP-ADDR] (70007)The timeout specified has expired: 
>>> core_output_filter: writing data to the network
>>> [info] [client IP-ADDR] (70007)The timeout specified has expired: 
>>> core_output_filter: writing data to the network
>>> [error] [client IP-ADDR] mod_wsgi (pid=25066): Exception occurred 
>>> processing WSGI script '/var/www/mediacore.wsgi'.
>>> [error] [client IP-ADDR] IOError: failed to write data
>>> [info] [client IP-ADDR] (32)Broken pipe: core_output_filter: writing 
>>> data to the network
>>> [info] [client IP-ADDR] (32)Broken pipe: core_output_filter: writing 
>>> data to the network
>>>
>>> </code>
>>>
>>> Even as I'm writing this, a video I clicked several minutes ago is still 
>>> trying to load.
>>>
>>> Here's my media.wsgi file
>>>
>>> <code>
>>>
>>> activate_this = '/var/www/virtualECK/bin/activate_this.py'
>>>
>>> execfile(activate_this, dict(__file__=activate_this))
>>>
>>>
>>> deployment_config = '/var/www/deployment.ini'
>>>
>>> temp_dir = '/var/www/data/tmp'
>>>
>>>
>>> # NOTE: Before running MediaCore, you will need to update the two paths
>>>
>>> # above to point to the appropriate locations for your installation.
>>>
>>>
>>> import os
>>>
>>> os.environ['TMPDIR'] = temp_dir
>>>
>>>
>>> if __name__.startswith('_mod_wsgi_'):
>>>
>>>     # Set up logging under mod_wsgi
>>>
>>>     from paste.script.util.logging_config import fileConfig
>>>
>>>     fileConfig(deployment_config)
>>>
>>>     # Load the app!
>>>
>>>     from paste.deploy import loadapp
>>>
>>>     application = loadapp('config:'+deployment_config)
>>>
>>> </code>
>>>
>>>
>>> And here's my VirtualHost configuration:
>>>
>>>
>>> <code>
>>>
>>> <VirtualHost *:80>
>>>
>>>         ServerAdmin *
>>>
>>>
>>>         DocumentRoot /var/www
>>>
>>>         # For best performance the number of processes should equal the 
>>> number of CPU
>>>
>>>         # cores (but please note that each process may use about 500 MB 
>>> RAM).
>>>
>>>         WSGIDaemonProcess eckmedia user=www-data group=www-data \
>>>
>>>         processes=1 \
>>>
>>>         threads=1 \
>>>
>>>         display-name=%{GROUP} \
>>>
>>>         python-path=/var/www/virtualECK/lib/python2.7/site-packages \
>>>
>>>         python-eggs=/var/www/data/python-egg-cache
>>>
>>>         WSGIProcessGroup eckmedia
>>>
>>>         # Intercept all requests to /* and pass them to mediacore.wsgi
>>>
>>>         WSGIScriptAlias / /var/www/mediacore.wsgi process-group=eckmedia 
>>> application-group=%{GLOBAL}
>>>
>>>
>>>         <Directory />
>>>
>>>                 Options FollowSymLinks
>>>
>>>                 AllowOverride None
>>>
>>>         </Directory>
>>>
>>>         <Directory /var/www/>
>>>
>>>                 Options Indexes FollowSymLinks MultiViews
>>>
>>>                 AllowOverride None
>>>
>>>                 Order allow,deny
>>>
>>>                 allow from all
>>>
>>>         </Directory>
>>>
>>>
>>>         # Make all the static content accessible.  
>>>
>>>         <Directory /var/www/eckmedia/mediacore/public/*>
>>>
>>>                 Order allow,deny
>>>
>>>                 Allow from all
>>>
>>>                 Options -Indexes
>>>
>>>                 WSGIScriptReloading On
>>>
>>>         </Directory>
>>>
>>>         ErrorLog ${APACHE_LOG_DIR}/error.log
>>>
>>>         LogLevel info
>>>
>>>         CustomLog ${APACHE_LOG_DIR}/access.log combined
>>>
>>> </code>
>>>
>>>
>>> And in Apache2.conf, I have:
>>>
>>> <code>
>>>
>>> # prefork MPM
>>>
>>> <IfModule mpm_prefork_module>
>>>
>>>     StartServers          7
>>>
>>>     MinSpareServers       5
>>>
>>>     MaxSpareServers      10
>>>
>>>     MaxClients          150
>>>
>>>     MaxRequestsPerChild   0
>>>
>>> </IfModule>
>>> </code>
>>>
>>> Any ideas what could be causing the errors?
>>>
>>> TIA
>>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "modwsgi" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/modwsgi.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "modwsgi" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To post to this group, send email to [email protected] <javascript:>
> .
> Visit this group at http://groups.google.com/group/modwsgi.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to