最近、忙しいウェブサイト用の100 GBのデータベースを以下から移行しました。
MS SQL 2008 Standard Edition R2
Windows Server 2008
48gb RAM
に
MS SQL 2012 Web Edition
Windows Server 2012
64gb RAM
working setメモリが2008サーバーと比較して比較的低いため、2012年のメモリの使用量は異なっているように見えます(下のスクリーンショットを参照)。
質問
これは正しいように見えますか、そして私は心配する必要がありますか? MSSQLが必要なだけのメモリにアクセスできることを確認したいと思います。 2つのサーバーが使用するWebサイトからの要求に関して、2つのサーバーの使用プロファイルは同じであるため、クエリのパターンや量は変更されていません。
SQL Server 2008
SQL Server 2012
SQL Server 2008のメモリ設定
SQL Server 2012のメモリ設定
ヒントをありがとう。
SQL Server 2012は、メモリの制御と管理の方法を大幅に変更しました。 2012年以前は、max server memoryは8Kページしか制御していませんでしたが、現在ではそれ以上の制御が行われています。
SQLOSチームからのこれに関するいくつかの良い記事があります:
これらの変更により、ワーキングセット、最大サーバーメモリなどに表示される内容は、バージョン間でほぼ確実に異なります。重要なのは、これらの数値の「通常」が何であるかに焦点を当て、特定のパフォーマンスの問題があるときに大幅に逸脱するかどうかを確認することです。システムが完全に正常に動作してパニックになっているときに数字を見るだけではなく、何かが間違っていると想定します(これは、ページの平均余命の300のようなマジック番号でよく起こります-システムのPLEは常に120)。
いくつかのベースラインといくつかのベースラインを設定するのに役立つクエリ:
SELECT TOP (10) page_type,
numpages = COUNT(*),
size_kb = 8*COUNT(*)
FROM sys.dm_os_buffer_descriptors
WHERE database_id < 32767
GROUP BY page_type
ORDER BY size_kb DESC;
SELECT * FROM sys.dm_os_process_memory;
SELECT TOP (10) [type],
size_kb = SUM(pages_kb)
FROM sys.dm_os_memory_clerks
GROUP BY [type]
ORDER BY size_kb DESC;
SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Memory Broker%'
OR object_name LIKE '%Buffer Manager%'
OR object_name LIKE '%Memory Manager%'
OR object_name LIKE '%Memory Node%';
役に立つかもしれない他のいくつかの投稿: