web-dev-qa-db-ja.com

SQL ServerメモリとSQL Server Analysis Servicesメモリのバランスをとる方法

同じ構成のシステムが多数あります

  • 1つのサーバー(仮想または物理)
  • SQL Server(SQL)およびSQL Server Analysis Server(AS)の実行
  • マルチコア
  • 16GB RAM

SQL Serverは毎晩、約2〜3時間の処理を行いますフォローされている AS処理の2〜3時間。次に、終日ASのみが照会されます。

これは専用サーバーであり、他のアプリは問題ではなく、2つの処理セットは完全に同期している-常に次々と重複しない-どうすればSQLおよびASサーバーのメモリ制限を最適に設定できますか。

質問の理由は、SQLの制限を設定しないと、可能な限りすべてのメモリを取得するからです。ただし、私の理解では、SQLは次の場合にこのメモリを喜んで放棄します。

  • それを使用していないと

  • 別のサービス/プログラムが要求します。

したがって、論理的な観点からは、SQLに必要なだけの量を許可できると思いますが、AS 'TotalMemoryLimitについてはよくわかりません。 ASがメモリを放棄するかどうかはわかりません。実際、もっと多くを読むと、それをすべて取り入れることは間違っていると私は信じるようになります。

これは実際に両方に制限を設定する必要があることを意味しますか?ベストプラクティスとは何か、プロセスが重複しないことを考慮して測定する必要があるものについて、私は混乱しています。

これが理にかなっているといいのですが。

11
Preet Sangha

次のようなスケジュールされたタスクまたはサービスを用意することで、両方のサービスを強制することは可能だと思います。

(a)SQL Serverの夜間処理の前に、SSASサービスをシャットダウンし、SQL Serverに割り当てられるメモリを増やします

(b)SQL Serverが処理を行った後、最大サーバーメモリを減らし、SQL Serverを再起動します。

(c)SSASを起動する

これは、SQL Serverの処理中にSSASをオンラインにする必要がないことを前提としています。それ以外の場合は、(a)を「シャットダウン」から「再起動」に変更します。SQLServerの処理中にSSASがアクティブに何も実行しない限り、メモリが盗まれる心配はありません。

これはまた、各サービスがメモリ消費をオーバーラップし、異なる時間に同じメモリを使用することを前提としています-アフィニティ/ NUMAなどを使用して、操作スペースを完全に分離する方法、または最悪の場合はホストに分離する方法があると確信しています別のマシンでそれらを。

9
Aaron Bertrand

SQLとSSASは同時に実行する必要がありますか?いいえの場合、100%確信していますか?

SQLとSSASのメモリ設定を調べて、互いに連携できるかどうかを確認します。

OS、他のプロセス、およびマルチページ割り当てのために、メモリをいくらか残しておく必要があります。たぶん4G?

このようなものを試してください...

SQL側で、最大サーバーメモリを12Gに、最小サーバーメモリを6Gに設定します。

SSAS側で、TotalMemoryLimitを12Gに、LowMemoryLimitを6Gに設定します。

また、メモリ内のページのロックを有効にしないでください。

数回繰り返して、これらの数値を上下に調整してください。

これだけでは機能せず、SQLとSSASを同時に実行する必要がないことがわかっている場合は、サービスのオンとオフを切り替えるジョブのスケジューリングに関するアーロンの提案を試してみます。

7
Steven