Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Nissuġġerixxi li taqra t-traskrizzjoni tar-rapport minn Alexey Lesovsky minn Data Egret "Fundamentals of PostgreSQL monitoring"

F'dan ir-rapport, Alexey Lesovsky se jitkellem dwar il-punti ewlenin tal-istatistika ta 'wara l-gress, xi jfissru, u għaliex għandhom ikunu preżenti fil-monitoraġġ; dwar liema graffs għandhom ikunu fil-monitoraġġ, kif iżżidhom u kif tinterpretahom. Ir-rapport se jkun utli għall-amministraturi tad-databases, l-amministraturi tas-sistema u l-iżviluppaturi li huma interessati fis-soluzzjoni tal-problemi ta 'Postgres.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Jisimni Alexey Lesovsky, nirrappreżenta l-kumpanija Data Egret.

Ftit kliem dwari nnifsi. Bdejt żmien twil ilu bħala amministratur tas-sistema.

Amministrajt kull xorta ta’ sistemi Linux differenti, ħdimt fuq diversi affarijiet relatati mal-Linux, jiġifieri virtwalizzazzjoni, monitoraġġ, ħdimt bi proxys, eċċ Imma f’xi punt bdejt naħdem aktar ma’ databases, PostgreSQL. Għoġobni ħafna. U f'xi punt bdejt naħdem fuq PostgreSQL ħafna mill-ħin tax-xogħol tiegħi. U għalhekk gradwalment sirt DBA PostgreSQL.

U matul il-karriera tiegħi, dejjem kont interessat fis-suġġetti tal-istatistika, il-monitoraġġ, u t-telemetrija. U meta kont amministratur tas-sistema, ħdimt mill-qrib ħafna ma’ Zabbix. U ktibt sett żgħir ta 'skripts bħal zabbix-estensjonijiet. Kien pjuttost popolari fi żmienu. U hemmhekk kien possibbli li jiġu mmonitorjati affarijiet importanti differenti ħafna, mhux biss Linux, iżda wkoll komponenti varji.

Issa qed naħdem fuq PostgreSQL. Diġà qed nikteb ħaġa oħra li tippermettilek taħdem bl-istatistika PostgreSQL. Huwa msejjaħ pgCenter (artiklu fuq Habré - Statistika ta' wara l-gress mingħajr nervi u tensjoni).

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Ftit nota introduttorja. Liema sitwazzjonijiet għandhom il-klijenti tagħna, il-klijenti tagħna? Hemm xi tip ta 'inċident relatat mad-database. U meta d-database tkun diġà ġiet restawrata, il-kap tad-dipartiment jew il-kap tal-iżvilupp jiġi u jgħid: "Ħbieb, irridu nissorveljaw id-database, għax ġrat xi ħaġa ħażina u rridu nevitaw li dan iseħħ fil-futur." U hawn jibda l-proċess interessanti li tagħżel sistema ta 'monitoraġġ jew tadatta sistema ta' monitoraġġ eżistenti sabiex tkun tista 'tissorvelja d-database tiegħek - PostgreSQL, MySQL jew xi oħrajn. U l-kollegi jibdew jissuġġerixxu: “Smajt li hemm tali database. Ejja nużawh." Il-kollegi jibdew jargumentaw ma’ xulxin. U fl-aħħar jirriżulta li aħna nagħżlu xi tip ta 'database, iżda l-monitoraġġ PostgreSQL huwa ppreżentat fih pjuttost ħażin u dejjem għandna nżidu xi ħaġa. Ħu xi repożitorji minn GitHub, kklonajhom, jadattaw skripts, u b'xi mod ippersonalizzahom. U fl-aħħar jispiċċa jkun xi tip ta’ xogħol manwali.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Għalhekk, f'din it-taħdita ser nipprova nagħtikom xi għarfien dwar kif tagħżel il-monitoraġġ mhux biss għal PostgreSQL, iżda wkoll għad-database. U jagħtik l-għarfien li jippermettilek tlesti l-monitoraġġ tiegħek sabiex tikseb xi benefiċċju minnu, sabiex tkun tista 'tissorvelja d-database tiegħek b'benefiċċju, sabiex tevita fil-pront kwalunkwe sitwazzjoni ta' emerġenza li tista 'tinqala'.

U l-ideat li se jkun hemm f'dan ir-rapport jistgħu jiġu adattati direttament għal kwalunkwe database, kemm jekk tkun DBMS jew noSQL. Għalhekk, m'hemmx biss PostgreSQL, iżda se jkun hemm ħafna riċetti dwar kif tagħmel dan f'PostgreSQL. Se jkun hemm eżempji ta 'mistoqsijiet, eżempji ta' entitajiet li PostgreSQL għandu għall-monitoraġġ. U jekk id-DBMS tiegħek għandu l-istess affarijiet li jippermettulek tpoġġihom fil-monitoraġġ, tista 'wkoll tadattahom, żidhom u tkun tajba.

Bażi tal-monitoraġġ PostgreSQL. Alexey LesovskyJien mhux se nkun fir-rapport
tkellem dwar kif twassal u taħżen metriċi. Mhux se ngħid xejn dwar l-ipproċessar ta' wara d-dejta u l-preżentazzjoni tagħha lill-utent. U mhux se ngħid xejn dwar l-allert.
Iżda hekk kif l-istorja timxi 'l quddiem, ser nuri screenshots differenti ta' monitoraġġ eżistenti u b'xi mod nikkritikahom. Iżda madankollu, se nipprova ma nsemmix ditti biex ma noħloqx reklamar jew kontra r-reklamar għal dawn il-prodotti. Għalhekk, il-kumbinazzjonijiet kollha huma każwali u jitħallew għall-immaġinazzjoni tiegħek.
Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky
L-ewwel, ejja nsemmu x'inhu l-monitoraġġ. Il-monitoraġġ huwa ħaġa importanti ħafna li jkollok. Kulħadd jifhem dan. Iżda fl-istess ħin, il-monitoraġġ ma jirrelatax ma 'prodott tan-negozju u ma jaffettwax direttament il-profitt tal-kumpanija, għalhekk il-ħin dejjem jiġi allokat għall-monitoraġġ fuq bażi residwa. Jekk ikollna l-ħin, allura nagħmlu monitoraġġ; jekk m'għandniex ħin, allura OK, inpoġġuh fil-backlog u xi darba nerġgħu lura għal dawn il-kompiti.

Għalhekk, mill-prattika tagħna, meta niġu għand il-klijenti, il-monitoraġġ ħafna drabi ma jkunx komplut u ma jkollu l-ebda affarijiet interessanti li jgħinuna nagħmlu xogħol aħjar mad-database. U għalhekk il-monitoraġġ dejjem jeħtieġ li jitlesta.

Id-databases huma affarijiet kumplessi bħal dawn li jeħtieġu wkoll li jiġu mmonitorjati, minħabba li d-databases huma repożitorju ta' informazzjoni. U l-informazzjoni hija importanti ħafna għall-kumpanija; ma tistax tintilef bl-ebda mod. Iżda fl-istess ħin, id-databases huma biċċiet ta 'softwer kumplessi ħafna. Dawn jikkonsistu f'numru kbir ta 'komponenti. U ħafna minn dawn il-komponenti jeħtieġ li jiġu mmonitorjati.

Bażi tal-monitoraġġ PostgreSQL. Alexey LesovskyJekk qed nitkellmu speċifikament dwar PostgreSQL, allura jista 'jkun rappreżentat fil-forma ta' skema li tikkonsisti f'numru kbir ta 'komponenti. Dawn il-komponenti jinteraġixxu ma 'xulxin. U fl-istess ħin, PostgreSQL għandu l-hekk imsejħa subsistema Stats Collector, li tippermettilek tiġbor statistika dwar it-tħaddim ta 'dawn is-sottosistemi u tipprovdi xi tip ta' interface lill-amministratur jew lill-utent sabiex ikun jista 'jara din l-istatistika.

Din l-istatistika hija ppreżentata fil-forma ta 'ċertu sett ta' funzjonijiet u fehmiet. Jistgħu jissejħu wkoll tabelli. Jiġifieri, billi tuża klijent psql regolari, tista 'tikkonnettja mad-database, tagħmel għażla fuq dawn il-funzjonijiet u fehmiet, u tikseb xi numri speċifiċi dwar l-operat tas-sottosistemi PostgreSQL.

Tista 'żżid dawn in-numri mas-sistema ta' monitoraġġ favorita tiegħek, tfassal graffs, iżżid funzjonijiet u tikseb analitiċi fit-tul.

Iżda f'dan ir-rapport mhux se nkopri dawn il-funzjonijiet kollha kompletament, għax jista' jieħu l-ġurnata kollha. Se nindirizza litteralment żewġ, tlieta jew erba' affarijiet u ngħidlek kif jgħinu biex il-monitoraġġ ikun aħjar.
Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky
U jekk nitkellmu dwar il-monitoraġġ tad-database, allura x'għandu jiġi mmonitorjat? L-ewwelnett, irridu nissorveljaw id-disponibbiltà, minħabba li d-database hija servizz li jipprovdi aċċess għad-dejta lill-klijenti u għandna bżonn nissorveljaw id-disponibbiltà, u nipprovdu wkoll xi wħud mill-karatteristiċi kwalitattivi u kwantitattivi tagħha.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Għandna bżonn ukoll li nissorveljaw il-klijenti li jgħaqqdu mad-database tagħna, minħabba li jistgħu jkunu kemm klijenti normali kif ukoll klijenti ta 'ħsara li jistgħu jagħmlu ħsara lid-database. Jeħtieġ ukoll li jiġu mmonitorjati u l-attivitajiet tagħhom jiġu ssorveljati.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Meta l-klijenti jikkonnettjaw mad-database, huwa ovvju li jibdew jaħdmu mad-dejta tagħna, għalhekk għandna bżonn nissorveljaw kif il-klijenti jaħdmu bid-dejta: b'liema tabelli, u sa ċertu punt, b'liema indiċi. Jiġifieri, għandna bżonn nevalwaw l-ammont ta’ xogħol li jinħoloq mill-klijenti tagħna.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Iżda l-ammont ta' xogħol jikkonsisti wkoll, ovvjament, f'talbiet. L-applikazzjonijiet jgħaqqdu mad-database, jaċċessaw id-data billi jużaw mistoqsijiet, għalhekk huwa importanti li nevalwaw liema mistoqsijiet għandna fid-database, jimmonitorjaw l-adegwatezza tagħhom, li ma jkunux miktuba b'mod mgħawweġ, li xi għażliet jeħtieġ li jerġgħu jinkitbu u jsiru sabiex jaħdmu aktar malajr u b'rendiment aħjar.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

U peress li qed nitkellmu dwar database, id-database hija dejjem proċessi fl-isfond. Il-proċessi tal-isfond jgħinu biex iżommu l-prestazzjoni tad-database f'livell tajjeb, għalhekk jeħtieġu ċertu ammont ta 'riżorsi għalihom infushom biex joperaw. U fl-istess ħin, jistgħu jikkoinċidu mar-riżorsi tat-talbiet tal-klijenti, għalhekk proċessi ta 'sfond greedy jistgħu jaffettwaw direttament il-prestazzjoni tat-talbiet tal-klijenti. Għalhekk, jeħtieġ ukoll li jiġu mmonitorjati u ssorveljati sabiex ma jkunx hemm distorsjonijiet f'termini ta 'proċessi ta' sfond.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

U dan kollu f'termini ta 'monitoraġġ tad-database jibqa' fil-metrika tas-sistema. Iżda meta wieħed iqis li l-biċċa l-kbira tal-infrastruttura tagħna qed timxi lejn is-sħab, il-metriċi tas-sistema ta 'host individwali dejjem jisparixxu fl-isfond. Iżda fid-databases għadhom rilevanti u, ovvjament, huwa wkoll meħtieġ li tissorvelja l-metriċi tas-sistema.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Kollox huwa ftit jew wisq tajjeb bil-metriċi tas-sistema, is-sistemi moderni kollha ta 'monitoraġġ diġà jappoġġjaw dawn il-metriċi, iżda b'mod ġenerali, xi komponenti għadhom mhumiex biżżejjed u jeħtieġ li jiżdiedu xi affarijiet. Se nmisshom ukoll, se jkun hemm diversi slides dwarhom.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky
L-ewwel punt tal-pjan huwa l-aċċessibbiltà. X'inhi l-aċċessibbiltà? Id-disponibbiltà fil-fehim tiegħi hija l-abbiltà tal-bażi biex isservi konnessjonijiet, jiġifieri l-bażi hija mgħollija, hija, bħala servizz, taċċetta konnessjonijiet mill-klijenti. U din l-aċċessibbiltà tista’ tiġi evalwata b’ċerti karatteristiċi. Huwa konvenjenti ħafna li jintwerew dawn il-karatteristiċi fuq dashboards.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky
Kulħadd jaf x'inhuma d-dashboards. Dan meta ħadt ħarsa waħda lejn l-iskrin li fih hija mqassra l-informazzjoni meħtieġa. U tista 'tiddetermina immedjatament jekk hemmx problema fid-database jew le.
Għaldaqstant, id-disponibbiltà tad-database u karatteristiċi ewlenin oħra għandhom dejjem jintwerew fuq dashboards sabiex din l-informazzjoni tkun disponibbli u dejjem disponibbli għalik. Xi dettalji addizzjonali li diġà jgħinu fl-investigazzjoni ta 'inċidenti, meta jiġu investigati xi sitwazzjonijiet ta' emerġenza, diġà jeħtieġ li jitqiegħdu fuq dashboards sekondarji, jew moħbija f'links ta 'drilldown li jwasslu għal sistemi ta' monitoraġġ ta 'partijiet terzi.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Eżempju ta' sistema waħda ta' monitoraġġ magħrufa. Din hija sistema ta 'monitoraġġ jibred ħafna. Hija tiġbor ħafna dejta, iżda mil-lat tiegħi, għandha kunċett stramb ta 'dashboards. Hemm link għal "toħloq dashboard". Imma meta toħloq dashboard, toħloq lista ta 'żewġ kolonni, lista ta' graffs. U meta jkollok bżonn tħares lejn xi ħaġa, tibda tikklikkja bil-maws, tiskrollja, tfittex it-tabella mixtieqa. U dan jieħu ż-żmien, jiġifieri m'hemmx dashboards bħala tali. Hemm biss listi ta 'charts.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

X'għandek iżżid ma' dawn id-dashboards? Tista 'tibda b'karatteristika bħal ħin ta' rispons. PostgreSQL għandu l-veduta pg_stat_statements. Hija diżattivata b'mod awtomatiku, iżda hija waħda mill-veduti importanti tas-sistema li għandha dejjem tkun attivata u użata. Hija taħżen informazzjoni dwar il-mistoqsijiet kollha li jkunu ġew eżegwiti fid-database.

Għaldaqstant, nistgħu nibdew mill-fatt li nistgħu nieħdu l-ħin totali ta 'eżekuzzjoni tat-talbiet kollha u naqsmu bin-numru ta' talbiet bl-użu tal-oqsma ta 'hawn fuq. Iżda din hija t-temperatura medja fl-isptar. Nistgħu nibdew minn oqsma oħra - ħin minimu ta 'eżekuzzjoni tal-mistoqsija, massimu u medjan. U nistgħu anke nibnu perċentili; PostgreSQL għandu funzjonijiet korrispondenti għal dan. U nistgħu niksbu xi numri li jikkaratterizzaw il-ħin tar-rispons tad-database tagħna għal talbiet li diġà tlestew, jiġifieri ma nwettqux it-talba falza "agħżel 1" u nħarsu lejn il-ħin tar-rispons, iżda nanalizzaw il-ħin tar-rispons għal talbiet li diġà tlestew u niġbdu. jew figura separata, jew nibnu graff ibbażat fuqha.

Huwa wkoll importanti li jiġi mmonitorjat in-numru ta 'żbalji li bħalissa huma ġġenerati mis-sistema. U għal dan tista' tuża l-veduta pg_stat_database. Aħna niffokaw fuq il-qasam xact_rollback. Dan il-qasam juri mhux biss in-numru ta 'rollbacks li jseħħu fid-database, iżda jqis ukoll in-numru ta' żbalji. Relattivament, nistgħu nuru din il-figura fid-dashboard tagħna u naraw kemm għandna żbalji bħalissa. Jekk ikun hemm ħafna żbalji, allura din hija raġuni tajba biex tħares lejn ir-zkuk u tara x'tip ta 'żbalji huma u għaliex iseħħu, u mbagħad tinvesti u ssolvihom.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Tista 'żżid ħaġa bħal Tachometer. Dawn huma n-numru ta 'tranżazzjonijiet kull sekonda u n-numru ta' talbiet kull sekonda. Relattivament, tista 'tuża dawn in-numri bħala l-prestazzjoni attwali tad-database tiegħek u tosserva jekk hemmx qċaċet fit-talbiet, qċaċet fit-tranżazzjonijiet, jew, bil-maqlub, jekk id-database hijiex mgħobbija biżżejjed minħabba li xi backend falla. Huwa importanti li dejjem inħarsu lejn din il-figura u niftakru li għall-proġett tagħna dan it-tip ta’ prestazzjoni hija normali, iżda l-valuri ta’ fuq u ta’ taħt huma diġà xi tip ta’ problematiċi u inkomprensibbli, li jfisser li rridu nħarsu lejn għaliex dawn in-numri huma daqshekk għoli.

Sabiex nistmaw in-numru ta 'tranżazzjonijiet, nistgħu nerġgħu nirreferu għall-veduta pg_stat_database. Nistgħu nżidu n-numru ta 'commits u n-numru ta' rollbacks u nikseb in-numru ta 'tranżazzjonijiet kull sekonda.

Kulħadd jifhem li diversi talbiet jistgħu jidħlu fi tranżazzjoni waħda? Għalhekk TPS u QPS huma kemmxejn differenti.

In-numru ta' talbiet kull sekonda jista' jinkiseb minn pg_stat_statements u sempliċement ikkalkula s-somma tat-talbiet kollha mimlija. Huwa ċar li nqabblu l-valur attwali ma 'dak ta' qabel, nnaqqsuh, nikseb id-delta, u nġibu l-kwantità.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Tista 'żżid metriċi addizzjonali jekk mixtieq, li jgħinu wkoll jevalwaw id-disponibbiltà tad-database tagħna u jimmonitorjaw jekk kienx hemm xi ħin ta' waqfien.

Waħda minn dawn il-metriċi hija uptime. Imma uptime f'PostgreSQL huwa daqsxejn delikat. Jien ngħidlek għaliex. Meta PostgreSQL ikun beda, l-uptime jibda jirrapporta. Imma jekk f'xi punt, pereżempju, xi kompitu kien qed jaħdem bil-lejl, ġie OOM-qattiel u temm bil-forza l-proċess tat-tfal PostgreSQL, allura f'dan il-każ PostgreSQL itemm il-konnessjoni tal-klijenti kollha, jerġa 'jissettja ż-żona tal-memorja maqsuma u jibda l-irkupru minn l-aħħar punt ta’ kontroll. U filwaqt li dan l-irkupru mill-punt ta 'kontroll idum, id-database ma taċċettax konnessjonijiet, jiġifieri din is-sitwazzjoni tista' tiġi vvalutata bħala waqfien. Iżda l-uptime counter mhux se jiġi reset, minħabba li jqis il-ħin tal-istartjar tal-postmaster mill-ewwel mument. Għalhekk, sitwazzjonijiet bħal dawn jistgħu jinqabżu.

Għandek tissorvelja wkoll in-numru ta 'ħaddiema tal-vakwu. Kulħadd jaf x'inhu l-autovacuum f'PostgreSQL? Din hija sottosistema interessanti fil-PostgreSQL. Inkitbu ħafna artikli dwarha, saru ħafna rapporti. Hemm ħafna diskussjonijiet dwar il-vakwu u kif għandu jaħdem. Ħafna jqisuha bħala ħażen meħtieġ. Imma hekk hu. Dan huwa tip ta 'analogu ta' kollettur taż-żibel li jnaddaf verżjonijiet skaduti ta 'ringieli li mhumiex meħtieġa minn kwalunkwe tranżazzjoni u jillibera spazju fit-tabelli u l-indiċi għal ringieli ġodda.

Għaliex għandek bżonn tissorveljaha? Għax il-vakwu kultant jolqot ħafna. Jikkonsma ammont kbir ta 'riżorsi u t-talbiet tal-klijenti jibdew ibatu bħala riżultat.

U għandu jiġi mmonitorjat permezz tal-veduta pg_stat_activity, li se nitkellem dwarha fit-taqsima li jmiss. Din il-fehma turi l-attività attwali fid-database. U permezz ta’ din l-attività nistgħu nsegwu n-numru ta’ vacuums li qed jaħdmu bħalissa. Nistgħu nsegwu l-vakwu u naraw li jekk qbiżna l-limitu, allura din hija raġuni biex inħarsu lejn is-settings ta 'PostgreSQL u b'xi mod ottimizzaw l-operat tal-vakwu.

Ħaġa oħra dwar PostgreSQL hija li PostgreSQL huwa marid ħafna minn tranżazzjonijiet twal. Speċjalment minn tranżazzjonijiet li jdumu għal żmien twil u ma jagħmlu xejn. Dan huwa l-hekk imsejjaħ stat idle-in-transaction. Tranżazzjoni bħal din iżżomm serraturi u tipprevjeni li l-vakwu jaħdem. U bħala riżultat, it-tabelli jintefħu u jiżdiedu fid-daqs. U l-mistoqsijiet li jaħdmu ma 'dawn it-tabelli jibdew jaħdmu aktar bil-mod, minħabba li għandek bżonn biex tneħħi l-verżjonijiet antiki kollha tar-ringieli mill-memorja sad-diska u lura. Għalhekk, il-ħin, it-tul tat-tranżazzjonijiet itwal, l-itwal talbiet vakwu wkoll jeħtieġ li jiġu mmonitorjati. U jekk naraw xi proċessi li ilhom għaddejjin għal żmien twil ħafna, diġà aktar minn 10-20-30 minuta għal tagħbija OLTP, allura għandna bżonn nagħtu attenzjoni għalihom u ntemmuhom bil-qawwa, jew ottimizzaw l-applikazzjoni sabiex ikunu mhumiex imsejħa u ma hang sakemm. Għal xogħol analitiku, 10-20-30 minuta hija normali; hemm ukoll oħrajn itwal.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky
Sussegwentement għandna l-għażla mal-klijenti konnessi. Meta diġà ħloqna dashboard u poġġiejna metriċi tad-disponibbiltà ewlenin fuqu, nistgħu wkoll inżidu informazzjoni addizzjonali dwar klijenti konnessi hemmhekk.

L-informazzjoni dwar il-klijenti konnessi hija importanti għaliex, minn perspettiva PostgreSQL, il-klijenti huma differenti. Hemm klijenti tajbin u hemm klijenti ħżiena.

Eżempju sempliċi. Mill-klijent nifhem l-applikazzjoni. L-applikazzjoni tkun konnessa mad-database u immedjatament tibda tibgħat it-talbiet tagħha hemmhekk, id-database tipproċessahom u tesegwixxihom, u tirritorna r-riżultati lill-klijent. Dawn huma klijenti tajbin u korretti.

Hemm sitwazzjonijiet meta l-klijent ikun ikkonnettja, iżomm il-konnessjoni, iżda ma jagħmel xejn. Huwa fi stat idle.

Imma hemm klijenti ħżiena. Pereżempju, l-istess klijent konness, fetaħ transazzjoni, għamel xi ħaġa fid-database u mbagħad daħal fil-kodiċi, pereżempju, biex jaċċessa sors estern jew biex jipproċessa d-data riċevuta hemmhekk. Iżda hu ma għalaqx it-tranżazzjoni. U t-tranżazzjoni prekarja fid-database u tinżamm f'serratura fuq il-linja. Din hija kundizzjoni ħażina. U jekk f'daqqa waħda applikazzjoni x'imkien ġewwa fiha tfalli b'eċċezzjoni, allura t-tranżazzjoni tista 'tibqa' miftuħa għal żmien twil ħafna. U dan jaffettwa direttament il-prestazzjoni ta 'PostgreSQL. PostgreSQL se jkun aktar bil-mod. Għalhekk, huwa importanti li jittraċċaw dawn il-klijenti fil-ħin u jtemmu bil-qawwa x-xogħol tagħhom. U għandek bżonn tottimizza l-applikazzjoni tiegħek sabiex sitwazzjonijiet bħal dawn ma jseħħux.

Klijenti ħżiena oħra qed jistennew klijenti. Imma jsiru ħżiena minħabba ċ-ċirkostanzi. Per eżempju, tranżazzjoni inattiva sempliċi: tista 'tiftaħ transazzjoni, tieħu serraturi fuq xi linji, imbagħad x'imkien fil-kodiċi se tfalli, u tħalli tranżazzjoni mdendlin. Klijent ieħor jiġi u jitlob l-istess data, iżda se jiltaqa 'ma' serratura, minħabba li dik it-tranżazzjoni mdendla diġà żżomm serraturi fuq xi ringieli meħtieġa. U t-tieni tranżazzjoni se tistrieħ tistenna li l-ewwel tranżazzjoni titlesta jew tagħlaqha bil-forza mill-amministratur. Għalhekk, tranżazzjonijiet pendenti jistgħu jakkumulaw u jimlew il-limitu tal-konnessjoni tad-database. U meta l-limitu jkun sħiħ, l-applikazzjoni ma tistax taħdem aktar mad-database. Din diġà hija sitwazzjoni ta’ emerġenza għall-proġett. Għalhekk, klijenti ħżiena jeħtieġ li jiġu ssorveljati u mwieġba fil-ħin.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Eżempju ieħor ta' monitoraġġ. U diġà hemm dashboard deċenti hawn. Hemm informazzjoni dwar il-konnessjonijiet hawn fuq. Konnessjoni DB - 8 biċċiet. U dan kollu. M'għandna l-ebda informazzjoni dwar liema klijenti huma attivi, liema klijenti huma biss idle, ma jagħmlu xejn. M'hemm l-ebda informazzjoni dwar tranżazzjonijiet pendenti u konnessjonijiet pendenti, jiġifieri din hija ċifra li turi n-numru ta 'konnessjonijiet u dak hu. U mbagħad aqta għalik innifsek.
Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky
Għaldaqstant, biex iżżid din l-informazzjoni mal-monitoraġġ, trid taċċessa l-veduta tas-sistema pg_stat_activity. Jekk tqatta 'ħafna ħin f'PostgreSQL, allura din hija veduta tajba ħafna li għandha ssir ħabib tiegħek, għaliex turi l-attività kurrenti f'PostgreSQL, jiġifieri dak li qed jiġri fiha. Għal kull proċess hemm linja separata li turi informazzjoni dwar dan il-proċess: minn liema host saret il-konnessjoni, taħt liema utent, taħt liema isem, meta nbdiet it-tranżazzjoni, liema talba qed taħdem bħalissa, liema talba ġiet eżegwita l-aħħar. U, għalhekk, nistgħu nevalwaw l-istat tal-klijent billi tuża l-qasam stat. Relattivament, nistgħu niġbru b'dan il-qasam u nġibu dawk l-istatistiċi li bħalissa jinsabu fid-database u n-numru ta 'konnessjonijiet li għandhom din l-istat fid-database. U nistgħu nibagħtu n-numri diġà riċevuti lill-monitoraġġ tagħna u niġbdu graffs ibbażati fuqhom.
Huwa importanti wkoll li jiġi evalwat it-tul tat-tranżazzjoni. Diġà għedt li huwa importanti li jiġi evalwat it-tul ta 'vacuums, iżda t-tranżazzjonijiet huma evalwati bl-istess mod. Hemm xact_start u query_start oqsma. Huma, relattivament, juru l-ħin tal-bidu tat-tranżazzjoni u l-ħin tal-bidu tat-talba. Nieħdu l-funzjoni issa (), li turi l-timestamp kurrenti, u naqqas it-transazzjoni u t-talba tat-timestamp. U nġibu t-tul tat-tranżazzjoni, it-tul tat-talba.

Jekk naraw tranżazzjonijiet twal, għandna nlestuhom diġà. Għal tagħbija OLTP, tranżazzjonijiet twal diġà huma aktar minn 1-2-3 minuti. Għal ammont ta 'xogħol OLAP, tranżazzjonijiet twal huma normali, iżda jekk jieħdu aktar minn sagħtejn biex jitlestew, allura dan huwa wkoll sinjal li għandna skew x'imkien.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky
Ladarba l-klijenti jkunu konnessi mad-database, jibdew jaħdmu bid-dejta tagħna. Huma jaċċessaw tabelli, jaċċessaw indiċi biex jiksbu data mit-tabella. U huwa importanti li tevalwa kif il-klijenti jinteraġixxu ma 'din id-dejta.

Dan huwa meħtieġ sabiex nevalwaw il-piż tax-xogħol tagħna u nifhmu bejn wieħed u ieħor liema tabelli huma l-"aktar sħan" għalina. Pereżempju, dan huwa meħtieġ f'sitwazzjonijiet fejn irridu npoġġu tabelli "sħan" fuq xi tip ta 'ħażna SSD veloċi. Pereżempju, xi tabelli tal-arkivji li ilna ma użajna għal żmien twil jistgħu jiġu mċaqalqa għal xi tip ta 'arkivju "kiesaħ", għal drives SATA u ħallihom jgħixu hemm, se jiġu aċċessati kif meħtieġ.

Dan huwa utli wkoll biex jinstabu anomaliji wara kwalunkwe rilaxx u skjerament. Ejja ngħidu li l-proġett ħareġ xi karatteristika ġdida. Pereżempju, żidna funzjonalità ġdida biex naħdmu mad-database. U jekk nippjanaw graffs tal-użu tat-tabella, nistgħu faċilment niskopru dawn l-anomaliji fuq dawn il-graffs. Pereżempju, aġġorna l-fqigħ jew ħassar il-fqigħ. Se jkun viżibbli ħafna.

Tista 'wkoll tiskopri anomaliji fl-istatistika "floating". Xi tfisser? PostgreSQL għandu skedar tal-mistoqsijiet b'saħħtu ħafna u tajjeb ħafna. U l-iżviluppaturi jiddedikaw ħafna ħin għall-iżvilupp tiegħu. Kif jaħdem? Sabiex jagħmel pjanijiet tajbin, PostgreSQL jiġbor statistika dwar id-distribuzzjoni tad-dejta f'tabelli f'ċertu intervall ta 'ħin u b'ċerta frekwenza. Dawn huma l-aktar valuri komuni: in-numru ta 'valuri uniċi, informazzjoni dwar NULL fit-tabella, ħafna informazzjoni.

Ibbażat fuq din l-istatistika, il-pjanifikatur jibni diversi mistoqsijiet, jagħżel l-aħjar waħda, u juża dan il-pjan ta 'mistoqsija biex jesegwixxi l-mistoqsija innifsu u jirritorna d-dejta.

U jiġri li l-istatistika "float". Id-dejta dwar il-kwalità u l-kwantità nbidlet b'xi mod fit-tabella, iżda l-istatistika ma nġabretx. U l-pjanijiet iffurmati jistgħu ma jkunux ottimali. U jekk il-pjanijiet tagħna jirriżultaw li mhumiex ottimali abbażi tal-monitoraġġ miġbur, ibbażat fuq it-tabelli, inkunu nistgħu naraw dawn l-anomaliji. Pereżempju, x'imkien id-dejta nbidlet kwalitattivament u minflok l-indiċi, beda jintuża pass sekwenzjali mit-tabella, i.e. jekk mistoqsija teħtieġ li tirritorna biss 100 ringiela (hemm limitu ta '100), allura se ssir tfittxija sħiħa għal din il-mistoqsija. U dan dejjem ikollu effett ħażin ħafna fuq il-prestazzjoni.

U nistgħu naraw dan fil-monitoraġġ. U diġà ħares lejn din il-mistoqsija, mexxi spjega għaliha, iġbor statistika, ibni indiċi addizzjonali ġdid. U diġà tirrispondi għal din il-problema. Huwa għalhekk li huwa importanti.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Eżempju ieħor ta' monitoraġġ. Naħseb li ħafna nies għarfuh għax huwa popolari ħafna. Min jużah fil-proġetti tagħhom Prometheus? Min juża dan il-prodott flimkien ma' Prometheus? Il-fatt hu li fir-repożitorju standard ta 'dan il-monitoraġġ hemm dashboard biex taħdem ma' PostgreSQL - postgres_exporter Prometheus. Iżda hemm dettall wieħed ħażin.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Hemm diversi graffs. U bytes huma indikati bħala unità, jiġifieri hemm 5 graphs. Dawn huma Daħħal id-dejta, Aġġorna d-dejta, Ħassar id-dejta, Iġib id-dejta u Irritorna d-dejta. Il-kejl tal-unità huwa bytes. Iżda l-ħaġa hija li l-istatistika f'PostgreSQL tirritorna data f'tuple (ringieli). U, għalhekk, dawn il-graffs huma mod tajjeb ħafna biex tissottovaluta l-ammont tax-xogħol tiegħek diversi drabi, għexieren ta 'drabi, għaliex tuple mhuwiex byte, tuple huwa string, huwa ħafna bytes u huwa dejjem ta' tul varjabbli. Jiġifieri, il-kalkolu tat-tagħbija tax-xogħol f'bytes bl-użu ta 'tuples huwa kompitu mhux realistiku jew diffiċli ħafna. Għalhekk, meta tuża dashboard jew monitoraġġ integrat, huwa dejjem importanti li tifhem li taħdem b'mod korrett u tirritornalek dejta evalwata b'mod korrett.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Kif tikseb statistika fuq dawn it-tabelli? Għal dan il-għan, PostgreSQL għandu ċerta familja ta 'fehmiet. U l-fehma ewlenija hija pg_stat_user_tables. User_tables - dan ifisser tabelli maħluqa f'isem l-utent. B'kuntrast, hemm fehmiet tas-sistema li jintużaw minn PostgreSQL innifsu. U hemm tabella fil-qosor Alltables, li tinkludi kemm dawk tas-sistema kif ukoll dawk tal-utent. Tista 'tibda minn kull wieħed minnhom li tixtieq l-aktar.

Billi tuża l-oqsma ta' hawn fuq tista' tistma n-numru ta' inserzjonijiet, aġġornamenti u tħassir. L-eżempju ta 'dashboard li użajt juża dawn l-oqsma biex jevalwa l-karatteristiċi ta' ammont ta 'xogħol. Għalhekk, nistgħu wkoll nibnu fuqhom. Iżda ta 'min jiftakar li dawn huma tuples, mhux bytes, għalhekk ma nistgħux nagħmluh biss f'bytes.

Ibbażat fuq din id-dejta, nistgħu nibnu l-hekk imsejħa tabelli TopN. Per eżempju, Top-5, Top-10. U tista 'ssegwi dawk l-imwejjed sħan li huma riċiklati aktar minn oħrajn. Per eżempju, 5 tabelli "sħan" għall-inserzjoni. U bl-użu ta 'dawn it-tabelli TopN aħna nevalwaw il-piż tax-xogħol tagħna u nistgħu nevalwaw il-fqigħ ta' xogħol wara kwalunkwe rilaxx, aġġornamenti u skjeramenti.

Huwa wkoll importanti li jiġi evalwat id-daqs tat-tabella, minħabba li xi drabi l-iżviluppaturi jxerrdu karatteristika ġdida, u t-tabelli tagħna jibdew jintefħu fid-daqsijiet kbar tagħhom, minħabba li ddeċidew li jżidu ammont addizzjonali ta 'dejta, iżda ma bassrux kif dan kien se jaffettwaw id-daqs tad-database. Każijiet bħal dawn jiġu wkoll sorpriżi għalina.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

U issa mistoqsija żgħira għalik. Liema mistoqsija tqum meta tinnota t-tagħbija fuq is-server tad-database tiegħek? X'inhi l-mistoqsija li jmiss li għandek?

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Iżda fil-fatt il-mistoqsija tqum kif ġej. Liema talbiet tikkawża t-tagħbija? Jiġifieri, mhuwiex interessanti li wieħed iħares lejn il-proċessi li huma kkawżati mit-tagħbija. Huwa ċar li jekk il-host ikollu database, allura d-database qed taħdem hemm u huwa ċar li d-databases biss se jintremew hemmhekk. Jekk niftħu Top, naraw hemm lista ta 'proċessi f'PostgreSQL li qed jagħmlu xi ħaġa. Mhux se jkun ċar minn Fuq x’qed jagħmlu.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Għaldaqstant, għandek bżonn issib dawk il-mistoqsijiet li jikkawżaw l-ogħla tagħbija, minħabba li l-irfinar tal-mistoqsijiet, bħala regola, jagħti aktar profitt milli l-irfinar tal-PostgreSQL jew il-konfigurazzjoni tas-sistema operattiva, jew saħansitra l-irfinar tal-hardware. Skont l-istima tiegħi, dan huwa bejn wieħed u ieħor 80-85-90%. U dan isir ħafna aktar malajr. Huwa aktar mgħaġġel li tikkoreġi talba milli tikkoreġi l-konfigurazzjoni, iskeda bidu mill-ġdid, speċjalment jekk id-database ma tistax terġa 'tiġi startjata, jew iżżid hardware. Huwa aktar faċli li tikteb mill-ġdid il-mistoqsija x'imkien jew iżżid indiċi biex tikseb riżultat aħjar minn din il-mistoqsija.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky
Għaldaqstant, huwa meħtieġ li jiġu mmonitorjati t-talbiet u l-adegwatezza tagħhom. Ejja nieħdu eżempju ieħor ta 'monitoraġġ. U hawn ukoll jidher li hemm monitoraġġ eċċellenti. Hemm informazzjoni dwar ir-replikazzjoni, hemm informazzjoni dwar it-throughput, l-imblukkar, l-użu tar-riżorsi. Kollox tajjeb, iżda m'hemm l-ebda informazzjoni dwar it-talbiet. Mhuwiex ċar liema mistoqsijiet qed jaħdmu fid-database tagħna, kemm qed jaħdmu, kemm huma dawn il-mistoqsijiet. Dejjem jeħtieġ li jkollna din l-informazzjoni fil-monitoraġġ tagħna.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

U biex niksbu din l-informazzjoni nistgħu nużaw il-modulu pg_stat_statements. Ibbażat fuqha, tista 'tibni varjetà ta' graffs. Pereżempju, tista' tikseb informazzjoni dwar il-mistoqsijiet l-aktar frekwenti, jiġifieri, fuq dawk il-mistoqsijiet li jsiru l-aktar spiss. Iva, wara l-iskjeramenti huwa wkoll utli ħafna li tħares lejha u tifhem jekk hemmx xi żieda fit-talbiet.

Tista' tissorvelja l-itwal mistoqsijiet, jiġifieri dawk il-mistoqsijiet li jieħdu l-itwal biex jitlestew. Huma jimxu fuq il-proċessur, huma jikkunsmaw I/O. Nistgħu wkoll nevalwaw dan billi tuża l-oqsma total_time, mean_time, blk_write_time u blk_read_time.

Nistgħu nevalwaw u nissorveljaw l-itqal talbiet f'termini ta 'użu tar-riżorsi, dawk li jaqraw minn disk, li jaħdmu bil-memorja, jew, għall-kuntrarju, joħolqu xi tip ta' tagħbija ta 'kitba.

Nistgħu nevalwaw it-talbiet l-aktar ġenerużi. Dawn huma l-mistoqsijiet li jirritornaw numru kbir ta’ ringieli. Pereżempju, din tista' tkun xi talba fejn insew jistabbilixxu limitu. U sempliċement jirritorna l-kontenut kollu tat-tabella jew tal-mistoqsija fuq it-tabelli mistoqsija.

U tista 'wkoll tissorvelja mistoqsijiet li jużaw fajls temporanji jew tabelli temporanji.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky
U għad għandna proċessi fl-isfond. Il-proċessi tal-isfond huma primarjament punti ta 'kontroll jew jissejħu wkoll punti ta' kontroll, dawn huma autovacuum u replikazzjoni.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Eżempju ieħor ta' monitoraġġ. Hemm tab Manutenzjoni fuq ix-xellug, mur fiha u nittama li tara xi ħaġa utli. Imma hawnhekk huwa biss il-ħin tal-operat tal-vakwu u l-ġbir tal-istatistika, xejn aktar. Din hija informazzjoni fqira ħafna, għalhekk dejjem jeħtieġ li jkollna informazzjoni dwar kif jaħdmu l-proċessi tal-isfond fid-database tagħna u jekk hemmx xi problemi mix-xogħol tagħhom.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Meta nħarsu lejn il-punti ta 'kontroll, għandna niftakru li l-punti ta' kontroll flush paġni maħmuġin miż-żona tal-memorja sharded għad-disk, imbagħad joħolqu punt ta 'kontroll. U dan il-punt ta 'kontroll jista' mbagħad jintuża bħala post għall-irkupru jekk PostgreSQL ġie mitmum f'daqqa f'emerġenza.

Għaldaqstant, sabiex titlaħlaħ il-paġni "maħmuġin" kollha fuq id-disk, trid tagħmel ċertu ammont ta 'kitba. U, bħala regola, fuq sistemi b'ammonti kbar ta 'memorja, dan huwa ħafna. U jekk nagħmlu punti ta 'kontroll spiss ħafna f'intervall qasir, allura l-prestazzjoni tad-disk tinżel b'mod sinifikanti ħafna. U t-talbiet tal-klijenti se jbatu minn nuqqas ta 'riżorsi. Se jikkompetu għar-riżorsi u jonqoshom il-produttività.

Għaldaqstant, permezz ta 'pg_stat_bgwriter bl-użu tal-oqsma speċifikati nistgħu nissorveljaw in-numru ta' punti ta 'kontroll li jseħħu. U jekk ikollna ħafna punti ta 'kontroll fuq ċertu perjodu ta' żmien (f'10-15-20 minuta, f'nofs siegħa), pereżempju, 3-4-5, allura dan jista 'jkun diġà problema. U diġà għandek bżonn tfittex fid-database, tħares fil-konfigurazzjoni, x'jikkawża abbundanza bħal din ta 'punti ta' kontroll. Forsi hemm xi tip ta’ reġistrazzjoni kbira għaddejja. Diġà nistgħu nevalwaw il-piż tax-xogħol, għaliex diġà żidna graffs tal-piż tax-xogħol. Diġà nistgħu tweak il-parametri tal-punt ta 'kontroll u niżguraw li ma jaffettwawx ħafna l-prestazzjoni tal-mistoqsija.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Jien terġa 'lura għall-autovacuum għal darb'oħra għaliex hija ħaġa bħal din, kif għidt, li faċilment tista' żżid kemm il-prestazzjoni tad-disk kif ukoll tal-query, għalhekk huwa dejjem importanti li jiġi stmat l-ammont ta 'autovacuum.

In-numru ta' ħaddiema tal-awtovakwu fid-database huwa limitat. B'mod awtomatiku, hemm tlieta minnhom, allura jekk dejjem ikollna tliet ħaddiema li jaħdmu fid-database, dan ifisser li l-awtovakwu tagħna mhux ikkonfigurat, għandna bżonn ngħollu l-limiti, nirrevedu s-settings tal-awtovakwu u nidħlu fil-konfigurazzjoni.
Huwa importanti li nevalwaw liema ħaddiema tal-vakwu għandna. Jew ġie mniedi mill-utent, id-DBA daħal u nediet manwalment xi tip ta 'vakwu, u dan ħoloq tagħbija. Għandna xi tip ta' problema. Jew dan huwa n-numru ta 'vacuums li ħoll il-counter tat-tranżazzjonijiet. Għal xi verżjonijiet ta' PostgreSQL dawn huma vacuums tqal ħafna. U jistgħu faċilment iżidu l-prestazzjoni minħabba li jaqraw it-tabella kollha, jiskennjaw il-blokki kollha f'dik it-tabella.

U, ovvjament, it-tul ta 'vacuums. Jekk ikollna vacuums fit-tul li jdumu għal żmien twil ħafna, allura dan ifisser li aħna għal darb'oħra jeħtieġ li nagħtu attenzjoni lill-konfigurazzjoni tal-vakwu u forsi nikkunsidraw mill-ġdid is-settings tagħha. Minħabba li tista 'tqum sitwazzjoni meta l-vakwu jaħdem fuq il-mejda għal żmien twil (3-4 sigħat), iżda matul iż-żmien li l-vakwu kien qed jaħdem, ammont kbir ta' ringieli mejta rnexxielhom jakkumulaw mill-ġdid fit-tabella. U hekk kif jitlesta l-vakwu, jeħtieġ li jerġa 'jvakwu din it-tabella. U naslu għal sitwazzjoni - vakwu bla tarf. U f'dan il-każ, il-vakwu ma jlaħħaqx max-xogħol tiegħu, u t-tabelli gradwalment jibdew jintefħu fid-daqs, għalkemm il-volum ta 'dejta utli fih jibqa' l-istess. Għalhekk, waqt vacuums twal, aħna dejjem inħarsu lejn il-konfigurazzjoni u nippruvaw ottimizzawha, iżda fl-istess ħin sabiex il-prestazzjoni tat-talbiet tal-klijenti ma tbatix.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Illum il-ġurnata prattikament m'hemm l-ebda installazzjoni PostgreSQL li m'għandhiex replikazzjoni tal-istreaming. Ir-replikazzjoni hija l-proċess ta 'ċaqliq tad-dejta minn kaptan għal replika.

Ir-replikazzjoni f'PostgreSQL issir permezz ta 'log tat-tranżazzjonijiet. Il-wizard jiġġenera log tat-tranżazzjonijiet. Ir-reġistru tat-tranżazzjonijiet jivvjaġġa fuq il-konnessjoni tan-netwerk għar-replika, u mbagħad jiġi riprodott fuq ir-replika. Huwa sempliċi.

Għaldaqstant, il-veduta pg_stat_replication tintuża biex timmonitorja d-dewmien tar-replikazzjoni. Iżda mhux kollox huwa sempliċi magħha. Fil-verżjoni 10, il-veduta għaddiet minn diversi bidliet. L-ewwelnett, xi oqsma ngħataw isem ġdid. U xi oqsma ġew miżjuda. Fil-verżjoni 10, dehru oqsma li jippermettulek tistma d-dewmien tar-replikazzjoni f'sekondi. Huwa komdu ħafna. Qabel il-verżjoni 10, kien possibbli li jiġi stmat id-dewmien tar-replikazzjoni f'bytes. Din l-għażla tibqa 'fil-verżjoni 10, jiġifieri tista' tagħżel dak li huwa aktar konvenjenti għalik - istima d-dewmien f'bytes jew istima d-dewmien f'sekondi. Ħafna nies jagħmlu t-tnejn.

Iżda madankollu, sabiex tevalwa d-dewmien tar-replikazzjoni, trid tkun taf il-pożizzjoni tal-ġurnal fit-tranżazzjoni. U dawn il-pożizzjonijiet tar-reġistru tat-tranżazzjonijiet huma eżattament fil-vista pg_stat_replication. Relattivament, nistgħu nieħdu żewġ punti fir-reġistru tat-tranżazzjonijiet billi tuża l-funzjoni pg_xlog_location_diff(). Ikkalkula d-delta bejniethom u tikseb id-dewmien tar-replikazzjoni f'bytes. Huwa konvenjenti ħafna u sempliċi.

Fil-verżjoni 10, din il-funzjoni ngħatat isem ġdid għal pg_wal_lsn_diff(). B'mod ġenerali, fil-funzjonijiet, fehmiet u utilitajiet kollha fejn dehret il-kelma "xlog", ġiet sostitwita bil-valur "wal". Dan japplika kemm għall-opinjonijiet kif ukoll għall-funzjonijiet. Din hija tali innovazzjoni.

Barra minn hekk, fil-verżjoni 10, ġew miżjuda linji li juru speċifikament id-dewmien. Dawn huma write lag, flush lag, replay lag. Jiġifieri, huwa importanti li tissorvelja dawn l-affarijiet. Jekk naraw li għandna dewmien tar-replikazzjoni, allura rridu ninvestigaw għaliex deher, minn fejn ġie u nirranġaw il-problema.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Kważi kollox huwa fl-ordni bil-metriċi tas-sistema. Meta jibda kwalunkwe monitoraġġ, jibda bil-metriċi tas-sistema. Dan huwa r-rimi ta 'proċessuri, memorja, tpartit, netwerk u disk. Madankollu, ħafna parametri mhumiex hemm awtomatikament.

Jekk kollox huwa fl-ordni bil-proċess ta 'riċiklaġġ, allura hemm problemi bir-riċiklaġġ tad-disk. Bħala regola, l-iżviluppaturi tal-monitoraġġ iżidu informazzjoni dwar it-throughput. Jista 'jkun f'iops jew bytes. Iżda jinsew il-latency u l-użu tal-apparat tad-disk. Dawn huma parametri aktar importanti li jippermettulna nevalwaw kemm huma mgħobbija d-diski tagħna u kemm huma bil-mod. Jekk ikollna latency għolja, allura dan ifisser li hemm xi problemi bid-diski. Jekk ikollna utilizzazzjoni għolja, dan ifisser li d-diski mhux qed ilaħħqu. Dawn huma karatteristiċi aħjar minn throughput.

Barra minn hekk, din l-istatistika tista' tinkiseb ukoll mis-sistema tal-fajls /proc, kif isir għall-proċessuri tar-riċiklaġġ. Ma nafx għaliex din l-informazzjoni mhix miżjuda mal-monitoraġġ. Iżda madankollu, huwa importanti li jkollok dan fil-monitoraġġ tiegħek.

L-istess japplika għall-interfaces tan-netwerk. Hemm informazzjoni dwar il-fluss tan-netwerk f'pakketti, f'bytes, iżda madankollu m'hemm l-ebda informazzjoni dwar il-latenza u l-ebda informazzjoni dwar l-utilizzazzjoni, għalkemm din hija wkoll informazzjoni utli.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Kwalunkwe monitoraġġ għandu żvantaġġi. U irrispettivament minn liema tip ta 'monitoraġġ tieħu, dejjem mhux se jilħaq xi kriterji. Iżda madankollu, qed jiżviluppaw, qed jiżdiedu karatteristiċi ġodda u affarijiet ġodda, għalhekk agħżel xi ħaġa u lestiha.

U biex tispiċċa, trid dejjem ikollok idea ta’ xi tfisser l-istatistika pprovduta u kif tista’ tużahom biex issolvi l-problemi.

U ftit punti ewlenin:

  • Dejjem għandek tissorvelja d-disponibbiltà u jkollok dashboards sabiex tkun tista’ tivvaluta malajr li kollox huwa fl-ordni mad-database.
  • Dejjem jeħtieġ li jkollok idea ta' liema klijenti qed jaħdmu mad-database tiegħek sabiex tneħħi l-klijenti ħżiena u tkeċċihom.
  • Huwa importanti li jiġi evalwat kif dawn il-klijenti jaħdmu bid-dejta. Jeħtieġ li jkollok idea dwar l-ammont tax-xogħol tiegħek.
  • Huwa importanti li jiġi evalwat kif dan ix-xogħol huwa ffurmat, bl-għajnuna ta 'liema mistoqsijiet. Tista 'tevalwa l-mistoqsijiet, tista' tottimizzahom, tiffatturahom mill-ġdid, tibni indiċi għalihom. Huwa importanti ħafna.
  • Il-proċessi tal-isfond jistgħu jkollhom impatt negattiv fuq it-talbiet tal-klijenti, għalhekk huwa importanti li tissorvelja li ma jkunux qed jużaw wisq riżorsi.
  • Il-metriċi tas-sistema jippermettulek tagħmel pjanijiet għall-iskala u żżid il-kapaċità tas-servers tiegħek, għalhekk huwa importanti li ssegwihom u tevalwahom ukoll.

Bażi tal-monitoraġġ PostgreSQL. Alexey Lesovsky

Jekk inti interessat f'dan is-suġġett, allura tista 'ssegwi dawn il-links.
http://bit.do/stats_collector - din hija dokumentazzjoni uffiċjali mill-kollettur tal-istatistika. Hemm deskrizzjoni tal-fehmiet statistiċi kollha u deskrizzjoni tal-oqsma kollha. Tista' taqrahom, tifhimhom u tanalizzahom. U bbażat fuqhom, ibni l-graffs tiegħek u żidhom mal-monitoraġġ tiegħek.

Eżempji ta' talbiet:
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

Dan huwa r-repożitorju korporattiv tagħna u tiegħi stess. Fihom mistoqsijiet ta' eżempju. M'hemm l-ebda mistoqsija mill-għażla* mis-serje hemmhekk. Diġà hemm mistoqsijiet lesti b'joins, bl-użu ta' funzjonijiet interessanti li jippermettulek iddawwar in-numri mhux maħduma f'valuri li jinqraw u konvenjenti, jiġifieri dawn huma bytes, ħin. Tista' tiġborhom, tħares lejhom, tanalizzahom, iżżidhom mal-monitoraġġ tiegħek, tibni l-monitoraġġ tiegħek ibbażat fuqhom.

mistoqsijiet

Mistoqsija: Inti għedt li mhux se tirreklama ditti, imma għadni kurjuż - x'tip ta' dashboards tuża fil-proġetti tiegħek?
Tweġiba: Tvarja. Jiġri li naslu għand klijent u hu diġà għandu l-monitoraġġ tiegħu stess. U aħna nagħtu parir lill-klijent dwar dak li jeħtieġ li jiżdied mal-monitoraġġ tagħhom. L-agħar sitwazzjoni hija ma’ Zabbix. Minħabba li m'għandux il-ħila li jibni TopN graphs. Aħna nfusna nużaw Okmeter, għax konna qed nikkonsultaw ma' dawn il-ġuvini dwar il-monitoraġġ. Huma mmonitorjaw PostgreSQL abbażi tal-ispeċifikazzjonijiet tekniċi tagħna. Qed nikteb il-proġett tiegħi għall-annimali domestiċi, li jiġbor dejta permezz ta' Prometheus u jirrendiha grafana. Il-kompitu tiegħi huwa li noħloq l-esportatur tiegħi stess fi Prometheus u mbagħad nirrendi kollox fi Grafana.

Mistoqsija: Hemm xi analogi tar-rapporti AWR jew... aggregazzjoni? Taf dwar xi ħaġa bħal din?
Tweġiba: Iva, naf x'inhu AWR, hija ħaġa friska. Bħalissa hemm varjetà ta 'roti li jimplimentaw bejn wieħed u ieħor il-mudell li ġej. F'xi intervall ta 'żmien, xi linji bażi jinkitbu fl-istess PostgreSQL jew f'ħażna separata. Tista 'google minnhom fuq l-Internet, huma hemm. Wieħed mill-iżviluppaturi ta 'tali ħaġa huwa bilqiegħda fuq il-forum sql.ru fil-ħajt PostgreSQL. Tista' taqbadh hemm. Iva, hemm affarijiet bħal dawn, jistgħu jintużaw. Barra minn hekk pgCenter Qed nikteb ukoll xi ħaġa li tippermettilek tagħmel l-istess ħaġa.

PS1 Jekk qed tuża postgres_exporter, liema dashboard qed tuża? Hemm diversi minnhom. Huma diġà skaduti. Forsi l-komunità se toħloq mudell aġġornat?

PS2 Imneħħi pganalyze minħabba li hija offerta SaaS proprjetarja li tiffoka fuq il-monitoraġġ tal-prestazzjoni u suġġerimenti ta 'rfinar awtomatizzati.

Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.

Liema monitoraġġ postgresql self-hosted (b'dashboard) tqis l-aħjar?

  • 30,0%Zabbix + żidiet minn Alexey Lesovsky jew zabbix 4.4 jew libzbxpgsql + zabbix libzbxpgsql + zabbix3

  • 0,0%https://github.com/lesovsky/pgcenter0

  • 0,0%https://github.com/pg-monz/pg_monz0

  • 20,0%https://github.com/cybertec-postgresql/pgwatch22

  • 20,0%https://github.com/postgrespro/mamonsu2

  • 0,0%https://www.percona.com/doc/percona-monitoring-and-management/conf-postgres.html0

  • 10,0%pganalyze huwa SaaS proprjetarju - ma nistax inħassarha1

  • 10,0%https://github.com/powa-team/powa1

  • 0,0%https://github.com/darold/pgbadger0

  • 0,0%https://github.com/darold/pgcluu0

  • 0,0%https://github.com/zalando/PGObserver0

  • 10,0%https://github.com/spotify/postgresql-metrics1

Ivvutaw 10 utent. 26 utenti astjenew.

Sors: www.habr.com

Żid kumment