Saya mendapat definisi di bawah ini dari Bob Dorr tentang apa memori server Max dalam kontrol SQL Server 2012. Anda juga dapat membaca Buku Daring untuk lebih jelasnya
Memori server maksimum mengontrol alokasi memori Server SQL, termasuk kumpulan buffer, kompilasi memori, semua cache, hibah memori qe, memori manajer kunci, dan memori CLR (pada dasarnya setiap "pegawai" seperti yang ditemukan di dm_os_memory_clerks). Memori untuk tumpukan thread, tumpukan memori, penyedia server tertaut selain SQL Server, atau memori apa pun yang dialokasikan oleh DLL "non SQL Server" tidak dikontrol oleh memori server maks.
Memori yang dialokasikan untuk untuk tumpukan benang, DLL pihak ketiga, penyedia server Linked yang selain Microsoft (seperti MySQL.PostgreSQL dll) atau DLL yang dimuat dalam ruang alamat SQL Server yang bukan SQL Server dialokasikan di luar memori server maks. Operasi cadangan IIRC di SQL Server 2012 juga masih mengalokasikan memori di luar buffer pool.
Apakah Anda menggunakan server tertaut untuk menanyakan RDBMS lain? Perangkat lunak lain yang diinstal pada mesin windows yang sama. Dapatkah Anda memposting di beberapa lokasi bersama output dari pertanyaan berikut
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
Bisakah Anda juga mengunggah DBCC MMEMORYSTATUS
hasil lengkap di beberapa lokasi bersama dan memposting tautan di sini. Ini akan membantu dalam memahami komponen apa yang mengambil memori
Sunting: Sesuai dengan keluaran status memori dbcc saya dapat melihat 2 NUMA node dan memori yang digunakan oleh setiap node adalah sekitar
Node 1 : VM Committed 33554380
Node 2: VM Committed 33554420
Total is approx 64 G.
Sekali lagi jika Anda melihat Memory Manager dalam status memori output-nya
Memory Manager KB
---------------------------------------- -----------
VM Reserved 260726964
VM Committed **67108820**
VM berkomitmen sebenarnya adalah Memori Virtual yang dilakukan oleh SQL Server dan karena memori ini berkomitmen itu physical memory backing it
. Ini lagi yang membuat saya berpikir SQL Server menggunakan 65 G sebagaimana diatur dalam memori server maks
Inilah yang dimaksud dengan memori server maks. Jadi memori terdistribusi dengan baik antara kedua node, Anda juga dapat menambahkan output dari query query di bawah ini untuk memeriksa. Silakan tambahkan tangkapan layar
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;
?