2010-07-27 5 views
2

application WSGImod_wsgi + apache non multithread, pourquoi?


# coding: utf-8 

import time 

def application(environ, start_response): 
    status = '200 OK' 
    output = str(time.time()) 
    time.sleep(5) 
    output += ' -> ' + str(time.time()) 

    response_headers = [('Content-type', 'text/html; charset=utf-8'), 
         ('Content-Length', str(len(output)))] 
    start_response(status, response_headers) 

    return [output] 

Apache VirtualHost



    ServerName localhost 

    WSGIDaemonProcess main user=www-data group=www-data processes=1 threads=5 
    WSGIScriptAlias//var/www/main/main.wsgi 

    
     WSGIProcessGroup main 
     WSGIApplicationGroup %{GLOBAL} 
     Order deny,allow 
     Allow from all 
    

    ErrorLog /var/log/apache2/main_error_log 
    CustomLog /var/log/apache2/main_log common 

Сonnecting clients multiples, ils sont traités de manière séquentielle, il n'y a pas multithread. Pourquoi?

+0

Quel paquet apache, spécifiquement? –

+2

Fournissez les bits manquants de votre configuration qui entoure le WSGIProcessGroup. Je présume qu'il manque, sinon pourquoi est-il en retrait. De plus, quel MPM d'Apache utilisez-vous et avez-vous bidouillé les paramètres MPM alors que vous n'auriez pas dû. –

Répondre

1

Bien que pas exactement une réponse, j'ai remarqué le comportement de série avec une configuration similaire lors des tests sur un seul navigateur avec plusieurs onglets. (J'ai essayé chrome7 et ff4)

Je me demandais si c'était le navigateur qui appliquait le serial-ness, j'ai essayé la même expérience avec deux navigateurs séparés, et il a définitivement montré le serveur à agir multi-thread.

Ma configuration est:
mod_wsgi 3.3-1
python 3.1.2-2
apache 2.2.17-1
sur ArchLinux x86_64
tests ont été effectués avec mod_wsgi en mode intégré.

espérons que ça aide.

Questions connexes