このMicrosoftの記事 64ビットバージョンのWindows Server 2008またはWindows 2008 R2の適切なページファイルサイズを決定する方法 は、64ビットWindows 2008およびWindows 2008R2のページファイルサイズを計算するためのガイダンスを提供します。これは間違いなく、汎用サーバーでは問題なく機能します。 Windows 2008/R2 64ビットで実行されているSQL Server 2008R2のガイダンスは何ですか?
メモリ内のデータがページファイルに到達しないようにする必要があると思います。そうしないと、SQLがディスクに対してデータを2回ヒットする可能性があります。SQL Serverはメモリ内のデータにヒットすることもできますかページファイル?ガイダンスとして SQL Server 2008 R2 Books Online を探しましたが、ページファイルの使用についての言及はまだありません。
これは潜在的な使用シナリオです:64 GBのRAMを備えた物理サーバーがある場合、64 GBのRAM全体にページファイルが必要ですか? 96GBのページファイル?これは、単一のファイルでは少し過剰に見えます。私は、WindowsがRAM上でアプリを簡単にスワップアウトできるようにするために、ページファイルをメモリに結合するという常識があったことを知っていますが、それは本当ですか? 64GB未満のページファイルはここでのパフォーマンスを妨げますか?
通常は物理メモリのみを使用するSQL Serverの特別な設定はありません
MSがWindowsに対して言っていることを実行するだけです。
ああ、そしてさらに購入するRAMとにかく、私たちが1つの主題である間に... ;-)
lock pages in memory
を調べてください。このように、SQLサービスアカウントがディスクへのページングではなく、利用可能なRAMを使用するように設定できます。メモリ内のロックページの詳細を確認するには、これをチェックしてください link 。スニペットは次のとおりです。
Windowsポリシーのメモリ内のページのロックオプションは、デフォルトで無効になっています。 Address Windowing Extensions(AWE)を構成するには、この特権を有効にする必要があります。このポリシーは、プロセスが物理メモリにデータを保持するためにプロセスを使用できるアカウントを決定し、システムがディスク上の仮想メモリにデータをページングできないようにします。 32ビットオペレーティングシステムでは、AWEを使用していないときにこの特権を設定すると、システムのパフォーマンスが大幅に低下する可能性があります。メモリ内のページのロックは、64ビットオペレーティングシステムでは必要ありません。
システムで使用する前に、この機能をテストしてください。
はい、64GBの場合RAMleast64GBスワップファイル(96GB推奨)が必要です。スワップの可能性があるためではなく、しかし、Windowsメモリマネージャーの設計が原因で、この問題について以前に書きました 大容量RAMを搭載したコンピューターのシステムページファイルサイズ :
プロセスが
MEM_COMMIT
メモリVirtualAlloc
/VirtualAllocEx
を介して、要求されたサイズをページファイルに予約する必要があります。これは最初のWin NTシステムでは真実でしたが、今日でも真実です Win32での仮想メモリの管理 :メモリがコミットされると、メモリの物理ページが割り当てられ、スペースがページファイルに予約されます。
代替案は oom_killer のようなものです。
したがって、推奨事項に従ってください。時々、物事は見た目よりも少し複雑になります。そして、AWEがもたらす複雑さやロックページの特権についても触れていません...