1

現在、20 個の SOA サービスを備え、1 つのマスター mysql データベースと 2 つのスレーブ ノードを持つシステムがあります。現在、データベースには 10 GB のデータがあります。テーブル内のデータが大幅に増加するという要件があります。実装に進む前に、システムのストレス テストを行いたいと考えています。この種の分散環境では、どのようなストレス テストが理にかなっていますか?

また、ストレス テストを実行するときは、サービスに対する要求の 90% を処理するための待機時間などの待機時間とメトリックを調べることができます。サービスに関するその他の優れた指標はありますか? mysql データベースのどのメトリックを探す必要がありますか?

ありがとうございました

4

2 に答える 2

1

このシナリオのアイデアは、本番環境で使用されるページ リクエストと投稿をモデル化することです。違いは、現在の本番データの 10Gb のコピーのみを使用して負荷テストを実行することです。次に、追加データをシミュレートし、同じ負荷テストを実行します。サービスを使用するページの応答を比較したり、サービス呼び出しを直接確認したりできます。

その後、余分なデータがサービス呼び出しに与える影響を確認できます。

最も重要なメトリックは、最も頻繁に呼び出されると予想される (または測定された) 呼び出しの応答時間です。

パフォーマンスの問題が見つかった場合は、データベースとサーバー自体に関するその他の統計を分析できます。

于 2010-06-14T03:50:39.633 に答える
1

ここにいくつかのアイデアがあります:

  1. テスト データベースをセットアップし、増加が予想されるテーブルに追加のデータを読み込みます。予想される増加の倍数を使用します。たとえば、テーブルが 2000 行増加すると予想している場合は、テスト テーブルに 4000 行を追加します。
  2. MySQL で低速クエリ ログを有効にします。
  3. SOA サーバーのログ レベルが、ストレス テストからのエラーをデバッグするのに十分なほど詳細であることを確認してください。
  4. JMeterなどの負荷テスト ツールを使用して、各サービスに対して複数の要求を立て続けに実行します。予想される 1 秒あたりのリクエスト数の倍数を使用します。私は通常、予想されるリクエスト数の 2 倍、4 倍、8 倍などに増やします。
  5. 個々のサービスに対して上記のテストを順番に繰り返します。
  6. 「典型的な」サービスの組み合わせで上記のテストを繰り返します。たとえば、サービス 1 への要求がサービス 2 への要求の 2 倍になると予想される場合は、それをテストに反映させます。
  7. 信頼性もテストしたい場合は、MySQL スレーブ ノードの一方または両方をオフラインにして、JMeter テストを繰り返してみてください。

JMeter は、必要なすべてのレイテンシ情報を提供するはずです。私が好んで使用する JMeter 形式のもう 1 つの有用な「実世界」データ ポイントは、90% クエリ時間です。これは、テスト応答の 90% 以上の応答時間の値です。

于 2010-06-05T01:21:18.130 に答える