Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Rendszeresen monitorozza az SQL Server egy példányát annak ellenőrzéséhez, hogy a memóriahasználat a tipikus tartományokon belül van-e.
Sql Server maximális memória konfigurálása
Alapértelmezés szerint előfordulhat, hogy egy SQL Server-példány idővel felhasználja a windowsos operációs rendszer rendelkezésre álló memóriájának nagy részét a kiszolgálón. A memória beszerzése után a rendszer csak akkor szabadít fel memóriát, ha memóriaterhelést észlel. Ez terv szerint történik, és nem jelez memóriaszivárgást az SQL Server-folyamatban. A maximális szervermemória beállítással korlátozhatja az SQL Server számára engedélyezett memóriamennyiséget, amelyet a legtöbb használat során igénybe vehet. További információ: Memóriakezelési architektúra útmutató.
Linuxon futó SQL Serverben állítsa be a memória korlátját az mssql-conf eszközzel és a memory.memorylimitmb beállítással.
Az operációs rendszer memóriáinak monitorozása
Alacsony memóriaállapot figyeléséhez használja az alábbi Windows-kiszolgálószámlálókat. Számos operációs rendszer memóriaszámlálója lekérdezhető a dinamikus felügyeleti nézetek sys.dm_os_process_memory és sys.dm_os_sys_memory.
Memória: Elérhető bájtok Ez a számláló azt jelzi, hogy jelenleg hány bájtnyi memória áll rendelkezésre a folyamatok számára. Az elérhető bájtok számláló alacsony értékei az operációs rendszer memóriájának általános hiányát jelezhetik. Ez az érték a T-SQL-en keresztül kérdezhető le sys.dm_os_sys_memory.available_physical_memory_kb használatával.
Memória: Oldalak/mp Ez a számláló azt jelzi, hogy hány lapot kérnek le a lemezről a merevlemezről a laphibák miatt, vagy lemezre írták, hogy laphibák miatt szabad helyet szabadítson fel a munkakészletben. A oldalak/másodperc számláló magas értéke túlzott lapozást jelezhet.
memória: Oldalhibák/másodperc Ez a számláló az oldalhibák gyakoriságát jelzi az összes folyamathoz, beleértve a rendszerfolyamatokat is. Az alacsony, de nem nulla arányú lapozás a lemezre (és így az oldalhibákra) jellemző, még akkor is, ha a számítógép rengeteg rendelkezésre álló memóriával rendelkezik. A Microsoft Windows Virtual Memory Manager (VMM) az SQL Server és más folyamatok lapjait veszi át, mivel csökkenti ezeknek a folyamatoknak a munkakészletét. Ez a VMM-tevékenység általában laphibákat okoz.
folyamat: Oldalhibák/másodperc Ez a számláló egy adott felhasználói folyamat oldalhibáinak arányát jelzi. folyamat figyelése: Oldalhibák száma/másodperc annak megállapításához, hogy az SQL Server lapozása okozza-e a lemeztevékenységet. Annak megállapításához, hogy az SQL Server vagy egy másik folyamat okozza-e a túlzott lapozást, figyelje a Folyamat: Oldalhibák/másodperc számlálót az SQL Server-folyamatpéldányhoz.
A túlzott lapozás feloldásáról további információt az operációs rendszer dokumentációjában talál.
Az SQL Server által használt memória elkülönítése
Az SQL Server memóriahasználatának figyeléséhez használja az alábbi SQL Server-objektumokat. Az SQL Server számos objektumszámlálója lekérdezhetők a dinamikus felügyeleti nézetek sys.dm_os_performance_counters vagy sys.dm_os_process_memorysegítségével.
Alapértelmezés szerint az SQL Server a rendelkezésre álló rendszererőforrások alapján dinamikusan kezeli a memóriakövetelményeit. Ha az SQL Servernek több memóriára van szüksége, lekérdezi az operációs rendszert annak megállapításához, hogy szabad-e a fizikai memória, és használja-e a rendelkezésre álló memóriát. Ha az operációs rendszer kevés szabad memóriával rendelkezik, az SQL Server visszaengedi a memóriát az operációs rendszernek, amíg az alacsony memóriafeltételt nem enyhíti, vagy amíg az SQL Server el nem éri a minimális kiszolgálói memóriakorlátot . A memória dinamikus használatának lehetőségét azonban felülbírálhatja a kiszolgálókonfigurációs beállítások, amelyek a minimális (,) és maximális (,) kiszolgálói memóriaértékeket határozzák meg. További információ: kiszolgáló memóriakonfigurációs beállításai.
Az SQL Server által használt memória mennyiségének figyeléséhez vizsgálja meg a következő teljesítményszámlálókat:
SQL Server: Memóriakezelő: Kiszolgáló teljes memóriája (KB) Ez a számláló azt jelzi, hogy az SQL Server memóriakezelője jelenleg mekkora memóriát vállalt le az SQL Server számára. Ez a szám várhatóan a tényleges tevékenységnek megfelelően növekszik, és az SQL Server indítása után nőni fog. Kérdezze le a számlálót a sys.dm_os_sys_info dinamikus felügyeleti nézet segítségével, figyelve a committed_kb oszlopot.
SQL Server: Memóriakezelő: Célkiszolgálói memória (KB) Ez a számláló a legutóbbi számítási feladatok alapján ideális mennyiségű memóriát jelez az SQL Server számára. Hasonlítsa össze kiszolgáló teljes memóriáját egy tipikus művelet után annak megállapításához, hogy az SQL Server rendelkezik-e a kívánt mennyiségű memóriával. Tipikus működés után a összes kiszolgálói memória és a célkiszolgálói memória hasonló kell, hogy legyen. Ha a kiszolgáló teljes memóriája jelentősen alacsonyabb, mint a célkiszolgáló memóriája, előfordulhat, hogy az SQL Server-példány memóriaterhelést tapasztal. Az SQL Server elindítása utáni időszakban kiszolgáló teljes memóriája várhatóan alacsonyabb lesz, mint célkiszolgálói memória, ahogy a kiszolgáló teljes memóriája növekszik. Lekérdezze ezt a számlálót a sys.dm_os_sys_info dinamikus felügyeleti nézet használatával, figyelve a committed_target_kb oszlopot. A memória konfigurálásával kapcsolatos további információkért és ajánlott eljárásokért tekintse meg a kiszolgáló memóriakonfigurációs beállításait.
Folyamat: Munkakészlet Ez a számláló azt a fizikai memóriát jelzi, amelyet egy folyamat jelenleg használ az operációs rendszer szerint. Figyelje meg a számláló sqlservr.exe példányát. A számláló lekérdezéséhez használja a sys.dm_os_process_memory dinamikus felügyeleti nézetet, és figyelje meg a
physical_memory_in_use_kboszlopot.Folyamat: Privát bájtok Ez a számláló azt a memóriamennyiséget jelzi, amelyet egy folyamat saját használatra kért az operációs rendszer számára. Figyelje meg a számláló sqlservr.exe példányát. Mivel ez a számláló a sqlservr.exeáltal kért összes memóriafoglalást tartalmazza, beleértve azokat is, amelyekre nem vonatkozik a kiszolgáló maximális memóriabeállítása (), ez a számláló nagyobb értékeket is mutathat, mint a kiszolgáló maximális memóriabeállítása ().
SQL Server: Pufferkezelő: Adatbázisoldalak Ez a számláló az adatbázis-tartalommal rendelkező pufferkészlet lapjainak számát jelzi. Nem tartalmaz más nem tárolókészlet memóriát az SQL Server-folyamaton belül. A számlálót a sys.dm_os_performance_counters dinamikus felügyeleti nézet segítségével kérdezze le.
SQL Server: Pufferkezelő: Puffergyorsítótár találati aránya Ez a számláló az SQL Serverre jellemző. A 90 vagy magasabb arány kívánatos. A 90-nél nagyobb érték azt jelzi, hogy az adatkérések több mint 90 százaléka a memóriában lévő adatgyorsítótárból lett kielégítve anélkül, hogy lemezről kellett volna olvasnia. További információ az SQL Server Pufferkezelőről: SQL Server, Buffer Manager objektum. A számlálót a sys.dm_os_performance_counters dinamikus felügyeleti nézet segítségével kérdezze le.
SQL Server: Pufferkezelő: A lap várható élettartama Ez a számláló másodpercben méri, hogy a legrégebbi oldal mennyi ideig marad a pufferkészletben. NUMA-architektúrát használó rendszerek esetében ez az összes NUMA-csomópont átlaga. A magasabb, növekvő érték a legjobb. A hirtelen lejtés azt jelzi, hogy a pufferkészletben lévő és kimenő adatok jelentős mértékben eltérnek, ami azt jelzi, hogy a számítási feladat nem tudott teljes mértékben kihasználni a memóriában lévő adatokat. Minden NUMA-csomópontnak saját csomópontja van a pufferkészletben. Egynél több NUMA-csomóponttal rendelkező kiszolgálókon tekintse meg az egyes pufferkészlet-csomópontok várható lapéletidejét SQL Server: Puffercsomópont: A lap várható élettartama. A számlálót a sys.dm_os_performance_counters dinamikus felügyeleti nézet segítségével kérdezze le.
Példák
Az aktuális memóriafoglalás meghatározása
Az alábbi lekérdezések az aktuálisan lefoglalt memóriával kapcsolatos információkat ad vissza.
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;
Az SQL Server aktuális memóriahasználatának meghatározása
Az alábbi lekérdezés adatokat ad vissza az SQL Server aktuális memóriahasználatáról.
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;
Az oldal várható élettartamának meghatározása
A következő lekérdezés sys.dm_os_performance_counters-t használja az SQL Server-példány aktuális lap várható élettartamának értékének megfigyelésére a pufferkezelő összesített szintjén és minden NUMA-csomópont szintjén.
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';
Kapcsolódó tartalom
- Erőforrás-használat monitorozása (Teljesítményfigyelő)
- 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, Memory Manager objektum
- SQL Server, Buffer Manager objektum
- kiszolgáló memóriakonfigurációs beállításai
- memóriakezelési architektúra útmutatója