PHP/Apache/Mysql、Python/Ngix/Postgresql、Erlang/Yaws/Mnesia で 3 つのシンプルなブログ システムを開発しました。
この 3 つの異なる構成について、サーバーのパフォーマンスを測定するにはどうすればよいですか?
PHP/Apache/Mysql、Python/Ngix/Postgresql、Erlang/Yaws/Mnesia で 3 つのシンプルなブログ システムを開発しました。
この 3 つの異なる構成について、サーバーのパフォーマンスを測定するにはどうすればよいですか?
Tsungをご覧になることをお勧めします。
彼らのホームページから読む:
HTTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP、および Jabber/XMPP サーバーに負荷をかけるために使用できます。Tsung (以前は IDX-Tsunami として知られていた) は、GPLv2 ライセンスの下でリリースされたフリー ソフトウェアです。
Tsung の目的は、IP ベースのクライアント/サーバー アプリケーションのスケーラビリティとパフォーマンスをテストするためにユーザーをシミュレートすることです。これを使用して、サーバーの負荷テストとストレス テストを実行できます。多くのプロトコルが実装およびテストされており、簡単に拡張できます。最近、WebDAV、LDAP、および MySQL のサポートが追加されました (実験的)。
複数のクライアント マシンに分散でき、数十万の仮想ユーザーを同時にシミュレートできます (ハードウェアが十分にある場合は数百万も可能です)。
Tsung は、Ericsson が作成した堅牢なフォールト トレラントな分散アプリケーションを構築するためのオープン ソース言語である Erlang で開発されています。
また、Erlang ビットについては、Erlang 効率ガイド のプロファイリング セクションでいくつかのヒントとツールを見つけることができます。
パフォーマンスを測定したいという場合は、負荷テスト、応答時間などを意味していると思います。
もしそうなら、あなたはab(apacheベンチ)を使うことができます。その小さなプログラムは、通常LinuxとMacで利用できます。あなたはそれにURLを与え、それを要求する回数を伝え、そしてオプションでそれに他のいくつかのパラメータを与えます。httpリクエストを送信するため、サーバーコードがどのように実装されているかは関係なく、3つのシステムすべてをテストするために使用できます。
abは、各システムが1秒間にいくつのリクエストを処理できるかを示します。単一のメトリックで3つのシステムを比較する場合は、かなり良いものです。
サーバーのどの要素がパフォーマンスを制限しているか(CPU、データベースアクセス、帯域幅)を見つけるには、クライアントマシンではなくサーバー上にあるツールを調べる必要があります。そこで使用するツールはオペレーティングシステムによって異なり、サーバーコードの実装に使用した言語/ツールによって異なる可能性があります。
また、httperf ( http://www.hpl.hp.com/research/linux/httperf/ )を使用することもできます。