Share via


Kiszolgálóparaméterek az Azure Database for PostgreSQL-ben – rugalmas kiszolgáló

A következőkre vonatkozik: Azure Database for PostgreSQL – Rugalmas kiszolgáló

Az Azure Database for PostgreSQL az egyes kiszolgálók konfigurálható paramétereinek egy részét biztosítja. A Postgres-paraméterekkel kapcsolatos további információkért tekintse meg a PostgreSQL dokumentációját.

Paramétertípusok

Azure Database for PostgreSQL – A rugalmas kiszolgáló előre konfigurálva van az egyes paraméterek optimális alapértelmezett beállításaival. A paraméterek a következő típusok egyikébe vannak kategorizálva:

  • Statikus: Ezek a paraméterek a módosítások implementálásához a kiszolgáló újraindítását igénylik.
  • Dinamikus: Ezek a paraméterek a kiszolgálópéldány újraindítása nélkül módosíthatók. A módosítások azonban csak a módosítás után létrehozott új kapcsolatokra vonatkoznak.
  • Írásvédett: Ezek a paraméterek nem konfigurálhatók a felhasználók számára, mert kritikus szerepet játszanak a szolgáltatás megbízhatóságának, biztonságának vagy egyéb működési szempontjainak fenntartásában.

A paraméter típusának meghatározásához nyissa meg az Azure Portalt, és nyissa meg a Kiszolgáló paraméterei panelt . A paraméterek lapfülekbe vannak csoportosítva az egyszerű azonosítás érdekében.

Paraméter testreszabása

Különböző módszerek és szintek állnak rendelkezésre a paraméterek testreszabásához az ön igényeinek megfelelően.

Globális szint

Ha globálisan szeretné módosítani a beállításokat a példány vagy a kiszolgáló szintjén, lépjen az Azure Portal Kiszolgálóparaméterek paneljére. Más elérhető eszközöket is használhat, például az Azure CLI-t, a REST API-t, az Azure Resource Manager-sablonokat vagy a partnereszközöket.

Feljegyzés

Mivel az Azure Database for PostgreSQL egy felügyelt adatbázis-szolgáltatás, a felhasználók nem rendelkeznek gazdagép- vagy operációsrendszer-hozzáféréssel olyan konfigurációs fájlok megtekintéséhez vagy módosításához, mint a postgresql.conf. A fájlok tartalma automatikusan frissül a megadott paramétermódosítások alapján.

Képernyőkép az Azure Portal kiszolgálóparamétereinek paneljéről.

Részletes szintek

A paramétereket részletesebb szinteken módosíthatja. Ezek a módosítások felülbírálják a globálisan beállított értékeket. Hatókörük és időtartamuk attól függ, hogy milyen szinten készíti őket:

  • Adatbázisszint: Használja a ALTER DATABASE parancsot az adatbázis-specifikus konfigurációkhoz.

  • Szerepkör vagy felhasználói szint: A felhasználóközpontú beállításokhoz használja a ALTER USER parancsot.

  • Függvény, eljárásszint: Ha függvényt vagy eljárást határoz meg, megadhatja vagy módosíthatja a függvény meghívásakor beállítandó konfigurációs paramétereket.

  • Táblázatszint: Például ezen a szinten módosíthatja az autovacuumhoz kapcsolódó paramétereket.

  • Munkamenet-szint: Az egyes adatbázis-munkamenetek időtartamára módosíthatja az egyes paramétereket. A PostgreSQL a következő SQL-parancsokkal teszi lehetővé a módosítást:

    • SET A parancs használatával munkamenet-specifikus módosításokat hajthat végre. Ezek a módosítások szolgálnak az alapértelmezett beállításokként az aktuális munkamenet során. A módosításokhoz való hozzáféréshez bizonyos SET jogosultságok szükségesek, és a korábban ismertetett módosítható és írásvédett paraméterekre vonatkozó korlátozások nem érvényesek. A megfelelő SQL-függvény a .set_config(setting_name, new_value, is_local)
    • A parancs használatával vizsgálja meg a SHOW meglévő paraméterbeállításokat. Sql-függvényének megfelelője a current_setting(setting_name text).

Fontos paraméterek

A következő szakaszok néhány paramétert ismertetnek.

shared_buffers

Attribútum Érték
Alapértelmezett érték A teljes RAM 25%-a
Engedélyezett érték A teljes RAM 10-75%-a
Típus Statikus
Level Globális
Azure-specifikus megjegyzések A shared_buffers beállítás (nagyjából) lineárisan skálázható, ahogy a virtuális magok száma növekszik egy adott szinten.

Leírás

A shared_buffers konfigurációs paraméter határozza meg a PostgreSQL-adatbázis számára az adatok puffereléséhez lefoglalt rendszermemória mennyiségét. Központi memóriakészletként szolgál, amely minden adatbázis-folyamat számára elérhető.

Amikor adatokra van szükség, az adatbázis-folyamat először ellenőrzi a megosztott puffert. Ha a szükséges adatok megtalálhatók, a rendszer gyorsan lekéri őket, és egy időigényesebb lemezolvasást ad át. Azáltal, hogy közvetítőként szolgál az adatbázis-folyamatok és a lemez között, shared_buffers hatékonyan csökkenti a szükséges I/O-műveletek számát.

huge_pages

Attribútum Érték
Alapértelmezett érték TRY
Engedélyezett érték TRY, , ONOFF
Típus Statikus
Level Globális
Azure-specifikus megjegyzések A négy vagy több virtuális maggal rendelkező kiszolgálók esetében a rendszer automatikusan lefoglalja a hatalmas lapokat az alapul szolgáló operációs rendszerből. A szolgáltatás nem érhető el négynél kevesebb virtuális maggal rendelkező kiszolgálók esetében. A hatalmas lapok száma automatikusan módosul, ha a megosztott memória beállításai módosulnak, beleértve a shared_buffersmódosításokat is.

Leírás

A hatalmas lapok olyan funkciók, amelyek lehetővé teszik a memória nagyobb blokkokban való kezelését. A szabványos 4 KB-os oldalak helyett általában legfeljebb 2 MB méretű blokkokat kezelhet.

A hatalmas oldalak használata olyan teljesítménybeli előnyöket kínálhat, amelyek hatékonyan ki tudják kapcsolni a processzort:

  • Csökkentik a memóriakezelési feladatokhoz, például kevesebb fordítási lookaside pufferhez (TLB) kapcsolódó többletterhelést.
  • Lerövidítik a memóriakezeléshez szükséges időt.

A PostgreSQL-ben a hatalmas oldalakat csak a megosztott memóriaterületen használhatja. A megosztott memóriaterület jelentős része megosztott pufferekhez van lefoglalva.

Egy másik előnye, hogy a hatalmas oldalak megakadályozzák a megosztott memóriaterület lemezre való felcserélését, ami tovább stabilizálja a teljesítményt.

Ajánlások

  • A jelentős memóriaerőforrásokkal rendelkező kiszolgálók esetében kerülje a hatalmas lapok letiltását. A hatalmas lapok letiltása ronthatja a teljesítményt.
  • Ha egy kisebb kiszolgálóval kezd, amely nem támogatja a hatalmas oldalakat, de várhatóan felskáláz egy olyan kiszolgálóra, amely igen, tartsa a beállítást TRY a zökkenőmentes átmenet és az huge_pages optimális teljesítmény érdekében.

work_mem

Attribútum Érték
Alapértelmezett érték 4MB
Engedélyezett érték 4MB-2GB
Típus Dinamikus
Level Globális és részletes

Leírás

A work_mem PostgreSQL paramétere szabályozza az egyes belső műveletekhez lefoglalt memória mennyiségét az egyes adatbázis-munkamenetek magánmemóriája területén. Ilyen műveletek például a rendezés és a kivonatolás.

A megosztott memóriaterületen work_mem található megosztott pufferekkel ellentétben a rendszer munkamenetenkénti vagy lekérdezésenkénti magánmemóriában van lefoglalva. A megfelelő work_mem méret beállításával jelentősen javíthatja ezeknek a műveleteknek a hatékonyságát, és csökkentheti az ideiglenes adatok lemezre írásának szükségességét.

Kulcsfontosságú pontok

  • Privát kapcsolati memória: work_mem az egyes adatbázis-munkamenetek által használt magánmemória része. Ez a memória különbözik a használt megosztott memóriaterülettől shared_buffers .
  • Lekérdezésspecifikus használat: Nem minden munkamenetet vagy lekérdezést használ work_mem. Az egyszerű lekérdezésekhez hasonlóan SELECT 1 nem valószínű, hogy szükség van gombra work_mem. Az összetett lekérdezések azonban, amelyek olyan műveleteket foglalnak magukban, mint a rendezés vagy a kivonatolás, egy vagy több adattömbet használhatnak work_memfel.
  • Párhuzamos műveletek: Több párhuzamos háttérrendszerre kiterjedő lekérdezések esetén minden háttérrendszer egy vagy több adattömbet work_memhasználhat.

Monitorozás és work_mem módosítása

Elengedhetetlen a rendszer teljesítményének folyamatos monitorozása és szükség szerinti módosítása work_mem , elsősorban akkor, ha a rendezési vagy kivonatolási műveletekhez kapcsolódó lekérdezés-végrehajtási idő lassú. A teljesítmény monitorozásának módjai az Azure Portalon elérhető eszközökkel:

  • Lekérdezési teljesítményelemzés: Az ideiglenes fájlokat létrehozó lekérdezések azonosításához tekintse meg a leggyakoribb lekérdezéseket ideiglenes fájlok lapján. Ez a helyzet arra utal , hogy növelni kell a növekedést work_mem.
  • Hibaelhárítási útmutatók: A hibaelhárítási útmutatók Magas ideiglenes fájlok lapján azonosíthatja a problémás lekérdezéseket.
Részletes beállítás

A paraméter kezelése work_mem során gyakran hatékonyabb egy részletes beállítási módszer alkalmazása a globális érték beállítása helyett. Ez a megközelítés biztosítja, hogy a memóriát pontosan a folyamatok és a felhasználók konkrét igényei alapján foglalja le. Emellett minimálisra csökkenti a memóriakihasználtságból származó problémák kockázatát. Az alábbiak szerint végezheti el a következő lépéseket:

  • Felhasználói szint: Ha egy adott felhasználó elsősorban aggregációs vagy jelentéskészítési feladatokban vesz részt, amelyek memóriaigényesek, fontolja meg az adott felhasználó értékének work_mem testreszabását. ALTER ROLE A parancs használatával javíthatja a felhasználó műveleteinek teljesítményét.

  • Függvény-/eljárásszint: Ha bizonyos függvények vagy eljárások jelentős ideiglenes fájlokat hoznak létre, előnyös lehet az work_mem érték növelése az adott függvény vagy eljárás szintjén. ALTER FUNCTION A parancs használatával ALTER PROCEDURE pontosabban lefoglalhat több memóriát ezekhez a műveletekhez.

  • Adatbázisszint: Ha work_mem csak bizonyos adatbázisok hoznak létre nagy mennyiségű ideiglenes fájlt, módosítsa az adatbázis szintjén.

  • Globális szint: Ha a rendszer elemzése azt mutatja, hogy a lekérdezések többsége kis ideiglenes fájlokat hoz létre, míg csak kevesen hoznak létre nagy fájlokat, érdemes lehet globálisan növelni az work_mem értéket. Ez a művelet megkönnyíti a legtöbb lekérdezés feldolgozását a memóriában, így elkerülheti a lemezalapú műveleteket, és javíthatja a hatékonyságot. Azonban mindig legyen óvatos, és figyelje a kiszolgáló memóriakihasználtságát, hogy képes legyen kezelni a megnövekedett work_mem értéket.

A rendezési műveletek minimális work_mem értékének meghatározása

Ha meg szeretné keresni egy adott lekérdezés minimális work_mem értékét, különösen azt, amely ideiglenes lemezfájlokat hoz létre a rendezési folyamat során, először a lekérdezés végrehajtása során létrehozott ideiglenes fájlméretet kell figyelembe vennie. Ha például egy lekérdezés 20 MB-os ideiglenes fájlt hoz létre:

  1. Csatlakozás az adatbázisba a psql vagy az előnyben részesített PostgreSQL-ügyfél használatával.
  2. Állítson be egy 20 MB-nál valamivel nagyobb kezdeti work_mem értéket a további fejlécek számba vételéhez a memóriában történő feldolgozáskor. Használjon egy parancsot, például: SET work_mem TO '25MB'.
  3. Futtassa EXPLAIN ANALYZE a problémás lekérdezést ugyanabban a munkamenetben.
  4. Tekintse át a kimenetet a következőhöz "Sort Method: quicksort Memory: xkB": . Ha jelzi, növelje az work_mem értéket növekményesen"external merge Disk: xkB", és tesztelje újra, amíg meg nem "quicksort Memory" jelenik. A lekérdezés memóriában való működését jelző jelek megjelenése "quicksort Memory" .
  5. Miután meghatározta az értéket ezzel a módszerrel, globálisan vagy részletesebb szinteken (a korábban leírtak szerint) alkalmazhatja a működési igényeinek megfelelően.

maintenance_work_mem

Attribútum Érték
Alapértelmezett érték A kiszolgálómemória függvényében
Engedélyezett érték 1MB-2GB
Típus Dinamikus
Level Globális és részletes

Leírás

maintenance_work_mem egy konfigurációs paraméter a PostgreSQL-ben. Ez szabályozza a karbantartási műveletekhez lefoglalt memória mennyiségét, például VACUUM: , CREATE INDEXés ALTER TABLE. Ellentétben work_mema lekérdezési műveletek memóriafoglalásával, maintenance_work_mem az adatbázis struktúráját karbantartó és optimalizáló feladatokhoz van fenntartva.

Kulcsfontosságú pontok

  • Vákuum memóriasapka: Ha növelni maintenance_work_memszeretné az elhalt kukák eltávolítását, vegye figyelembe, hogy VACUUM az elhalt tuple-azonosítók gyűjtésére beépített korlátozás vonatkozik. Ehhez a folyamathoz legfeljebb 1 GB memóriát használhat.
  • A memória elkülönítése az autovacuumhoz: A beállítással autovacuum_work_mem szabályozhatja a memóriát, amelyet az autovacuum-műveletek egymástól függetlenül használnak. Ez a beállítás maintenance_work_mema . Eldöntheti, hogy az autovacuum mennyi memóriát használ anélkül, hogy befolyásolná az egyéb karbantartási feladatok és adatdefiníciós műveletek memóriafoglalását.

Következő lépések

A támogatott PostgreSQL-bővítményekről további információt az Azure Database for PostgreSQL rugalmas kiszolgáló PostgreSQL-bővítményeiben talál.