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]<javascript:>> 
> 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] <javascript:>> 
> 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] <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