2012-01-17 13 views
2

私は標準のWebfaction計画(256MB RAM)で単一のDjangoプロジェクトを持っています。私のウェブサイトの平均ローディング時間は約4秒です。私は、Django(キャッシング、圧縮、静的ファイルの提供など)に関するほとんどのパフォーマンス調整を設定しました。ですから、私はApacheの設定の改善だけに興味があります。 200kbのデータを持つWebサイトに4秒の読み込み時間があります。約15回の読み込み要求、Webfactionの制限が必要ですか、これを大幅に改善できますか?これは私の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 Onのようなものがパフォーマンスを向上させますか? あらかじめご了承ください。

答えて

4

いいえ、いいえ、いいえ。 KeepAliveとDjangoはうまく一緒に遊ばない。 Djangoの書籍hereから引用します。

オフにキープアライブ

キープアライブ複数のHTTPリクエストは、単一のTCP接続を介して提供することを可能にするHTTPの機能があり、TCPセットアップ/ティアダウンのオーバーヘッドを回避。

これは一目瞭然ですが、実際にDjangoサイトのパフォーマンスを殺すことができます。別のサーバからメディアを適切に提供している場合、サイトを閲覧している各ユーザは実際にはDjangoサーバのページだけを10秒ごとに表示します。これにより、HTTPサーバーは次のキープアライブ要求を待ち受け、アイドル状態のHTTPサーバーは、アクティブなサーバーが使用する必要があるRAMを消費するだけです。

+0

ありがとうtttallis。私は環境設定で遊んで、それらのほとんどをテストしました。あなたは正しいです。キープアライブとdjangoはうまく一緒に遊ばない! – horndash

+0

KeepAlive Offは今日でも有効なオプションですか? – panosl

関連する問題