web-dev-qa-db-ja.com

メモリの問題はありますか?

私は sp_Blitz を実行して、次のようなメモリの問題を指摘しました。

メモリの危険度が低いサーバーの物理メモリは32755メガバイトですが、使用できるのは235メガバイトのみです。サーバーのメモリが不足すると、パフォーマンスが低下するディスクへのスワップの危険があります。

サーバーには32 GB RAM合計、0-2 MB Free 羊、 200 - 2376 Mb Available

@@バージョン:Microsoft SQL Server 2008 R2(SP2)-10.50.4000.0(X64)Jun 28 2012 2012 08:36:30 Copyright(c)Microsoft Corporation Enterprise Edition(64-bit)on Windows NT 6.1(Build 7601:Service Pack 1)

しばらくパフォーマンスカウンターを見て、次の値を確認しました。

Page Faults/s _Total ~ 1.200 Average, Max 18.000, regular Peeks up to 1500.
Page Faults/s sqlserver ~ 380 Average, Max 1600, regular Peeks up to 1000.
Target Server Memory 30006
Total Server Memory 30006
Buffer cache hit ratio  AVG 99,9
Target Pages 3.750 stable
Total Pages 3.750 stable
Free Pages Avg 8300, Max 13.000
Memory Grants Pending 0
% Processor Time _Total Average 15%

ユーザー接続数は常に約300です。

私の観点から、これらの値のいくつかは、サーバーがうまく機能していることを示しています。メモリ許可保留またはバッファキャッシュヒット率。ページフォールト/秒は、キャッシュが配置されているように見えます。リソースモニターは、ハードフォールト/秒(これは同じ値です)にも定期的に高いピークがあることを示しています。

だから、なぜsp_blitzがこの問題を示しているのか疑問に思いました。私は深刻な問題に直面していますかI NEED MORE MEMORY issueまたは、32Gbの物理メモリのSQLに割り当てられた30GBを指しているだけで、Windowsに十分なメモリが残っていませんか?

4
Magier

SpBlitzのメモリに関する推奨事項 をよく見ると、2つの考えられる意味があることがわかります。

メモリの危険性が低いか、最大メモリが高すぎる

あなたのケースでは、あなたがそれらを共有したperfmonカウンター出力を見ると、メモリのプレッシャーではないようです。そのため、max server memory is configured incorrectly。これは当てはまるようです。32Gのメモリを搭載したシステムでSQL Serverに30 Gを割り当てた場合、OSがメモリを増やすために戦うことになります。

この場合、OSはSQL Serverプロセスのディスクへのページングを開始し、非常に遅くなります。または、SQL Serverサービスアカウントのメモリにロックされたページがある場合、OSプロセスはディスクにページングされます。これらの両方の条件は、SQL ServerとOSにとって非常に悪いものです。

このSEスレッド を利用して、最大サーバーメモリの適切な値を計算することをお勧めします。私はユーザーにperfmon counterssensible値に到達します。

27 G to SQL Serverおよび退出5G for OS。次に、SEスレッドで言及されているperfmonカウンターを使用して、実用的な値に到達します。

編集:SQL Server 2008 R2 SP3を適用するように依頼するのを忘れていました。現在、SQL ServerはSP2上にあります。これは、拡張サポートが必要な場合に必要です。いずれの場合も、安全を確保するために、SQL Serverに最新のService Packが適用されていることを常に確認する必要があります。

5
Shanky