Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Pravidelně monitorujte instanci SQL Serveru a ověřte, že využití paměti spadá do typických rozsahů.
Konfigurace maximální paměti SQL Serveru
Ve výchozím nastavení může instance SQL Serveru v průběhu času spotřebovávat většinu dostupné paměti operačního systému Windows na serveru. Jakmile je paměť získána, nebude uvolněna, pokud se nezjistí zatížení paměti. To je záměrně a neznamená nevrácení paměti v procesu SQL Serveru. Použijte možnost maximální paměti serveru k omezení velikosti paměti, kterou SQL Server může získat pro většinu svých použití. Další informace naleznete v Průvodce architekturou správy paměti.
V SQL Serveru na Linuxu nastavte limit paměti pomocí nástroje mssql-conf a memory.memorylimitmb.
Monitorování paměti operačního systému
Pokud chcete monitorovat stav nedostatku paměti, použijte následující čítače windows serveru. Mnoho čítačů paměti operačního systému lze dotazovat prostřednictvím zobrazení dynamické správy sys.dm_os_process_memory a sys.dm_os_sys_memory.
Paměť: Dostupné bajty Tento čítač označuje, kolik bajtů paměti je aktuálně k dispozici pro použití procesy. Nízké hodnoty čítače dostupných bajtů můžou znamenat celkový nedostatek paměti operačního systému. Tuto hodnotu je možné dotazovat pomocí T-SQL pomocí sys.dm_os_sys_memory.available_physical_memory_kb.
Paměť: Stránky/s Tento čítač označuje počet stránek, které byly načteny z disku kvůli chybám pevných stránek nebo zapsány na disk, aby se uvolnilo místo v pracovní sadě kvůli chybám stránky. Vysoká míra pro čítač stránky/sek může znamenat nadměrné stránkování.
paměti: Chyby stránek za sekundu Tento čítač označuje míru výskytu chyb stránek pro všechny procesy, včetně systémových procesů. Nízká, ale nenulová rychlost stránkování na disk (a proto chyby stránky) je typická, i když má počítač dostatek dostupné paměti. Nástroj Microsoft Windows Virtual Memory Manager (VMM) přebírá stránky z SQL Serveru a dalších procesů při úpravě velikostí pracovních sad těchto procesů. Tato aktivita VMM má tendenci způsobovat chyby stránky.
Proces: Výpadky stránek za sekundu Tento čítač označuje míru výpadků stránek pro daný uživatelský proces. Monitorování procesu : Page Faults/sec ke stanovení, zda je aktivita disku způsobena stránkováním SQL Serveru. Pokud chcete zjistit, zda je příčinou nadměrné zátěže stránkování SQL Server nebo jiný proces, monitorujte instanci procesu SQL Serveru pomocí čítače Proces: Poruchy stránky/sekundu.
Další informace o řešení nadměrného stránkování najdete v dokumentaci k operačnímu systému.
Izolace paměti používané SQL Serverem
Pokud chcete monitorovat využití paměti SYSTÉMU SQL Server, použijte následující příkaz: Použijte objekty SYSTÉMU SQL Server. Mnoho čítačů objektů SQL Serveru lze dotazovat prostřednictvím zobrazení dynamické správy sys.dm_os_performance_counters nebo sys.dm_os_process_memory.
SQL Server ve výchozím nastavení spravuje požadavky na paměť dynamicky na základě dostupných systémových prostředků. Pokud SQL Server potřebuje více paměti, dotazuje se operačního systému, aby zjistil, jestli je k dispozici volná fyzická paměť a používá dostupnou paměť. Pokud je pro operační systém nedostatek volné paměti, SQL Server uvolní paměť zpět do operačního systému, dokud se nezmírní stav nedostatku paměti nebo dokud SQL Server nedosáhne limitu minimální paměti serveru . Můžete však přepsat možnost dynamického používání paměti pomocí minimální paměti serverua maximální paměti serveru možnosti konfigurace serveru. Další informace naleznete v tématu Možnosti konfigurace paměti serveru.
Pokud chcete monitorovat množství paměti, kterou SQL Server používá, projděte si následující čítače výkonu:
SQL Server: Správce paměti: Celková paměť serveru (KB) Tento čítač označuje velikost paměti operačního systému, kterou správce paměti SQL Serveru aktuálně potvrdil na SQL Server. Očekává se, že toto číslo bude růst podle požadavků skutečné aktivity a bude růst po spuštění SQL Serveru. Dotaz na tento čítač proveďte prostřednictvím zobrazení dynamické správy sys.dm_os_sys_info a sledujte sloupec committed_kb.
SQL Server: Správce paměti: Paměť cílového serveru (KB) Tento čítač označuje ideální velikost paměti, kterou MŮŽE SQL Server využívat na základě nedávné úlohy. Porovnejte celkové paměti serveru po určité době typické operace, abyste zjistili, jestli má SQL Server přidělenou požadovanou velikost paměti. Po typické operaci by celková paměť serveru a paměť cílového serveru měly být podobné. Pokud je celková paměť serveru výrazně nižší než paměť cílového serveru, může u instance SQL Serveru docházet k zatížení paměti. Během období po spuštění SQL Server se očekává, že celková paměť serveru bude nižší než cílová paměť serveru, protože celková paměť serveru roste. Dotazujte se na tento čítač pomocí zobrazení dynamické správy sys.dm_os_sys_info, přičemž sledujte sloupec committed_target_kb. Další informace a osvědčené postupy konfigurace paměti naleznete v tématu Možnosti konfigurace paměti serveru.
Proces: Pracovní sada Tento čítač označuje velikost fyzické paměti, kterou aktuálně používá proces podle operačního systému. Sledujte sqlservr.exe příklad tohoto čítače. Dotazujte se na tento čítač pomocí zobrazení dynamické správy sys.dm_os_process_memory a sledujte sloupec
physical_memory_in_use_kb.Proces: Privátní bajty Tento čítač označuje velikost paměti, kterou proces požadoval pro vlastní použití operačního systému. Sledujte sqlservr.exe příklad tohoto čítače. Vzhledem k tomu, že tento čítač zahrnuje všechny přidělení paměti požadované sqlservr.exe, včetně těch, které nejsou omezeny možností maximální paměti serveru, může tento čítač hlásit hodnoty větší než možnost maximální paměti serveru.
SQL Server: Správce vyrovnávací paměti: Databázové stránky Tento čítač označuje počet stránek ve fondu vyrovnávací paměti s obsahem databáze. Nezahrnuje jinou paměť fondu bez vyrovnávací paměti v rámci procesu SQL Serveru. Dotazujte tento čítač pomocí zobrazení dynamické správy sys.dm_os_performance_counters.
SQL Server: Správce vyrovnávací paměti: Poměr přístupů do mezipaměti vyrovnávací paměti Tento čítač je specifický pro SQL Server. Žádoucí je poměr 90 nebo vyšší. Hodnota větší než 90 označuje, že více než 90 procent všech požadavků na data byla splněna z mezipaměti dat v paměti, aniž by bylo nutné číst z disku. Další informace o Správci vyrovnávací paměti SYSTÉMU SQL Server naleznete v tématu SQL Server, Správce vyrovnávací paměti objekt. Dotazujte tento čítač pomocí zobrazení dynamické správy sys.dm_os_performance_counters.
SQL Server: Správce vyrovnávací paměti: Očekávaná délka života stránky Tento čítač měří dobu v sekundách, po kterou nejstarší stránka zůstává ve fondu vyrovnávací paměti. U systémů, které používají architekturu NUMA, je to průměr ve všech uzlech NUMA. Vyšší, rostoucí hodnota je nejlepší. Náhlá pokles znamená významnou četnost změn dat ve fondu vyrovnávacích pamětí a mimo fond vyrovnávacích pamětí, což znamená, že úloha nemohla plně využít výhod dat, která už jsou v paměti. Každý uzel NUMA má svůj vlastní uzel fondu vyrovnávací paměti. Na serverech s více než jedním uzlem NUMA zobrazte očekávanou délku životnosti stránek pro každý uzel fondu vyrovnávací paměti pomocí SQL Server: Uzel vyrovnávací paměti: Očekávaná délka životnosti stránky. Dotazujte tento čítač pomocí zobrazení dynamické správy sys.dm_os_performance_counters.
Příklady
Určení aktuálního přidělení paměti
Následující dotazy vrátí informace o aktuálně přidělené paměti.
SELECT
(total_physical_memory_kb/1024) AS Total_OS_Memory_MB,
(available_physical_memory_kb/1024) AS Available_OS_Memory_MB
FROM sys.dm_os_sys_memory;
SELECT
(physical_memory_in_use_kb/1024) AS Memory_used_by_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_by_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;
Určení aktuálního využití paměti SQL Serveru
Následující dotaz vrátí informace o aktuálním využití paměti SQL Serveru.
SELECT
sqlserver_start_time,
(committed_kb/1024) AS Total_Server_Memory_MB,
(committed_target_kb/1024) AS Target_Server_Memory_MB
FROM sys.dm_os_sys_info;
Určení očekávané délky životnosti stránky
Následující dotaz používá sys.dm_os_performance_counters sledovat aktuální očekávanou délku životnosti stránky instance SQL Serveru hodnotu na celkové úrovni správce vyrovnávací paměti a na každé úrovni uzlu NUMA.
SELECT
CASE instance_name WHEN '' THEN 'Overall' ELSE instance_name END AS NUMA_Node, cntr_value AS PLE_s
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Page life expectancy';
Související obsah
- monitorování využití prostředků (sledování výkonu)
- sys.dm_os_sys_memory (Transact-SQL)
- sys.dm_os_process_memory (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)
- sys.dm_os_performance_counters (Transact-SQL)
- SQL Server, objekt Správce paměti
- SQL Server, objekt správce vyrovnávací paměti
- možnosti konfigurace paměti serveru
- Průvodce architekturou správy paměti