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.
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 bizonyosSET
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 acurrent_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 , , ON OFF |
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_buffers mó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 azhuge_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őlshared_buffers
. - Lekérdezésspecifikus használat: Nem minden munkamenetet vagy lekérdezést használ
work_mem
. Az egyszerű lekérdezésekhez hasonlóanSELECT 1
nem valószínű, hogy szükség van gombrawork_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álhatnakwork_mem
fel. - 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_mem
haszná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ávalALTER 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övekedettwork_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:
- Csatlakozás az adatbázisba a psql vagy az előnyben részesített PostgreSQL-ügyfél használatával.
- Á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'
. - Futtassa
EXPLAIN ANALYZE
a problémás lekérdezést ugyanabban a munkamenetben. - Tekintse át a kimenetet a következőhöz
"Sort Method: quicksort Memory: xkB"
: . Ha jelzi, növelje azwork_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"
. - 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_mem
a 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_mem
szeretné az elhalt kukák eltávolítását, vegye figyelembe, hogyVACUUM
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ásmaintenance_work_mem
a . 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.