SQL Server 2012の最大サーバーメモリが何を制御するかについて、ボブドーアから以下の定義を得ました。詳細については、Books Onlineを読むこともできます
最大サーバーメモリは、バッファープール、コンパイルメモリ、すべてのキャッシュ、QEメモリ許可、ロックマネージャーメモリ、CLRメモリ(基本的にはdm_os_memory_clerksにある「クラーク」)を含むSQL Serverメモリの割り当てを制御します。スレッドスタック、メモリヒープ、SQL Server以外のリンクサーバープロバイダー、または「非SQL Server」DLLによって割り当てられたメモリは、最大サーバーメモリによって制御されません。
スレッドスタック、サードパーティDLL、Microsoft以外のリンクサーバープロバイダー(MySQL.PostgreSQLなど)に割り当てられたメモリ、またはSQL Server以外のSQL Serverアドレス空間に読み込まれたDLLは、最大サーバーメモリの外部に割り当てられます。SQL Server 2012のIIRCバックアップ操作でも、バッファープール外のメモリが割り当てられます。
リンクサーバーを使用して他のRDBMSをクエリしていますか?同じWindowsマシンにインストールされているその他のソフトウェア。次のクエリの出力を共有場所に投稿できますか
select type,
sum(pages_kb)/1024 as [Memory utilized in MB],
sum(awe_allocated_kb)/1024 as [Memory allocated though Windows API]
from sys.dm_os_memory_clerks
group by type
order by [Memory utilized in MB] desc
Go
-------
select (virtual_address_space_committed_kb/1024) as virtual_address_space_committed_MB,
(locked_page_allocations_kb/1024) locked_page_allocations_MB,
(pages_kb/1024) [memory allocated MB]
from sys.dm_os_memory_nodes
Go
-------
SELECT SUM (pages_in_bytes)/1024 as 'KB Used', type
FROM sys.dm_os_memory_objects
GROUP BY type
ORDER BY 'KB Used' DESC;
GO
--------
select name,
type,
sum(pages_kb)/1024 as [Mem MB],
sum(entries_count) as [Total Entry count] from sys.dm_os_memory_cache_counters
group by
type, name
order by [Mem MB] desc
Go
-----
select * from sys.dm_os_loaded_modules where company <> 'Microsoft Corporation'
go
DBCC MMEMORYSTATUS
いくつかの共有場所に完全な出力をアップロードして、リンクをここに投稿することもできます。これは、どのコンポーネントがメモリを使用しているかを理解するのに役立ちます
編集: dbcc memorystatusの出力に従って、2つのNUMAノードを確認でき、各ノードで使用されるメモリはおよそです。
Node 1 : VM Committed 33554380
Node 2: VM Committed 33554420
Total is approx 64 G.
ここでも、memorystatus出力でメモリマネージャが表示された場合、
Memory Manager KB
---------------------------------------- -----------
VM Reserved 260726964
VM Committed **67108820**
コミットされたVMは、実際にはSQL Serverによってコミットされた仮想メモリであり、このメモリがコミットされているため、仮想メモリが割り当てられますphysical memory backing it
。これも、SQL Serverが最大サーバーメモリの設定で65Gを使用していると思います
これが最大サーバーメモリです。したがって、メモリは両方のノード間で適切に分散されているため、以下のクエリジュットの出力を追加して確認することもできます。スクリーンショットを追加してください
SELECT (physical_memory_in_use_kb/1024)/1024 AS [PhysicalMemInUseGB]
FROM sys.dm_os_process_memory;
GO
SELECT TOP (20) * FROM sys.dm_os_memory_clerks ORDER BY pages_kb DESC;
?