Megosztás a következőn keresztül:


Pufferkészlet-bővítmény

A következőkre vonatkozik:SQL Server

Az SQL Server 2014 -ben (12.x) bevezetett pufferkészletbővítmény zökkenőmentes integrációt biztosít egy nemvolatilis véletlenszerű hozzáférési memória (azaz szilárdtest-meghajtó) bővítményének az adatbázismotor pufferkészletéhez az I/O-átviteli sebesség jelentős javítása érdekében. A pufferkészlet bővítmény nem érhető el minden SQL Server-kiadásban. További információkért lásd az SQL Server 2022kiadásait és támogatott funkcióit.

A pufferkészlet bővítmény előnyei

Az SQL Server-adatbázisok elsődleges célja az adatok tárolása és lekérése, így az intenzív lemez I/O az adatbázismotor alapvető jellemzője. Mivel a lemez I/O-műveletei sok erőforrást használhatnak fel, és viszonylag hosszú időt is igénybe vehetnek, az SQL Server az I/O rendkívül hatékonyvá tételére összpontosít. A pufferkészlet az SQL Server elsődleges memóriafoglalási forrása. A pufferkezelés kulcsfontosságú eleme ennek a hatékonyságnak. A pufferkezelési összetevő két mechanizmusból áll: az adatbázislapok eléréséhez és frissítéséhez használt pufferkezelőből, valamint a pufferkészletből az adatbázisfájl I/O-jának csökkentése érdekében.

Az adat- és indexlapok a lemezről a pufferkészletbe kerülnek, a módosított lapokat (más néven piszkos lapokat) pedig visszaírják a lemezre. A kiszolgáló és az adatbázis ellenőrzőpontjaira nehezedő memóriaterhelés miatt a puffergyorsítótár gyakori (aktív) piszkos lapjait ki kell üríteni a gyorsítótárból, és mechanikus lemezekre kell írni, majd visszaolvasni a gyorsítótárba. Ezek az I/O-műveletek általában kis véletlenszerű olvasások és írások 4 KB és 16 KB adat sorrendjében. A kis véletlenszerű I/O mintázatok gyakori kereséseket igényelnek, versenyeznek a mechanikus lemezkar számára, növelik az I/O késleltetést, és csökkentik a rendszer összesített I/O-átviteli sebességét.

Az I/O-szűk keresztmetszetek megoldásának tipikus módszere, ha több DRAM-ot ad hozzá, vagy másik lehetőségként nagy teljesítményű SAS-orsót ad hozzá. Bár ezek a lehetőségek hasznosak, jelentős hátrányaik vannak: a DRAM drágább, mint az adattároló meghajtók, és az orsók hozzáadása növeli a hardver beszerzésének tőkeköltségét, és növeli az üzemeltetési költségeket a megnövekedett energiafogyasztással és az összetevők meghibásodásának megnövekedett valószínűségével.

A pufferkészlet-bővítmény funkció kibővíti a pufferkészlet gyorsítótárát nemvolatilis tárolóval (általában SSD). A bővítmény miatt a pufferkészlet egy nagyobb adatbázis-munkakészletet képes befogadni, ami kényszeríti az I/Os lapozását a RAM és az SSD-k között. Ez hatékonyan áthelyezi a kis véletlenszerű I/O műveleteket a mechanikus lemezekről az SSD-kre. Az SSD-k kisebb késése és véletlenszerű I/O-teljesítménye miatt a pufferkészlet-bővítmény jelentősen javítja az I/O átviteli sebességét.

Az alábbi lista a pufferkészlet bővítményének előnyeit ismerteti.

  • Nagyobb véletlenszerű I/O-átviteli sebesség

  • Csökkentett I/O-késés

  • Tranzakció átviteli sebességének növelése

  • Jobb olvasási teljesítmény nagyobb hibrid pufferkészlettel

  • Gyorsítótárazási architektúra, amely kihasználhatja a jelenlegi és jövőbeli alacsony költségű memóriameghajtókat

Fogalmak

A pufferkészlet bővítmény funkcióra az alábbi feltételek vonatkoznak.

Kifejezés Leírás
SSD (szilárdtest-meghajtó) A solid-state meghajtók állandó módon tárolják az adatokat a memóriában (RAM). További információért lásd: a Wikipedia meghatározása.
puffer Az SQL Serverben a puffer egy 8 KB-os memóriaoldal, amely megegyezik egy adat- vagy indexlap méretével. Így a puffermemória gyorsítótára 8 KB-os oldalakra van felosztva. A lap a puffergyorsítótárban marad, amíg a pufferkezelőnek szüksége van a pufferterületre, hogy további adatokat olvasson be. Az adatok csak akkor lesznek visszaírva a lemezre, ha módosultak. Ezeket a memóriabeli módosított lapokat piszkos lapoknak nevezzük. A lap tiszta, ha az egyenértékű a lemezen lévő adatbázis-lemezképével. A puffergyorsítótárban lévő adatok többször módosíthatók, mielőtt visszaírták őket a lemezre.
Pufferkészlet Másik nevén puffergyorsítótár. A pufferkészlet egy globális erőforrás, amelyet az összes adatbázis megoszt a gyorsítótárba helyezett adatlapok számára. A puffertár maximális és minimális méretét az indításkor határozzák meg, vagy amikor az SQL Server példányát dinamikusan újrakonfigurálják sp_configure. Ez a méret határozza meg a pufferkészletben a futó példányban bármikor gyorsítótárazható lapok maximális számát.

A pufferkészletbővítménnyel lekötött memória maximális méretét a gépen futó többi alkalmazás korlátozhatja, ha ezek az alkalmazások jelentős memóriaterhelést okoznak.
Ellenőrzőpont Az ellenőrzőpontok létrehoznak egy ismert hasznos pontot, amelyből az adatbázismotor megkezdheti a tranzakciónaplóban található módosítások alkalmazását a helyreállítás során egy váratlan leállítás vagy összeomlás után. Egy ellenőrzőpont megírja a piszkos oldalakat és a tranzakciónapló adatait a memóriából a lemezre, és rögzíti a tranzakciónapló adatait is. További információ: Adatbázis-ellenőrzőpontok (SQL Server).

Részletek

Az SSD-tárolót a rendszer a memóriaalrendszer bővítményeként használja a lemeztároló-alrendszer helyett. Ez azt jelenti, hogy a pufferkészlet-bővítményfájl lehetővé teszi a pufferkészlet-kezelő számára, hogy a DRAM és a NAND-Flash memória használatával sokkal nagyobb pufferkészletet tartson fenn az SSD-k által támogatott, nem felejtő véletlen hozzáférésű memóriában tárolt, közepes aktivitású oldalakból. Ez létrehoz egy többszintű gyorsítótárazási hierarchiát, melynek első szintje (L1) a DRAM, míg a második szint (L2) az SSD-n található pufferkészlet-bővítményfájl. A rendszer csak tiszta oldalakat ír az L2-gyorsítótárba, ami segít az adatok biztonságának fenntartásában. A pufferkezelő kezeli a tiszta lapok L1 és L2 gyorsítótárak közötti mozgását.

Az alábbi ábra magas szintű architekturális áttekintést nyújt a pufferkészletről más SQL Server-összetevőkhöz képest.

SSD pufferkészlet bővítményarchitektúrájának diagramja.

Ha engedélyezve van, a pufferkészlet bővítménye megadja a pufferkészlet gyorsítótárazási fájljának méretét és elérési útját az SSD-n. Ez a fájl az SSD egybefüggő tárhelye, és statikusan van konfigurálva az SQL Server-példány indításakor. A fájlkonfigurációs paraméterek módosítása csak akkor végezhető el, ha a pufferkészlet bővítményfunkciója le van tiltva. Ha a pufferkészlet-bővítmény le van tiltva, az összes kapcsolódó konfigurációs beállítás el lesz távolítva a beállításjegyzékből. A pufferkészlet bővítményfájlja az SQL Server-példány leállításakor törlődik.

Kapacitáskorlátozások

Az SQL Server Enterprise kiadás lehetővé teszi a pufferkészlet bővítményének maximális méretét, amely a max server memory (MB)értékének 32-szerese.

Az SQL Server Standard kiadás lehetővé teszi a pufferkészlet bővítményének maximális méretét, amely a max server memory (MB)értékének négyszerese.

Ajánlott eljárások

Javasoljuk, hogy kövesse ezeket az ajánlott eljárásokat.

  • Miután első alkalommal engedélyezte a pufferkészlet-bővítményt, újra kell indítania az SQL Server-példányt a maximális teljesítménybeli előnyök eléréséhez.

  • Állítsa be a pufferkészlet-bővítményt úgy, hogy a fizikai memória mérete (max server memory (MB)) és a pufferkészlet 1:16-os vagy kisebb mérete közötti arány legyen. Az 1:4 és 1:8 közötti alacsonyabb arány optimális lehet. A max server memory (MB) beállításával kapcsolatos információkért lásd kiszolgáló memóriakonfigurációs beállításait.

  • Mielőtt éles környezetben implementálja, alaposan tesztelje a puffertár bővítményt. Miután éles környezetben van, kerüljük a fájl konfigurációjának módosítását vagy a funkció kikapcsolását. Ezek a tevékenységek negatív hatással lehetnek a kiszolgáló teljesítményére, mivel a pufferkészlet jelentősen csökken, ha a szolgáltatás le van tiltva. Ha le van tiltva, a funkció támogatásához használt memória nem lesz visszanyerve, amíg az SQL Server-példány újra nem indul. Ha azonban a funkció újra engedélyezve van, a memória újra felhasználható a példány újraindítása nélkül.

A pufferkészlet bővítményével kapcsolatos információk visszaadása

A következő dinamikus felügyeleti nézetekkel megjelenítheti a pufferkészlet-bővítmény konfigurációját, és adatokat adhat vissza a bővítmény adatlapjairól.

A teljesítményszámlálók az SQL Server, Buffer Manager objektumban érhetők el a pufferkészlet-bővítményfájl adatoldalainak nyomon követéséhez. További információért lásd a pufferkészlet-bővítmény teljesítményszámlálóit.

A következő XEvents elérhető.

XEvent Leírás Paraméterek
sqlserver.
buffer_pool_extension_pages_written
Akkor lép működésbe, amikor a rendszer kiürít egy lapot vagy lapcsoportot a tárolókészletből, és a tárolókészlet kiterjesztési fájlba írja. number_page
first_page_id
first_page_offset
initiator_numa_node_id
sqlserver.
buffer_pool_extension_pages_read
Akkor aktiválódik, ha egy lap beolvasásra kerül a bővítmény fájlból a pufferkészletbe. number_page
first_page_id
first_page_offset
initiator_numa_node_id
sqlserver.
buffer_pool_extension_pages_evicted
Akkor aktiválódik, amikor egy lap eltávolításra kerül a pufferkészlet kiterjesztési fájljából. number_page
first_page_id
first_page_offset
initiator_numa_node_id
sqlserver.
buffer_pool_eviction_thresholds_recalculated
A kiürítési küszöbérték kiszámításakor aktiválódik. warm_threshold
cold_threshold
pages_bypassed_eviction
eviction_bypass_reason
eviction_bypass_reason_description
Tevékenység leírása Cikk
Engedélyezze és konfigurálja a pufferkészlet bővítményt. ALTER SERVER CONFIGURATION (Szerver konfiguráció módosítása)
A pufferkészlet bővítménykonfigurációjának módosítása ALTER SERVER CONFIGURATION (Szerver konfiguráció módosítása)
A pufferkészlet bővítménykonfigurációjának megtekintése sys.dm_os_buffer_pool_extension_configuration
A pufferkészlet bővítményének figyelése sys.dm_os_buffer_descriptors

SQL Server, Buffer Manager objektum