Ich habe von Bob Dorr die folgende Definition erhalten, was der maximale Serverspeicher in SQL Server 2012 steuert. Sie können auch Books Online lesen, um weitere Informationen zu erhalten
Der maximale Serverspeicher steuert die SQL Server-Speicherzuordnung, einschließlich des Pufferpools, des Kompilierungsspeichers, aller Caches, der qe-Speicherzuweisungen, des Sperrmanager-Speichers und des CLR-Speichers (im Grunde jeder „Angestellte“, wie er in dm_os_memory_clerks zu finden ist). Der Speicher für Thread-Stapel, Speicherhaufen, andere Verbindungsserveranbieter als SQL Server oder Speicher, der von einer Nicht-SQL Server-DLL zugewiesen wird, wird nicht vom maximalen Serverspeicher gesteuert.
Der für den Thread-Stack zugewiesene Speicher, die DLL eines Drittanbieters, der andere als der von Microsoft (wie MySQL.PostgreSQL usw.) verbundene Verbindungsanbieter oder eine im SQL Server-Adressraum geladene DLL, die kein SQL Server ist, wird außerhalb des maximalen Serverspeichers zugewiesen. Dem IIRC-Sicherungsvorgang in SQL Server 2012 wird auch weiterhin Speicher außerhalb des Pufferpools zugewiesen.
Verwenden Sie einen Verbindungsserver, um andere RDBMS abzufragen? Jede andere Software, die auf demselben Windows-Computer installiert ist. Können Sie die Ausgabe der folgenden Abfragen an einem freigegebenen Speicherort veröffentlichen?
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
Können Sie auch die vollständige DBCC MMEMORYSTATUS
Ausgabe an einem freigegebenen Ort hochladen und den Link hier posten? Dies würde helfen, zu verstehen, welche Komponente Speicher benötigt
Bearbeiten: Gemäß der Ausgabe des dbcc-Memorystatus kann ich 2 NUMA-Knoten sehen, und der von jedem Knoten verwendete Speicher beträgt ca.
Node 1 : VM Committed 33554380
Node 2: VM Committed 33554420
Total is approx 64 G.
Wieder, wenn Sie Memory Manager in memorystatus sehen, geben Sie seine
Memory Manager KB
---------------------------------------- -----------
VM Reserved 260726964
VM Committed **67108820**
VM festgeschrieben ist tatsächlich ein von SQL Server festgeschriebener virtueller Speicher, und da dieser Speicher festgeschrieben ist, hat er physical memory backing it
. Dies wiederum lässt mich denken, dass SQL Server 65 G verwendet, wie im maximalen Serverspeicher festgelegt
Dies ist der maximale Serverspeicher. Damit der Speicher gut auf beide Knoten verteilt ist, können Sie auch die Ausgabe der folgenden Abfrage hinzufügen, um dies zu überprüfen. Bitte Screenshot hinzufügen
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;
?