Intelligens hangolás végrehajtása az Azure Database for PostgreSQL-ben – rugalmas kiszolgáló

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

A rugalmas Azure Database for PostgreSQL-kiszolgáló intelligens hangolási funkcióval rendelkezik, amely a teljesítmény automatikus javítására és a problémák megelőzésére szolgál. Az intelligens hangolás folyamatosan figyeli a rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázis állapotát, és dinamikusan igazítja az adatbázist a számítási feladathoz.

Ez a funkció két automatikus hangolási függvényből áll:

  • Autovacuum-finomhangolás: Ez a függvény nyomon követi a bloatarányt, és ennek megfelelően módosítja az autovacuum beállításait. Az aktuális és az előrejelzett erőforrás-használatot is befolyásolja a számítási feladatok megszakadásának megakadályozása érdekében.
  • Írási finomhangolás: Ez a függvény figyeli az írási műveletek mennyiségét és mintáit, és módosítja az írási teljesítményt befolyásoló paramétereket. Ezek a kiigazítások növelik a rendszer teljesítményét és megbízhatóságát, hogy proaktív módon elhárítsa a lehetséges komplikációkat.

Az intelligens hangolást az Azure Portalon vagy az Azure CLI-vel engedélyezheti.

Miért érdemes intelligens hangolást?

Az autovacuum-folyamat kritikus része egy rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázis állapotának és teljesítményének fenntartásának. Segít visszanyerni a "halott" sorok által elfoglalt tárterületet, felszabadítva a helyet, és zökkenőmentesen működik az adatbázis.

Ugyanilyen fontos az adatbázison belüli írási műveletek hangolása. Ez a feladat általában adatbázis-rendszergazdákra hárul. Az adatbázisok folyamatos monitorozása és az írási műveletek finomhangolása kihívást jelenthet és időigényes lehet. Ez a feladat egyre összetettebbé válik, ha több adatbázissal foglalkozik.

Itt lépnek be az intelligens finomhangolási lépések. Az adatbázis manuális felügyelete és finomhangolása helyett intelligens hangolással automatikusan figyelheti és hangolhatja az adatbázist. Ezután más fontos feladatokra összpontosíthat.

Az intelligens finomhangolás autovacuum hangolási funkciója figyeli a bloatarányt, és szükség szerint módosítja a beállításokat az optimális erőforrás-kihasználtság érdekében. Proaktív módon kezeli az adatbázis "tisztítási" folyamatát, és mérsékli az elavult adatok által okozott teljesítményproblémákat.

Az írási finomhangolási függvény megfigyeli az írási műveletek mennyiségét és tranzakciós mintáit. Intelligensen módosítja az olyan paramétereket, mint bgwriter_delaya , checkpoint_completion_target, max_wal_sizeés min_wal_size. Ezzel javítja a rendszer teljesítményét és megbízhatóságát, még magas írási terhelés esetén is.

Az intelligens hangolás használatakor értékes időt és erőforrásokat takaríthat meg, ha rugalmas Azure Database for PostgreSQL-kiszolgálóra támaszkodik az adatbázisok optimális teljesítményének fenntartása érdekében.

Hogyan működik az intelligens hangolás?

Az intelligens finomhangolás egy folyamatos monitorozási és elemzési folyamat, amely nemcsak a számítási feladat jellemzőivel ismerkedik meg, hanem nyomon követi az aktuális terhelést és erőforrás-használatot is, például a CPU-t vagy az IOPS-t. Ez nem zavarja az alkalmazás számítási feladatainak normál műveleteit.

A folyamat lehetővé teszi, hogy az adatbázis dinamikusan alkalmazkodjon a számítási feladathoz az aktuális bloatarány, az írási teljesítmény és az ellenőrzőpont hatékonysága alapján a példányon. Ezekkel az elemzésekkel az intelligens finomhangolás olyan hangolási műveleteket helyez üzembe, amelyek javítják a számítási feladatok teljesítményét, és elkerülik a lehetséges buktatókat.

Autovacuum finomhangolása

Az intelligens finomhangolás öt, az autovakuumhoz kapcsolódó paramétert módosít: autovacuum_vacuum_scale_factor, autovacuum_cost_limit, autovacuum_naptime, autovacuum_vacuum_thresholdés autovacuum_vacuum_cost_delay. Ezek a paraméterek szabályozzák az összetevőket, például:

  • A folyamatokat meghatározó VACUUM tábla törtrésze.
  • A költségalapú vákuum késleltetési korlátja.
  • Az autovacuum-futtatások közötti szünet időköze.
  • A folyamat elindításához VACUUM szükséges frissített vagy elhalt kukák minimális száma.
  • A törlési körök közötti szünet időtartama.

Fontos

Az intelligens hangolás a kiszolgáló szintjén módosítja az autovacuumhoz kapcsolódó paramétereket, nem pedig az egyes táblák szintjén. Ha az autovacuum ki van kapcsolva, az intelligens hangolás nem működik megfelelően. A folyamat optimalizálásához szükséges intelligens hangoláshoz engedélyezni kell az autovacuum funkciót.

Bár az autovacuum démon két műveletet indít el (VACUUM és ANALYZE), az intelligens finomhangolás csak a VACUUM folyamatot. Ez a funkció jelenleg nem módosítja a ANALYZE folyamatot, amely a táblatartalom statisztikáit gyűjti össze, hogy segítse a rugalmas Azure Database for PostgreSQL-kiszolgálói lekérdezéstervezőt a legmegfelelőbb lekérdezés-végrehajtási terv kiválasztásában.

Az intelligens hangolás védelmet nyújt az erőforrás-kihasználtság, például a CPU és az IOPS méréséhez. Nem növeli az autovacuum-aktivitást, ha a példány nagy terhelés alatt áll. Így az intelligens hangolás biztosítja az egyensúlyt a hatékony tisztítási műveletek és a rendszer általános teljesítménye között.

Amikor az intelligens hangolás optimalizálja az autovacuumot, a kiszolgáló átlagos bloatját veszi figyelembe az élő és a halott kukákra vonatkozó statisztikák használatával. A blob csökkentése érdekében az intelligens hangolás csökkentheti az olyan paramétereket, mint a méretezési tényező vagy a napidő. Ez hamarabb aktiválhatja a VACUUM folyamatot, és szükség esetén csökkentheti a körök közötti késést.

Másrészt, ha a bloat minimális, és az autovacuum-folyamat túl agresszív, az intelligens hangolás növelheti a paramétereket, például a késleltetést, a méretezési tényezőt és a napidőt. Ez az egyensúly minimalizálja a bloatot, és segít biztosítani, hogy az autovacuum-folyamat hatékonyan használja az erőforrásokat.

Írás finomhangolása

Az intelligens finomhangolás négy, az írási finomhangoláshoz kapcsolódó paramétert módosít: bgwriter_delay, checkpoint_completion_target, max_wal_sizeés min_wal_size.

A bgwriter_delay paraméter határozza meg, hogy a háttéríró folyamat milyen gyakorisággal legyen felébresztve a "piszkos" pufferek (új vagy módosított pufferek) tisztítására. A háttérírói folyamat az Írási műveleteket kezelő rugalmas Azure Database for PostgreSQL-kiszolgálón található három folyamat egyike. A másik az ellenőrzőpont-folyamat és a háttérbeli írás (standard ügyfélfolyamatok, például alkalmazáskapcsolatok).

A háttérírói folyamat elsődleges szerepe az, hogy enyhítse a fő ellenőrzőpont-folyamat terhelését, és csökkentse a háttérbeli írások terhelését. A bgwriter_delay paraméter szabályozza a háttéríró kerekítéseinek gyakoriságát. A paraméter módosításával optimalizálhatja az adatmanipulációs nyelv (DML) lekérdezéseinek teljesítményét is.

A checkpoint_completion_target paraméter része a rugalmas Azure Database for PostgreSQL-kiszolgáló által támogatott második írási mechanizmusnak, különösen a checkpointer-folyamatnak. Az ellenőrzőpontok a megadott állandó időközönként checkpoint_timeout fordulnak elő (kivéve, ha a konfigurált terület túllépésével kényszerítik). Az I/O-rendszer túlterhelésének elkerülése érdekében az oldalírások megugrása esetén a rendszer egy ellenőrzőpont alatt piszkos puffereket ír. A checkpoint_completion_target paraméter ezt az időtartamot checkpoint_timeout úgy vezérli, hogy az időtartamot az ellenőrzőpont-intervallum töredékében adja meg.

Az alapértelmezett érték checkpoint_completion_target 0,9 (a PostgreSQL 14 óta). Ez az érték általában a legjobban működik, mivel az I/O-terhelést a maximális időtartamra osztva szórja. Ritka esetekben előfordulhat, hogy az ellenőrzőpontok nem fejeződnek be időben, mert váratlanul ingadozik a szükséges előreírási naplózási (WAL) szegmensek száma. A teljesítményre gyakorolt lehetséges hatás az oka annak, hogy checkpoint_completion_target az intelligens finomhangolás célmetrikája.

Korlátozások és ismert problémák

  • Az intelligens hangolás csak bizonyos tartományokban teszi lehetővé az optimalizálásokat. Lehetséges, hogy a funkció nem módosítja a funkciót.
  • Az intelligens hangolás nem módosítja a ANALYZE beállításokat.
  • Az Autovacuum finomhangolása jelenleg az általános célú és memóriaoptimalizált kiszolgáló számítási szintjeihez támogatott, amelyek négy vagy több virtuális maggal rendelkeznek. A kipukkasztható kiszolgáló számítási szintje nem támogatott.

Következő lépések