2012-01-17 6 views
2

표준 Webfaction 계획 (256MB 램)에서 하나의 Django 프로젝트가 있습니다. 내 웹 사이트의 평균 로딩 시간은 약 4 초입니다. Django (캐싱, 압축, 정적 파일 제공 ...)와 관련하여 대부분의 성능 조정을 구성했습니다. 그래서 저는 아파치 설정의 개선에만 관심이 있습니다. 200kb의 데이터가있는 웹 사이트에서 4 초 로딩 시간이 걸리므로 약 15 회의로드 요청이 필요하거나 webfaction의 제한이 필요합니까? 아니면이를 크게 향상시킬 수 있습니까?django에 대한 Apache 구성 성능

ServerRoot "/home/XXXXXX/webapps/XXXXXX/apache2" 

LoadModule dir_module  modules/mod_dir.so 
LoadModule env_module  modules/mod_env.so 
LoadModule log_config_module modules/mod_log_config.so 
LoadModule mime_module  modules/mod_mime.so 
LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule setenvif_module modules/mod_setenvif.so 
LoadModule wsgi_module  modules/mod_wsgi.so 
#LoadModule headers_module  modules/mod_headers.so 

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
KeepAlive Off 
Listen 28010 
MaxSpareThreads 3 
MinSpareThreads 1 
ServerLimit 1 
SetEnvIf X-Forwarded-SSL on HTTPS=1 
ThreadsPerChild 15 
WSGIDaemonProcess XXXX processes=15 python-path=/.../lib/python2.6 threads=8 
WSGIPythonPath /home/XXXX/webapps/XXXXX:/home/XXXX/webapps/XXXXXX/lib/python2.6 
WSGIScriptAlias//home/XXXXXX/webapps/XXXXXX/XXXXXX.wsgi 

연결 유지에 같은 것이 성능을 향상 않는다 : 이것은 내 httpd.conf에 지금의 모습인가? 미리 감사드립니다. horndash

답변

4

아니요, 아니요, 아니요. KeepAlive와 Django는 잘 어울리지 않습니다. 장고 책 here에서 인용 :

끕니다 연결 유지

연결 유지 여러 HTTP 요청은 하나의 TCP 연결을 통해 제공 할 수 HTTP의 기능이의 TCP 설치/해체 오버 헤드를 피할 수 .

언뜻보기에는 좋지만 실제로 장고 사이트의 성능을 죽일 수 있습니다. 별도의 서버에서 미디어를 제대로 제공하는 경우 사이트를 탐색하는 각 사용자는 실제로 장고 서버의 페이지 만 10 초마다 표시됩니다. 이로 인해 HTTP 서버는 다음 연결 유지 요청을 기다리고 있으며, 유휴 HTTP 서버는 활성 서버가 사용해야하는 RAM을 소비합니다.

+0

감사합니다. tttallis. 나는 환경 설정으로 놀아서 그들 대부분을 테스트했다. 네 말이 맞아. keepalive와 django는 잘 어울리지 않습니다! – horndash

+0

KeepAlive Off는 여전히 유효한 옵션입니까? – panosl