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


11

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

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

SQL Serverは毎晩約2〜3時間の処理を実行し、その後 2〜3時間のAS処理を実行します。次に、終日ASのみが照会されます。

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

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

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

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

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

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

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

回答:


9

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

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

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

(c)SSASを起動する

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

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


SASSの処理後もSQLを再起動する必要があると思います。これは大量の読み取りを行うためです(データウェアハウス)。
Preet Sangha

実際に考えてみましょう-SQLサーバーの再起動は実際にはすべてのSQL処理に影響を与えませんか?
Preet Sangha

1
@Preetはい、それは重要ではありませんか?
アーロンバートランド

7

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

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

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

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

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

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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.