2012-01-17 81 views
2

我有一個標準webfaction計劃(256mb ram)的單個Django項目。我的網站的平均加載時間約爲4秒。我配置了大部分關於Django的性能調整(緩存,壓縮,提供靜態文件...)。所以我只對改進Apache配置感興趣。在200kb數據的網站上加載時間爲4秒,需要加載約15個請求,網頁製作的限制還是可以顯着改善?這就是我的httpd.conf現在看起來像: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 

有沒有像KeepAlive在增加性能? 在此先感謝horndash

回答

4

不,不,不。 KeepAlive和Django不能很好地一起玩。從Django的書here引用:

關閉保持活動

保持活動的HTTP,它允許多個HTTP請求被服務過一個TCP連接的特性,避免了TCP建立/拆除開銷。

這聽起來不錯,乍一看,但實際上可以殺死Django網站的性能。如果您正在從一臺單獨的服務器正常提供媒體服務,那麼瀏覽您的網站的每個用戶實際上最多隻會從您的Django服務器每隔10秒鐘訪問一個頁面。這會使HTTP服務器等待下一個保持活動請求,而空閒的HTTP服務器只消耗活動的應該使用的RAM。

+0

謝謝tttallis。我玩弄了喜好並測試了其中的大部分。你是對的。 keepalive和django不會一起玩! – horndash 2012-01-29 10:18:32

+0

今天KeepAlive仍然是一個有效的選擇嗎? – panosl 2016-06-29 17:03:19