5

私は現在、いくつかの Ajax の重いコードに取り組んでおり、より多くのユーザーが (できれば) 私の Web アプリを使い始めるにつれて、私のサーバーがどのように拡張されるのか疑問に思っています。現時点では、社内のテスト サーバー上にのみあります。数百または数千のユーザーをシミュレートして、より重い負荷をどのように処理するかを確認するにはどうすればよいか考えていました。これは PHP/MySQL で書かれており、何百ものコンピューターを手動でセットアップしてテストする必要はありませんでした :) 事前に感謝します。アドバイスや指示は大歓迎です。

4

4 に答える 4

11

アパッチのベンチマーク。Apache Web サーバーに同梱されています。10 個の同時スレッドを使用する 100 個のリクエストの場合、次のコマンドを使用します。

ab -n 100 -c 10 http://localhost/

localhost url を、AJAX コードが呼び出す URL に置き換えます。出力は、リクエストがどのように処理されたかについての優れたレポートを提供します。興味深い数字のいくつかは次のとおりです。

Complete requests
Failed requests
Requests per second
于 2009-09-05T04:47:04.120 に答える
0

私が行ったことは、非常に大まかなアイデアを与えることですが、数十または数百のスレッドを作成し、一意のユーザーでそれぞれ数十回ランダムにサーバーにヒットできるアプリケーションを作成することです。

そのため、100 人の固有のテスト ユーザーがいて、100 のスレッドを作成し、ランダムな間隔でいくつかの操作をランダムに実行し続けました。

これにより、スケールの問題があるかどうかがわかります。

ただし、最終的には、ネットワーク接続が 1 つしかないため問題が発生するため、速度が多少低下するため、完全ではありません。

また、 junitperfを使用してこれを支援することもできます。これにより、各テストの応答に時間がかかりすぎていないかどうかを確認できます。

最善の策は、これらのテストを取得し、できるだけ多くのマシンに配置して、一度に実行することです。10 台のコンピューターをそれぞれ 10 人または 100 人のふりをさせる方が、1 台のコンピューターをそれぞれのふりをさせるよりも効果的です。これらの人々。

Web サーバーとテストを同じコンピューターに配置したくないでしょう。そうしないと、Web サーバーが CPU サイクルの一部しか取得しないため、結果が大幅に台無しになります。

于 2009-09-05T04:50:46.327 に答える
0

この問題を考えると、ユーザー セッションをログに記録します。次に、その一連の呼び出しを再現するクライアント コードを記述します。

もう 1 つのオプションは、VMware を使用することです。(注、私は従業員です) たくさんの VM を作成し、それらのそれぞれでサイトに接続するだけです。それでも多くの手作業が必要になりますが、少なくともテストを行うためにそれほど多くのマシンは必要ありません。

于 2009-09-05T04:52:30.470 に答える
0

LoadUI http://www.loadui.org/をお勧めします

于 2011-04-23T13:24:46.077 に答える