PostgreSQL

Kuidas tappa tühikäigu ühendusi PostgreSQL-is

Kuidas tappa tühikäigu ühendusi PostgreSQL-is

Esimene samm muudatuste tegemisel või PostgreSQL andmebaasist teabe lugemisel on ühenduste loomine. Teiselt poolt genereeris iga link üldkulusid, kasutades protseduuri ja salvestust. Seetõttu saab minimaalsete ressurssidega seade (lugemine, salvestamine, riistvara) toetada piiratud ühenduste kogumit. Kui piiratud agregaat on punktist kaugemale jõudnud, peaks see jätkama vigade heitmist või ühenduste keelamist. PostgreSQL-is.conf, PostgreSQL teeb korralikku tööd linkide piiramiseks. Selles õpetuses uurime olekute erinevaid vorme, mis PostgreSQL-i linkidel võivad olla. Näitame teile, kuidas kindlaks teha, kas link on aktiivne või pole pikka aega passiivne olnud. Sel juhul saab linkide ja ressursside vabastamiseks ühenduse katkestada.

Serveriga ühenduse loomine:

Kõigepealt veenduge, et pgAdmin4 oleks arvutisüsteemi täielikult funktsioneerinud. Avage see oma rakendustes. Peate selle parooliga ühendama kohaliku hostiga.

Pärast ühenduse loomist juur localhostiga ühendage see PostgreSQL serveriga. Sisestage ühenduse loomiseks PostgreSQL 13 kasutaja Postgres parool. Jätkamiseks puudutage nuppu OK.

Nüüd olete ühendatud PostgreSQL 13 serveriga. Näete serveris asuvate andmebaaside loendit, nagu on näidatud allpool lisatud pildil. Postgresi andmebaas on vaikebaas, mis loodi PostgreSQL-i installimise ajal, samas kui test-andmebaasi on kasutaja loonud pärast installimist.

Ühenduse olekud:

Kui PostgreSQL-link on loodud, võib see teha erinevaid toiminguid, mille tulemuseks on oleku üleminek. Tuleks teha ratsionaalne otsus selle kohta, kas link töötab või on see sõltuvalt olekust ja kestusest igas olekus jõude jäänud / kasutamata. Oluline on märkida, et seni, kuni rakendus ühenduse tahtlikult sulgeb, jätkab see tööd, raisates ressursse kaua pärast kliendi eraldamist. Ühendusel on 4 potentsiaalset olekut:

Määrake ühenduse olekud:

PostgreSQL-i kataloogitabelites on sisseehitatud vaade 'pg_stat_activity', et kontrollida statistikat selle kohta, mida link teeb või kui palju aega see selles seisundis on olnud. Iga andmebaasi ja ühenduse oleku kogu statistika kontrollimiseks avage päringutööriist ja käivitage järgmine päring:

>> SELECT * FROM pg_stat_activity;

Päring on viljakalt rakendatud ja täideviide on näidatud.

Selle andmete väljundpoole kontrollimisel leiate mitme veeruga tabeli, nagu allpool näidatud. Ühenduste olekuid saate kontrollida välja "riik" väärtuste kontrollimisega.

Väljundi lihtsustamiseks ja ühenduste, nende olekute, kasutajate ja nendes olekutes olevate serverite selge ettekujutuse loomiseks peate päringutööriistas täitma allpool muudetud päringu. See päring kuvab ainult viit ühenduste kirjet ja konkreetset teavet nende kohta. Veerg 'pid' tähistab protsessi ID-d. Veerg „olek” hoiab protsesside olekuid. Veerg „kasutajanimi” identifitseerib konkreetse protsessiga töötanud kasutaja. Veerg „datname” täpsustas andmebaasi nime, mida tehing on sooritanud. Veerg 'datid' tähistab andmebaasi ID-d.

>> SELECT pid, riik, kasutajanimi datname, datid, pg_stat_activity;

Väljundis on kokku registreeritud 8 protsessi. Veerg „riik” näitab, et praegu töötab ainult 3 protsessi. Ühte hoiab vaikimisi andmebaas Postgres ja kahte teist andmebaasi test. Samal ajal on Postgresi kasutaja neid protsesse teinud.

Tühikäigu ühenduste tuvastamine:

Tundub, et olek on ainus väärtus, mida me ülalnimetatud tulemustest otsime. Kasutame seda teavet selleks, et teha kindlaks, millised protsessid või päringud millistes olekutes on ja seejärel süveneme. Võime otsingut täpsustades kitsendada päringut täpsustades, võimaldades meil ette valmistada sekkumist selle konkreetse ühenduse jaoks. Saime seda teha, valides ainult tühikäigu PID-d, kasutades WHERE-klauslit ja nende PID-de olekuid. Peaksime jälgima ka seda, kui kaua link on passiivne olnud, ja tagama, et meil pole ressursse raiskavaid unarusse jäetud linke. Selle tulemusel kasutame allpool ümbersõnastatud käsku ainult jõudeolevate protsesside jaoks asjakohaste kirjete kuvamiseks:

>> SELECT pid, kasutajanimi, usesysid, datid, datname, rakenduse_nimi, backend_start, state_change, olek FROM pg_stat_activity WHERE state = 'tühikäik';

Päring on WHERE klausli abil toonud ainult 2 andmete kirjet, mille olek oli tühikäigul. Tulemuseks on kahe tühikäigu protsessi näitamine koos nende kohta kindla teabega.

Tapa tühikäigu ühendus:

Pärast jõudeühenduste tuvastamist on nüüd aeg neid tappa. Kui oleme protsessi ootel olekus või palju kauem passiivseks muutnud, võiksime kasutada lihtsat käsku, et tagumismehhanism hõlpsalt lõpetada, ilma et see häiriks serveri tegevust. Peame esitama päringu piires funktsiooni "id".

>> SELECT pg_terminate_backend (7408);

Protsess on suurepäraselt tapetud.

Nüüd kontrollige allpool lisatud päringust ülejäänud tühikäigu ühendusi.

>> SELECT datid, kasutajanimi, datname, pid, riik FROM pg_stat_activity WHERE olek = 'jõude';

Väljund näitab ainult ühte järelejäänud protsessi, mis on jõude.

Järeldus:

Ärge unustage ühtegi sammu PostgreSQL andmebaasi passiivsete ühenduste tõhusaks hävitamiseks.

Kuidas Linuxis oma mänguseanssi jäädvustada ja voogesitada
Varem peeti mängude mängimist ainult hobiks, kuid aja jooksul kasvas mängutööstus tehnoloogia ja mängijate arvu osas tohutult. Mängupublik on veebimän...
Parimad mängud, mida saab mängida käte jälgimisega
Oculus Quest tutvustas hiljuti suurepärast ideed käsitsi jälgimisest ilma kontrolleriteta. Üha suurema hulga mängude ja tegevustega, mis toetavad kas ...
Kuidas kuvada OSD ülekatet täisekraanil Linuxi rakendustes ja mängudes
Täisekraaniga mängude mängimine või rakenduste kasutamine häireteta täisekraanirežiimis võib teid paneelil või tegumiribal kuvatavast asjakohasest süs...