SQL Serverの最大メモリ、ページファイル、最大並列度


15

3つの質問は、宇宙のDBAマスターが答えられることを願っています:


  1. SQL Serverの最大メモリを設定することがベストプラクティスであることは知っています。したがって、44 GB RAMのサーバーにSQL Serverがインストールされている場合、SQL Serverの最大メモリを約37 GBに設定する必要があります。

しかし、SQL Analysis ServiceとSQL Reporting ServicesがSQL Serverと同じサーバーにインストールされている場合、何を設定する必要がありますか?SQL Serverの最大メモリを22GB RAMに設定して、分析で他の22GB RAMを使用できるようにした方が良いでしょうか?


  1. 44 GB RAMのSQL Serverを実行しているサーバーで、ページファイルサイズを設定するためのベストプラクティスは何ですか?私はブレント・オザール(http://www.brentozar.com/archive/2014/06/sql-server-setup-checklist-free-ebook-download/)で以下を読みました:

SQL Serverは、巨大なページファイルを必要としません。サーバーに他のアプリケーションをインストールする場合(これはお勧めしません-SQL Serverは分離する必要があります)。より大きなページファイルが必要になる場合があります。ボックスで実行されている主要なサービスがSQL Serverのみである場合、通常、システムドライブに2GBサイズのページファイルを作成します。

Microsoftは、Remusが提供するアドバイスに一致するRAMの1.5倍に管理されるページファイルシステムを設定する必要があると述べています(参照-> http://rusanu.com/2009/11/22/system-pagefile-size-on-machines-with -large-ram /)。

したがって、44GB RAMを搭載したサーバーには、SQL Analysis ServiceとSQL Reporting Servicesの隣にSQL Serverがインストールされています。ページファイルをどのサイズに設定する必要がありますか?


  1. SharePointの場合、SharePointファームの一部であり、SharePointがデータベースを格納するSQL Serverは、1に最大並列度を設定する必要があります。これで、SharePointファームの一部ではないサーバー(sql2) SQL Server、SQL Analysis、およびReportingがインストールされているサーバー。SharePointはこのサーバーにデータベースを保存しませんが、SharePointが読み書きするレポートおよび分析データベース/キューブが作成されています。

ブレントオザール言う:

経験則:これを、ハードウェア上の単一のNUMAノード(プロセッサ)ソケットの物理コアの数以下に設定します

4つのVCPUがある場合、このSQL Serverインスタンスで最大限の並列処理を実現するには、何を構成する必要がありますか?


皆さんが私だけでなく、インターウェブのジャングルよりも多くのSQL管理者がベストプラクティスについてもう少し洞察を与えてくれることを願っています。

回答:


12

あなたの3つの質問には、触れmax memorypage fileそしてmax dop setting

最大メモリ


サーバーがAnalysis Servicesなしの専用SQL Serverのみである場合(SSASは別の獣であるため)、Glennの推奨されるベストプラクティスが出発点として適切です。追加のコンポーネントについては、max memoryの構成方法に関するJonathanのブログを参照してください。

SQL Serverの最大および最小メモリ構成について回答しました。これは、サーバーインスタンスで多数のSSISパッケージを実行している場合に役立ちます。

ページファイル


私は通常C:\、十分なディスク容量のあるドライブ上のドライブから離します。Remus and Brentの推奨に同意します。あるはずですPAGE FILE FOR SQL SERVER = 1.5 * RAM。ページファイルは、トラブルシューティングのためにFULL MEMORY DUMP(通常はMicrosoft CSSから要求されます)を取得する必要がある状況に遭遇したときに役立ちます。

読むのWindows KB 889654徹底の64ビットバージョンの適切なページングファイルサイズを決定する方法およびバックウッディこちらのページファイルについての協議を

MAX DOP設定


SharePointでは、maxdop = 1インスタンス全体に設定することをお勧めします。通常のSQLサーバーの場合、従うことをお勧めします-SQL ServerでMAXDOPを計算するための良い、反復可能な方法は何ですか?あなたのためにそれを計算するスクリプトが書かれています。

要旨は以下のとおりです(KB 2806535も同じことを言及しています):

8 or less processors    ===> 0 to N (where N= no. of processors)
More than 8 processors  ===> 8
NUMA configured         ===> MAXDOP should not exceed no of CPUs assigned to each 
                                 NUMA node with max value capped to 8
Hyper threading Enabled ===> Should not exceed the number of physical processors.

副次的な注意事項として、読むことをお勧めします - 高性能ワークロードを備えたSQL Server 2012およびSQL Server 2014の推奨される更新と構成オプション


注意すべきことは、上記のBuck Woodyのブログ投稿で、Remusは「1日を節約するのはAWEです。AWEで予約されたメモリは、ページファイルを予約する必要はありません(物理RAMでロックされているため、ページングされています。x64ではAWEの使用は自動的に行われます。」AWEで見たように、大きなページファイルは必要ありません。
ジェイソンカーター

@Kinは「レムスとブレントの推薦に同意する」と言った。しかし、ブレントのセットアップガイド(上記のOPで引用)とRemusの記事を読んだ後、それらは矛盾しています。そのため、ページファイルに関するあなたの答えは、保留中の質問のままです。
マジャー

1
@Magier問題を診断するためにフルメモリダンプを取得する必要がある状況になったので、MSの推奨事項を採用する傾向があります。WindowsかSQLサーバーかはわかりませんでした。その場合、MSの推奨事項が最適です。あなたがそのような状況に陥らないなら、ブレントのアドバイスも有効です。私は安全な側にいる傾向があるので、一緒に行きPAGE FILE FOR SQL SERVER = 1.5 * RAMます。それはあなたの質問に答えますか?
キンシャー

3

したがって、44GB RAMを搭載したサーバーには、SQL Analysis ServiceとSQL Reporting Servicesの隣にSQL Serverがインストールされています。ページファイルをどのサイズに設定する必要がありますか?

Kinが既に述べたものに加えてPerfmon Counters、ページファイルサイズを計算するために使用することをお勧めします。ページファイルの Remusの推奨はシステムのRAMの1.5倍であることにも同意します。ただし、この推奨事項では、考えられるすべての側面とシナリオ、および「一般的な推奨事項」を考慮しています。具体的な価値に興味があると思います。だからここにある

個々のシステムのページファイルのニーズは、サーバーの役割、負荷などによって異なります。システム全体またはページファイルごとにコミットされたプライベートメモリの使用状況を監視するために使用できるパフォーマンスカウンターがいくつかあります。プロセスのコミットされたプライベートメモリの量とページングファイルにページアウトされた量を判断する方法はありません。

メモリー:コミットされたバイト:コミットされた仮想メモリーのバイト数。これは必ずしもページファイルの使用量を表すものではありません-プロセスが完全に非常駐化された場合に使用されるページファイル領域の量を表します

メモリ:コミット制限:ページングファイルを拡張せずにコミットできる仮想メモリのバイト数。

ページングファイル:コミットされたページングファイルの使用率(%)

ページングファイル:%Usage Peakコミットされたページングファイルの最大パーセンテージ

上記のカウンタを使用して、ページファイルに適切な値を設定してください。このリンクを読んで、ページファイルに関する詳細情報を取得できます。

SQL Serverの最大メモリを22GB RAMに設定して、分析で他の22GB RAMを使用できるようにした方が良いでしょうか?

いいえ、ここでOS要件を逃したとは思わない。最初に、SQlサーバーに最適な最大サーバーメモリを設定する必要があります。このSEスレッドには、正しい最大サーバーメモリ値の設定に関する詳細があります。繰り返しになりますが、perfmonカウンターで頻繁に返信し、ホエイが最適な値であることを確認します。この記事を読んで、カウンターの助けを借りてSSASに最適な値を設定することをお勧めします。私はかつてこのブログを使用して、SSASのメモリ値を設定しました。私はSSASにはあまり興味がないので、私のコメントはこの記事のみに限定されます。

SharepointインスタンスのMAXDOP = 1は、広く受け入れられているパラメーターである必要があります。IIRCの場合、最大並列度がデフォルト値のままになっているときに頻繁にデッドロックが発生した後、推奨事項が広く受け入れられるようになりました。


3

ページファイルサイズについてこれまでに挙げた他のすべての回答は、比較的古い記事を参照しています。このTechnetブログの投稿は最新(2015年10月)であり、最新のシステムで理想的なページファイルサイズを計算するためのより詳細な方法を提供します。

1.5 x RAMの古い経験則はもはや適用されないことを明確に述べています。

リンクの腐敗を避けるために、その記事のコアコンテンツを以下に貼り付けました。

ピーク使用率で少なくとも1週間実行されているサーバーからメトリックを収集することをお勧めします。そのため、プロジェクトの計画および実装段階では、それを行う立場にない場合があり、プロジェクトで後から時間をかける必要がありますそうするには。


ページファイルのサイズを決定するときは、アプリケーションのメモリニーズとクラッシュダンプ設定を考慮する必要があります。

アプリケーションに必要なメモリ量はどのようにわかりますか?最良の方法は、ベースラインを取ることです。

Run Performance Monitor (Perfmon)
Go to Data Collector Sets\User Defined
Right click on User Defined and select New
Select Create Manually and next
Check Performance counter
Add the following counters:

        Memory\Committed Bytes - Committed Bytes is the amount of committed virtual memory, in bytes.
        Memory\Committed Limit - Amount of virtual memory that can be committed without having to extend the paging file
        Memory\% Committed Bytes In Use - Ratio of Memory\Committed Bytes to the Memory\Commit Limit 

注:長期間(少なくとも1週間)にわたって情報を収集し、サーバーがピーク使用量で実行されていることを確認してください。

ページファイルサイズの式は次のとおりです。

(コミットされたバイトの最大値+ワークロードバーストに対応するための追加の20%バッファー)-RAMサイズ

たとえば、サーバーに24 GBのRAMがあり、コミット済みバイトの最大値が26 GBの場合、推奨されるページファイルは次のとおりです。(26 * 1.2)-24)= 7.2 GB

2番目の要因、システムがクラッシュしたときに情報を記録する必要があるサイズについてはどうですか?

メモリダンプのサイズは、そのタイプによって決まります。

Complete Memory Dump  RAM Size + 257 MB
Kernel Memory Dump  The amount of kernel-mode memory in use (on 32-bit maximum is 2 GB, on 64-bit the maximum can go up until 8 TB)
Small Memory Dump  64KB  512 KB

ほとんどの場合、カーネルメモリダンプは根本原因分析に十分です。完全なメモリダンプは特定の場合にのみ必要であり、たとえば、ユーザーモードで何が起こったかを確認したい場合などです。

私の経験から、カーネルメモリダンプのサイズは通常次のとおりです。

On System with up to 256GB RAM =  8-12 GB size for Kernel Memory dump
On System with up to 1.5TB RAM = 8-32 GB size for Kernel Memory dump

ただし、これらの数値はMicrosoftの公式の推奨事項ではなく、サーバーによって異なる場合があるため、適用する前に必ずテストしてください。


2

私はあなたが引用している人の一人だから答えます。

1. Analysis Servicesを実行するときに、最大メモリを何に設定する必要がありますか?

SSASはSQL Serverにインストールされる他のアプリとまったく同じであるため、そこにガイダンスはありません。使用するメモリの量はわかりません。SSAS / SSIS / SSRSをサードパーティのアプリケーションとして扱う-たまたま、SQL Serverボックスに「無料」として含まれています。CPU、メモリ、ストレージのニーズはまったく異なります。

2.ページファイルサイズを何に設定する必要がありますか?

私の推奨事項は、Windowsがミニダンプを実行できるようにすることです。Microsoftサポートに連絡する必要がある問題が発生した場合は、ミニダンプから始めることができます。問題が再発し、ミニダンプ(またはエラーログなどの他の情報源)からそれを把握できない場合、1.5x RAMサイズに移動するように求められることがあります。

Microsoftの1.5x RAMの推奨事項は、システムがクラッシュしたときにWindowsがメモリの完全なダンプを実行できるようにするためです。

最近では、サーバーに64〜128〜256 GBのRAMが搭載されているため、クラッシュ中にWindowsを一時停止してメモリの内容全体を書き出すことは、通常は良い考えではありません。SQL Serverをバックアップして実行し、完全ではなくミニダンプの内容を処理する必要があります。完全なダンプを後で使用できるように保存します。通常、64 + GBのダンプファイルをMicrosoftにアップロードする必要なく、キャリア全体に進むことができます。(幸運を祈ります。)

3. SharePointに対してMAXDOPを何に設定しますか?

「私の」推奨事項と呼ばれるものは、Microsoft KB 2806535からのものです。一般的にそこから始めますが、特定のアプリケーションが何か違うことを教えてくれると、彼らは自分のアプリケーションについて一般的にSQL Serverとは異なる何かを知っています-それに従ってください。

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