web-dev-qa-db-ja.com

容量の必要性の測定またはSQLサーバーのスケーリング

これは、あまりにも技術的というよりは、一般的なアプローチの質問です。

CPUのメモリディスクまたはCPUの観点からSQLサーバーをスケールアップする必要がある場合、アプリケーションの1つに手を伸ばして、ボリュームを現在のものの2倍に増やすことを計画しています。

現在のボリュームから、CPU /メモリとディスクが問題なく実行されていることを示すキャプチャがあります。

しかし、最後に容量の増加が必要になる可能性があるボリュームが増加した場合、すべてがどのように変化するかを自信を持って測定するにはどうすればよいですか?

どうすればプロアクティブになることができ、決定を下すためにすべてを測定できるかについて、専門知識が必要ですか?

はい、過去15日間のパフォーマンスデータを保存するSQLサーバーモニタリングを導入しています。そのデータのほとんどは、パフォーマンスカウンターとDMVから取得されます。

更新-更新に応じてデータを追加-1日あたりの平均800トランザクション/秒と1日あたりの400バッチ要求/秒、それに続く1日の安定した40%のCPU使用率(ピーク日を含む)。ディスクの応答は、読み取り/書き込みの両方で5ミリ秒未満です。 1日のPLEは10Kを超えています。

これに取り組む方法についての助けは大歓迎です。私はこの質問に対する答えが広いことを知っていますが、いくつかの優れたアイデアは本当にこのサーバーだけでなく将来的に似たようなものも私に役立つことができます、ありがとう!

1
BeginnerDBA

他の人が言ったように、データベースサーバーが突然「現在のボリュームの2倍のボリュームを増やす」(正確には何のボリュームか)ことにデータベースサーバーがどのように応答するかを示す魔法の公式はありません。

一般的なアイデアを得るのに役立つ2つのこと(どちらも明らかに、どちらも持っていない):

  • サーバーの負荷、データの量、およびアプリケーションのワークロード(同時接続、ユーザーセッション、登録ユーザー、毎日の注文など、状況に応じて何でもかまいません)の相関関係を示す履歴データ(数か月以上)。 「[P]過去15日間のパフォーマンスデータ」はまったく役に立ちません。

  • 本番環境とほぼ同じように構成されたパフォーマンステスト環境。この時代には、クラウドプロバイダーの1つで仮想化テスト環境をスピンアップして1週間実行すると、予期しないパフォーマンスの問題によって引き起こされた運用停止に対して支払う価格と比較して、ピーナッツがかかります。パフォーマンスバーンダウンテストは、リリースプロセスの一部である必要があります。

どちらも明日準備を始めれば、半年後には自分の疑問にある程度自信を持って答えられるようになります。

1
mustaccio

次のように、アプリケーションの ストレステスト を実行するだけです。

  1. 現在の負荷から始める
  2. 予想されるまで(またはそれ以上)、徐々に負荷を増やします。

アプリケーションがWebベースのアプリケーションの場合、無料の 負荷テストツール を使用することを検討できます。これは [〜#〜] http [〜#〜] プロトコルをサポートしています。

アプリケーションの通常の使用中に実行されているSQLクエリを収集できる場合は、サポートされている負荷テストツールを使用して、負荷を増やしてそれらを再生できます [〜#〜] odbc [〜#〜] または [〜#〜] jdbc [〜#〜] プロトコル。

負荷テスト実行モニター中 SQLサーバーパフォーマンスカウンター であり、増加する負荷をこれらのカウンターと関連付けます。負荷が2倍になったときに何が起こるか概要を説明します。

1
Dmitri T