Windowsページファイルのサイズについては、多くの推奨事項があります。私が探しているのは正しい配置です。
サーバー2012R2でMS SQLサーバーを実行していますVM複数の個別の仮想ディスクを使用:
現時点では、Windowsがページファイルを制御しています。サイズは38GB(メモリは265)で、ログファイルと一緒にディスクに配置されました。私の理解では、この配置は論理的ではありません。SQLトランザクションログファイルを含むディスクは、SQLサーバーでI/Oが最も重いディスクです。それは本当にページファイルの最適な場所ですか?記憶域に関しては、ファイルを別のドライブに簡単に移動できました。
Windowsにはファイルをそこに配置する理由があるかもしれませんが、そうであれば、これは何でしょうか?それとも私は自分の考えに誤りがありますか?
正直に言うと、SQLサーバーにページングを開始させたくないことはありません。 SQL Serverは、メモリがディスクにページングされると、洋ナシ型になる傾向があります。
SQL Serverのベストプラクティスは、Max Server Memory
構成は、SQL Serverが十分なメモリを持つのに十分な大きさですが、OSやサーバーで実行されている他のものが十分なメモリを持つのに十分なほど小さい数に設定します。これを設定する方法についていくつかの素晴らしいアドバイスがあります here と here 。
256 GBのメモリを搭載したサーバーで、-only SQL Serverがサーバー上で実行されている場合、最大サーバーメモリを235929 MBに設定して、約25 GBのヘッドルームを確保することをお勧めします。これでページングを防ぐことができます。
EXEC sys.sp_configure 'max server memory (MB)', '235929';
RECONFIGURE;
インターネット上には、ページファイルをメモリの1.5倍のサイズにする必要があるとのアドバイスがたくさんあります。 256GBのメモリを搭載したサーバーでは、386GBのページファイルが必要になります。このページファイルは、データおよびログファイルとは別のドライブに置く必要があります(データ/ログドライブへのページングを行わないと、ページングによって発生するパフォーマンスの問題が悪化します)。 512 GBのC:\ドライブを備えたサーバーを構築している場合を除き、C:\ドライブはおそらくこれには十分な大きさではありません。また、ドライブを高速にする必要があります(そうでない場合、遅いディスクへのページングは、ページングによって引き起こされるパフォーマンスの問題を悪化させます)。おそらく、その1.5倍のページファイル用に専用のディスクが必要になります。
そのアドバイスは、あなたがwantページングするサーバーを想定しています。サーバーにページングさせたくない。 SQL Serverはページングを開始するとクラッシュする可能性があり、そうでない場合、パフォーマンスが低下してクロールが遅くなります。ページファイル用の超高速NVMeドライブを購入すれば、おそらくパフォーマンスは許容範囲内になります。
私はそれがどんなに大きくても気にしません。 それを使うつもりはありません。かなり小さい場合があります。 C:\ドライブに置くことができます。 C:\ドライブは遅い場合があります。
システムがクラッシュしてメモリクラッシュダンプが生成された場合、ページファイルのサイズがダンプを処理するのに十分でない可能性があります。しかし、大量のメモリを搭載したシステムでは、クラッシュダンプ用に1TBのメモリをディスクにダンプすると、高速ディスクでも長時間かかるため、通常、SQL Serverをオンラインに戻し、クラッシュダンプをキャプチャします。トラブルシューティングの一環として、問題が繰り返し発生するサーバーを再構成できます。
Windowsページファイル(Pagefile.sys)を、データベースまたはログファイルが配置されているのと同じディスクに配置しないでください。システムドライブにそのままにしておくか、新しいドライブを割り当てることができます。システムドライブストレージがSSDの場合、ページファイルをそこに残して、ページファイルの開始サイズを量RAM x 1.5。