PostgreSQL

Hogyan lehet megölni a tétlen kapcsolatokat a PostgreSQL-ben

Hogyan lehet megölni a tétlen kapcsolatokat a PostgreSQL-ben

A módosítások vagy a PostgreSQL adatbázisból származó információk kiolvasásának első lépése a kapcsolatok létrehozása. Másrészről, mindegyik kapcsolat az eljárás és a tárolás felhasználásával generált rezsit. Éppen ezért egy minimális erőforrásokkal (olvasás, tárolás, hardver) rendelkező eszköz támogatja a kapcsolatok korlátozott összesítését. Miután a korlátozott aggregátum messze túlmutatott egy ponton, folytatnia kell a hibák elvetését vagy a kapcsolatok megtagadását. A PostgreSQL-en belül.conf, a PostgreSQL tisztességes munkát végez a linkek korlátozásában. Ebben az oktatóanyagban megvizsgáljuk a PostgreSQL linkek különböző állapotformáit. Megmutatjuk, hogyan lehet meghatározni, hogy a link aktív vagy hosszú ideig inaktív volt-e, ebben az esetben leválasztható a linkek és az erőforrások felszabadítása érdekében.

Csatlakozás a szerverhez:

Először ellenőrizze, hogy a pgAdmin4 teljesen működőképes-e a számítógépen. Nyissa meg az alkalmazásaiból. Jelszó megadásával össze kell kapcsolnia a localhosttal.

A root localhost kapcsolata után csatlakoztassa a PostgreSQL szerverhez. Írja be a jelszót a PostgreSQL 13 felhasználó 'Postgres csatlakozásához. A folytatáshoz érintse meg az OK gombot.

Most csatlakozott a PostgreSQL 13 szerverhez. Megtekintheti a kiszolgálón található adatbázisok listáját, amint az az alább mellékelt képen látható. A Postgres adatbázisa az alapértelmezett adatbázis, amelyet a PostgreSQL telepítésekor hoztak létre, míg a „teszt” adatbázist egy felhasználó hozta létre a telepítés után.

Csatlakozási állapotok:

Ha létrejön egy PostgreSQL kapcsolat, az különféle műveleteket hajthat végre, amelyek állapotátmeneteket eredményeznek. Racionális döntést kell hozni arról, hogy a kapcsolat működik-e, vagy tétlen / kihagyatlan állapotban van-e, az állapottól és az egyes államok időtartamától függően. Fontos megjegyezni, hogy amíg az alkalmazás szándékosan nem zárja le a kapcsolatot, addig továbbra is működik, erőforrásokat pazarolva még az ügyfél leválasztása után. A kapcsolatnak 4 lehetséges állapota van:

Azonosítsa a csatlakozási állapotokat:

A PostgreSQL katalógustáblák beépített nézetet nyújtanak a „pg_stat_activity” nézetben, hogy ellenőrizzék a statisztikákat arról, hogy egy link mit csinál, vagy mennyi idő telt el ebben az állapotban. Minden adatbázisra és minden csatlakozási állapotra vonatkozó statisztikák ellenőrzéséhez nyissa meg a lekérdező eszközt, és hajtsa végre az alábbi lekérdezést:

>> SELECT * FROM pg_stat_activity;

A lekérdezés eredményesen valósult meg, és a teljesítési jegyzet megjelent.

Az adatkimeneti oldal ellenőrzésekor talál egy táblázatot, amely több oszlopot tartalmaz, az alábbiak szerint. Ellenőrizheti a kapcsolatok állapotát az 'state' mező értékeinek ellenőrzésével.

A kimenet leegyszerűsítése és a kapcsolatok, állapotuk, felhasználók és kiszolgálóik áttekintése érdekében az alábbi módosított lekérdezést kell végrehajtani a lekérdező eszközben. Ez a lekérdezés csak a kapcsolatok rekordjainak 5 mezejét és a velük kapcsolatos konkrét adatokat jeleníti meg. A 'pid' oszlop a folyamatazonosítót jelenti. Az 'állapot' oszlop a folyamatok állapotát tartalmazza. A „felhasználónév” oszlop azonosítja azt a felhasználót, aki az adott folyamaton dolgozik. A „datname” oszlop meghatározza az adatbázis nevét, amelyen a tranzakció végrehajtásra került. A 'datid' oszlop az adatbázis-azonosítót jelenti.

>> SELECT pid, state, usename datname, datid, from pg_stat_activity;

A kimenet összesen 8 folyamatot rögzít. Az „állapot” oszlop azt mutatja, hogy jelenleg csak 3 folyamat működik. Az egyiket a Postgres alapértelmezett adatbázis, a másik kettőt az adatbázis 'teszt' tárolja. Ugyanakkor a 'Postgres felhasználó elvégezte ezeket a folyamatokat.

Határozza meg a tétlen kapcsolatokat:

Úgy tűnik, hogy az „állapot” az egyetlen érték, amelyet a fent említett eredmények között keresünk. Ezeket az információkat arra használjuk, hogy meghatározzuk, mely folyamatok vagy lekérdezések mely állapotokban vannak, és utána mélyebbre ásunk. Csökkenthetjük a keresett részleteket a lekérdezés finomításával, lehetővé téve számunkra, hogy beavatkozást készítsünk az adott kapcsolatra. Ezt úgy tehetjük meg, hogy csak a tétlen PID-eket választjuk a WHERE záradék és az adott PID-ek állapotának használatával. Azt is nyomon kell követnünk, hogy a link mennyi ideig nem aktív, és gondoskodnunk kell arról, hogy ne legyenek elhanyagolt linkjeink az erőforrásainkkal. Ennek eredményeként az alább átfogalmazott paranccsal csak azokat a rekordokat jelenítjük meg, amelyek relevánsak a jelenleg tétlen folyamatokhoz:

>> SELECT pid, usename, usesysid, datid, datname, application_name, backend_start, state_change, state FROM pg_stat_activity WHERE state = 'tétlen';

A lekérdezés csak 2 olyan adatrekordot hozott le, amelyek állapota "tétlen" volt a WHERE záradék használatával. Az eredmény megmutatja a 2 tétlen folyamatot, bizonyos információkkal együtt.

Tétlen kapcsolat megölése:

A tétlen kapcsolatok azonosítása után itt az ideje megölni őket. Miután a folyamatot várakozási állapotban vagy hosszabb ideig inaktívvá tettük, az egyszerű paranccsal egyszerűen leállíthatjuk a háttér-mechanizmust anélkül, hogy megzavarnánk a szerver tevékenységét. Meg kell adnunk a lekérdezésen belül az „id” folyamatot egy terminate függvényben.

>> SELECT pg_terminate_backend (7408);

A folyamatot csodálatosan megölték.

Most ellenőrizze a fennmaradó üresjárati kapcsolatokat az alább mellékelt lekérdezésből.

>> SELECT datid, felhasználónév, datname, pid, állapot FROM pg_stat_activity WHERE state = 'tétlen';

A kimenet csak 1 hátralévő folyamatot mutat, amely tétlen.

Következtetés:

Ne hagyjon ki egyetlen lépést sem, hogy hatékonyan megsemmisítse az inaktív kapcsolatokat a PostgreSQL adatbázisból.

Az FPS-számláló megjelenítése a Linux-játékokban
A Linux játék komoly lendületet kapott, amikor a Valve 2012-ben bejelentette a Linux támogatását a Steam kliensnek és játékaiknak. Azóta sok AAA és in...
Sid Meier Civilization VI letöltése és lejátszása Linuxon
Bevezetés a játékba A Civilization 6 egy modern felvétel a Age of Empires játékok sorozatában bevezetett klasszikus koncepcióra. Az ötlet meglehetősen...
A Doom telepítése és lejátszása Linuxon
Bevezetés a Doom-ba A Doom sorozat a 90-es években keletkezett az eredeti Doom megjelenése után. Azonnali sláger volt, és ettől kezdve a játéksorozat ...