Форум сайта python.su
вот значит набросал такой семпл.
# coding: utf-8
import time
def application(environ, start_response):
status = '200 OK'
output = str(time.time())
time.sleep(5)
output += '<br/>' + str(time.time())
response_headers = [('Content-type', 'text/html; charset=utf-8'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
<VirtualHost *:80>
ServerName localhost
WSGIDaemonProcess main user=www-data group=www-data processes=1 threads=5
#WSGIDaemonProcess main user=www-data group=www-data processes=5
WSGIScriptAlias / /var/www/main/main.wsgi
<Directory /var/www/main>
WSGIProcessGroup main
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
ErrorLog /var/log/apache2/main_error_log
CustomLog /var/log/apache2/main_log common
</VirtualHost>
Офлайн
Запусти апач с опцией -V и посмотри значение Server MPM.
Должно быть что-то типа
Server MPM: Worker
threaded: yes (fixed thread count)
forked: yes (variable process count)
StartServers
ServerLimit
wsgi.multithread
wsgi.multiprocess
Отредактировано (Июль 27, 2010 08:21:34)
Офлайн
Lexanderэто есть в конфиге апача
Запусти апач с опцией -V и посмотри значение Server MPM.
Должно быть что-то типаНу и настройкиServer MPM: Worker
threaded: yes (fixed thread count)
forked: yes (variable process count)плюсStartServers
ServerLimitЯ точно не помню, перебивают ли последние 2 настройки значения processes, threads.wsgi.multithread
wsgi.multiprocess
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
wsgi.multithread
wsgi.multiprocess
Офлайн
$ apache2 -V
Server version: Apache/2.2.14 (Ubuntu)
Server built: Apr 13 2010 19:29:28
Server's Module Magic Number: 20051115:23
Server loaded: APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture: 32-bit
Server MPM: Worker
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/worker"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"
Офлайн
вообщем по настройкам вроде все норм. куда копать дальше?
Офлайн
вот что прилетает приложению wsgi в environ
mod_wsgi.application_group=,
mod_wsgi.callable_object=application,
mod_wsgi.listener_host=,
mod_wsgi.listener_port=80,
mod_wsgi.process_group=main,
mod_wsgi.reload_mechanism=1,
mod_wsgi.script_reloading=1,
mod_wsgi.version=(2, 8),
wsgi.errors=,
wsgi.file_wrapper=,
wsgi.input=,
wsgi.multiprocess=True,
wsgi.multithread=True,
wsgi.run_once=False,
wsgi.url_scheme=http,
wsgi.version=(1, 0)
Офлайн
o7412369815963Учитывая режим работы Worker, эта секция не имеет отношения к настройке твоего текущего режима работы апача.
это есть в конфиге апача…
o7412369815963Вот эта штука:
помоему это не настройки а показатели которые зависят от “processes=1 threads=25”
WSGIDaemonProcess main user=www-data group=www-data processes=1 threads=5
Офлайн
Lexanderя про это же и сказалo7412369815963Вот эта штука:
помоему это не настройки а показатели которые зависят от “processes=1 threads=25”перебивает настройку окруженияWSGIDaemonProcess main user=www-data group=www-data processes=1 threads=5
wsgi.multiprocess
wsgi.multithread
Отредактировано (Июль 27, 2010 12:58:28)
Офлайн
получается все фреймворки которые подключены через mod_wsgi: Django, TurboGears, Pylons и др. - работают в однопоточном режиме.
Офлайн
o7412369815963Нет.
получается все фреймворки которые подключены через mod_wsgi: Django, TurboGears, Pylons и др. - работают в однопоточном режиме.
Офлайн