9

私たちは MySQL 駆動のサイトを持っており、48 時間で 10 万人のユーザーを獲得し、すべてのユーザーがサイトにログインして購入します。

Apache Bench や Siege などのツールを使用して、この種の負荷をシミュレートしようとしています。

重要な指標は同時ユーザー数のように思われ、レポート結果を入手しましたが、まだ暗闇の中にいるように感じます.

私が聞きたいのは、この種のトラフィックを予測するために、どのようなことをテストする必要があるかということです。

50 人の同時ユーザー 1000 回? 500 人の同時ユーザーが 10 回?

DB エラー、Apache タイムアウト、および応答時間を調べています。私たちは他に何を見なければなりませんか?

これは漠然とした質問であり、「正しい」答えがないことはわかっています。インフラストラクチャが現実的に処理できるものを判断する方法について、一般的な考えを探しているだけです。

前もって感謝します!

4

2 に答える 2

3

同時ユーザーは確かに重要な要素の1つです。特に、DB接続プールなどに当てはまります。ただし、テストのページレート(ページ/秒)も期待する範囲内にあることを確認する必要があります。テストケースの思考時間が大幅にずれている場合、実際のトラフィックよりもはるかに高い(または低い)ページレートを誤ってシミュレートする可能性があります。時間とは、ユーザーがページのリクエスト(ページの読み取り、フォームへの入力など)の間に費やす時間のことです。

手元にある他の情報によっては、これはシミュレートする同時ユーザーの数を計算するのに役立つ場合があります。 仮想ユーザー計算機

エンドユーザーに見られる完全なページ読み込み時間は、通常、システムパフォーマンスを評価するための最も重要な指標です。また、すべてのトランザクションの失敗率を探す必要があります。また、決して完了しないトランザクションにも注意する必要があります。一部のテストツールはこれらを十分に報告しないため、サーバーが応答しない場合にシミュレートされたユーザーが無期限にハングアップする可能性があります...そしてこの状態を報告しません。特定のページまたはトランザクションで待機しているユーザーの数と、それらのユーザーが待機している平均時間を報告するツールを探します。

探すべきサーバー側の指標に関して、アプリは他にどのようなテクノロジーに基づいていますか?.NETアプリとPHPアプリではさまざまなことを検討する必要があります。

最後に、単一レベルの負荷だけでなく、増加する負荷に対してシステムがどのように応答するかを確認することは非常に価値があることがわかりました。この記事では、さらに詳しく説明します。

于 2010-11-03T13:35:28.113 に答える
1

理想的には、ユーザーへの使用状況をモデル化する必要がありますが、10 万ユーザーのシミュレートされた同時セッションを作成することは、通常、簡単には達成できません。最良の情報源は、最も忙しい時間のログを調べて、その負荷レベルをモデル化する方法を見つけ出すことです。

データベースは通常、インフラストラクチャの重要な部分であるため、ロック待機の数と長さ、および db ステートメントの数と期間を記録することを検討します。

注目すべきもう 1 つの重要な項目は、ディスク キューの長さです。

ほとんどのプロセスは、サイト全体または特定のページで遅い応答を探し、原因を突き止めることです。

負荷テストの最大の問題は、ネットワークをテストするのが非常に難しいことです。(ほとんどの公開サイトがそうであるように) ISP の帯域幅が限られている場合、負荷テストに反映されないパフォーマンスの問題が発生する可能性があります。

于 2010-11-03T02:30:11.630 に答える