Dadokは、Djangoアプリケーションを展開するさまざまな方法を推奨または比較しています

画像 ますます多くのお客様がプロジェクトで素晴らしいDjango Webフレームワークを使用しており、それは驚くことではありません。 結局のところ、このフレームワークを使用すると、動的サイトを非常に迅速に作成でき、同時に大きな柔軟性が得られます。 彼は、ほとんどすべての場面で既成のソリューションを数多く持っており、実際、低レベルのサイトデザイナーです。 そして、その主な利点は柔軟性です。そのため、どんな複雑なWebアプリケーションでも短時間で絶対に作成できます。



このフレームワークには、問題なくアプリケーションをデバッグできる便利なビルトインWebサーバーがありますが、実際の戦闘での使用には当然適していません。



最近、クライアントから稼働中のサーバーへの展開に関する多くのリクエストを受け取りました。 この点に関して、パフォーマンスと使いやすさを考慮して、最も人気のあるいくつかのバンドルの小規模なテストを実施し、お客様に最適なオプションを推奨することにしました。

テストのために、典型的な専用サーバーを使用しました



いくつかのサーバー情報:

-Linux alex.tests 2.6.33.2#1 SMP 4月7日水曜日10:36:28 MSD 2010 i686 GNU / Linux

Debian GNU / Linux 5.0 \ n \ l

Intel®Core(TM)2 Duo CPU E8400 @ 3.00GHz

CPUコア:2



アレックス:〜#free -m

キャッシュされた使用済み共有バッファの合計

メンバー:3291 224 3067 0 10187

-/ +バッファ/キャッシュ:26 3264

スワップ:2055 0 2055



-このテストでは、3つの靭帯が参加しました。

1) apache2 + mod_wsgi

これは、これまでで最も一般的で推奨されるソリューションです。 このモジュールは、2つの操作モードを使用できます。組み込みモード(Apacheはmod_pythonと同様に動作します)と、いわゆるデーモンモードです。原理的にはFastCGI / SCGI操作に似ています。



2) nginx + flup

Flupは、本質的に異なるWSGIモジュールのコレクションです。 FastCGIモードでdjangoアプリケーションを起動するための推奨方法です。



3) nginx + superfcgi

プロジェクトの著者によると、これは「fastcgiを介してWSGIアプリを実行する唯一の真の方法」です。 著者はbarbuzaです。 このソリューションは、他のソリューションほど一般的ではありません。



ファイル記述子のオペレーティングシステムの人為的な制限を除外するために、サーバーで次のパラメーターを設定します。

ulimit -n 10240(このシェルによって記録されるファイルの最大サイズ)

sysctl -w net.core.somaxconn = 150000(最大接続数)

sysctl -w fs.file-max = 100000(開いているファイルの数)



クライアントとして、同じラック内のサーバー上にあるXEN上の通常のVDSを使用しました。 ロードはhttperfを使用して作成されました 。 このユーティリティは、この種の研究用に特別に設計されており、リモートサーバーに人為的に負荷をかけ、多くの設定があります。

このテストは、特定のURLによって特定のビューを呼び出し、小さなhtmlテンプレートをロードする単純なDjangoアプリケーションでした。 したがって、テストにはフレームワークの主要コンポーネントが含まれます。 このURLでは、20,000のリクエストが高速で行われました。



すべての魔法を除外するために、各接続後に、サーバー上のオペレーティングシステムが再インストールされ、クライアントが再起動されました。



返信率と応答時間の値に最も興味がありました。 メモリ消費も興味深いものでした。



その結果、結果は次のようになりました。



画像

画像



絶対的なリーダーは、nginx + superfcgiバンドルであり、インストールの容易さとともに、最高の生産オプションになります。 そして、私たちはクライアントにそれを推薦することができます。 このバンドルの場合、(他とは異なり)6000件のリクエストがあったとしても、応答の時間と数を減らす傾向がなかったことに注目することは興味深いです。 最大メモリ消費量については、Apacheで318Mb、nginxの場合で約290Mbでした。



そして今、興味深い提案:専用サーバーを購入したフーバーのすべての読者には、このバンドルを無料でインストールして構成するだけでなく(このため、チケットを書いてScripting Guru部門に送信するように依頼できます)、サーバーレンタルの最初の月に30%の割引も提供します。 割引を有効にするには、注文時にプロモーションコードhabradedicを指定する必要があります。



All Articles