Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Ke fana ka maikutlo a hore u bale sengoloa sa tlaleho ea Alexey Lesovsky ho tsoa ho Data Egret "Motheo oa ho beha leihlo PostgreSQL"

Tlalehong ena, Alexey Lesovsky o tla bua ka lintlha tsa bohlokoa tsa lipalo-palo tsa post-gress, seo li se bolelang, le hore na ke hobane'ng ha li lokela ho ba teng ho beha leihlo; mabapi le hore na ke li-graph tse lokelang ho ba teng tlhahlobisong, mokhoa oa ho li kenyelletsa le mokhoa oa ho li hlalosa. Tlaleho e tla ba molemo ho batsamaisi ba database, balaoli ba sistimi le bahlahisi ba nang le thahasello ea ho rarolla mathata a Postgres.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Lebitso la ka ke Alexey Lesovsky, ke emela khampani ea Data Egret.

Mantsoe a seng makae ka 'na. Ke qalile khale ke le motsamaisi oa tsamaiso.

Ke ne ke tsamaisa mefuta eohle ea mefuta e fapaneng ea litsamaiso tsa Linux, ke sebetsa linthong tse sa tšoaneng tse amanang le Linux, ke hore virtualization, monitoring, work with proxies, joalo-joalo Empa ka nako e 'ngoe ke ile ka qala ho sebetsa haholoanyane ka li-database, PostgreSQL. Ke ne ke mo rata haholo. 'Me ka nako e' ngoe ke ile ka qala ho sebetsa PostgreSQL boholo ba nako ea ka ea ho sebetsa. Kahoo butle-butle ke ile ka fetoha PostgreSQL DBA.

'Me ho pholletsa le mosebetsi oa ka, esale ke thahasella lihlooho tsa lipalo-palo, tlhokomelo, le telemetry. 'Me ha ke ne ke le mookameli oa tsamaiso, ke ne ke sebetsa haufi-ufi le Zabbix. Mme ke ngotse sete e nyane ea mengolo joalo zabbix-extensions. O ne a tumme haholo mehleng ea hae. 'Me moo ho ne ho khoneha ho beha leihlo lintho tsa bohlokoa tse fapaneng haholo, eseng Linux feela, empa le likarolo tse fapaneng.

Hona joale ke sebetsa ho PostgreSQL. Ke se ke ntse ke ngola ntho e 'ngoe e u lumellang hore u sebetse le lipalo-palo tsa PostgreSQL. E bitsoa pgCenter (sengoloa sa Habré - Lipalo-palo tsa post-gress ntle le methapo le tsitsipano).

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Mongolo o monyane oa selelekela. Ke maemo afe ao bareki ba rona, bareki ba rona ba nang le ona? Ho na le mofuta o itseng oa kotsi o amanang le database. ’Me ha polokelo ea boitsebiso e se e tsosolositsoe, hlooho ea lefapha kapa hlooho ea ntšetso-pele ea tla ’me e re: “Metsoalle, re lokela ho beha polokelo leihlo, hobane ho na le ntho e mpe e etsahetseng ’me re lokela ho thibela sena hore se se ke sa etsahala nakong e tlang.” Mona ho qala ts'ebetso e khahlisang ea ho khetha sistimi ea ho beha leihlo kapa ho ikamahanya le sistimi e teng ea ho beha leihlo hore o tsebe ho beha leihlo database ea hau - PostgreSQL, MySQL kapa tse ling. 'Me basebetsi-'moho ba qala ho fana ka maikutlo: "Ke utloile hore ho na le database e joalo. Ha re e sebeliseng." Basebetsi-'moho ba qala ho qabana. Qetellong ho ile ha fumaneha hore re khetha mofuta o mong oa database, empa tlhahlobo ea PostgreSQL e hlahisoa ho eona e le mpe 'me kamehla re tlameha ho eketsa ho hong. Nka lipolokelo tse ling ho tsoa ho GitHub, u li kopanye, u fetole lingoliloeng, 'me u li etse ka tsela e itseng. 'Me qetellong e qetella e le mofuta o mong oa mosebetsi oa matsoho.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Ka hona, puong ena ke tla leka ho u fa tsebo ea ho khetha ho beha leihlo eseng feela bakeng sa PostgreSQL, empa le bakeng sa database. Le ho u fa tsebo e tla u lumella hore u phethe tlhokomelo ea hau e le hore u fumane molemo o itseng ho eona, e le hore u ka shebella database ea hau ka molemo, e le ho thibela hang-hang maemo leha e le afe a tlang a tšohanyetso a ka hlahang.

'Me mehopolo e tla ba tlalehong ena e ka fetoloa ka kotloloho ho database efe kapa efe, ekaba DBMS kapa noSQL. Ka hona, ha ho na PostgreSQL feela, empa ho tla ba le litlolo tse ngata tsa ho etsa sena ho PostgreSQL. Ho tla ba le mehlala ea lipotso, mehlala ea mekhatlo eo PostgreSQL e nang le eona bakeng sa ho beha leihlo. 'Me haeba DBMS ea hau e na le lintho tse tšoanang tse u lumellang hore u li behe tlhokomelong, u ka boela ua li fetola, ua li eketsa' me ho tla ba molemo.

Metheo ea ho beha leihlo PostgreSQL. Alexey LesovskyHa ke na ho ba tlalehong
bua ka mokhoa oa ho tsamaisa le ho boloka metrics. Ha ke na ho bua letho ka ho lokisa data ka morao le ho e hlahisa ho mosebelisi. 'Me nke ke ka bua letho ka tlhokomeliso.
Empa ha pale e ntse e tsoela pele, ke tla bonts'a li-screenshots tse fapaneng tsa ho beha leihlo le ho li nyatsa ka tsela e itseng. Leha ho le joalo, ke tla leka ho se rehe mabitso e le hore ke se ke ka etsa papatso kapa khahlano le papatso bakeng sa lihlahisoa tsena. Ka hona, liketsahalo tsohle tse iketsahallang feela ha li iketsahalle feela 'me li tloheletsoe monahanong oa hau.
Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky
Pele, a re boneng hore na ho beha leihlo ke eng. Tlhokomelo ke ntho ea bohlokoa haholo ho ba le. E mong le e mong o utlwisisa sena. Empa ka nako e ts'oanang, ho beha leihlo ha ho amane le sehlahisoa sa khoebo ebile ha ho ame phaello ea k'hamphani ka kotloloho, ka hona, nako e lula e abeloa ho beha leihlo ka mokhoa o setseng. Haeba re na le nako, ebe rea etsa monitoring; haeba re sena nako, ho lokile, re tla e beha kamorao, ka letsatsi le leng re tla khutlela mesebetsing ena.

Ka hona, ho tsoa ts'ebetsong ea rona, ha re fihla ho bareki, ho beha leihlo hangata ha hoa phethahala ebile ha ho na lintho tse khahlisang tse ka re thusang ho etsa mosebetsi o betere ka database. 'Me ka hona ho beha leihlo kamehla ho hloka ho phethoa.

Li-database ke lintho tse rarahaneng tse hlokang ho beoa leihlo, hobane li-database ke polokelo ea tlhahisoleseling. Mme tlhahisoleseling e bohlokoa haholo bakeng sa k'hamphani; e ke ke ea lahleha ka tsela efe kapa efe. Empa ka nako e ts'oanang, li-database ke likarolo tse rarahaneng tsa software. Li na le palo e kholo ea likarolo. 'Me tse ngata tsa likarolo tsena li hloka ho hlahlojoa.

Metheo ea ho beha leihlo PostgreSQL. Alexey LesovskyHaeba re bua ka ho toba ka PostgreSQL, joale e ka emeloa ka mokhoa oa moralo o nang le palo e kholo ea likarolo. Likarolo tsena lia kopana. 'Me ka nako e ts'oanang, PostgreSQL e na le seo ho thoeng ke Stats Collector subsystem, e leng se u lumellang ho bokella lipalo-palo mabapi le ts'ebetso ea li-subsystems tsena le ho fana ka mofuta o itseng oa sebopeho ho mookameli kapa mosebedisi e le hore a bone lipalo-palo tsena.

Lipalopalo tsena li hlahisoa ka mokhoa o itseng oa mesebetsi le maikutlo. Li ka boela tsa bitsoa litafole. Ke hore, ka ho sebelisa psql client ea kamehla, o ka hokela ho database, u khetha mesebetsi le maikutlo ana, 'me u fumane linomoro tse itseng mabapi le ts'ebetso ea li-subsystem tsa PostgreSQL.

U ka eketsa linomoro tsena ho sistimi eo u e ratang haholo ea ho beha leihlo, ho taka li-graph, ho eketsa mesebetsi le ho fumana litlhahlobo ha nako e ntse e ea.

Empa tlalehong ena nke ke ka akaretsa mesebetsi ena kaofela ka botlalo, hobane e ka nka letsatsi lohle. Ke tla bua ka lintho tse peli, tse tharo kapa tse nne, 'me ke u bolelle hore na li thusa joang ho etsa hore tlhahlobo e be betere.
Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky
'Me haeba re bua ka ts'ebetso ea database, joale ke eng e lokelang ho behoa leihlo? Pele ho tsohle, re hloka ho beha leihlo ho fumaneha, hobane database ke ts'ebeletso e fanang ka phihlello ea data ho bareki mme re hloka ho beha leihlo ho fumaneha, hape re fane ka tse ling tsa litšobotsi tsa eona tsa boleng le bongata.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Re boetse re hloka ho beha leihlo bareki ba hokahantsoeng le database ea rona, hobane e ka ba bareki ba tloaelehileng le bareki ba kotsi ba ka senyang polokelong ea litaba. Ba boetse ba hloka ho beoa leihlo le ho lateloa mesebetsi ea bona.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Ha bareki ba hokahana le database, ho hlakile hore ba qala ho sebetsa le data ea rona, kahoo re hloka ho beha leihlo hore na bareki ba sebetsa joang ka data: ka litafole life, le ho isa tekanyong e nyane, ka li-index life. Ke hore, re hloka ho lekola boima ba mosebetsi bo entsoeng ke bareki ba rona.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Empa mosebetsi o mongata o boetse o na le, ehlile, likopo. Likopo li hokahana le database, li fihlella data li sebelisa lipotso, kahoo ho bohlokoa ho lekola hore na re na le lipotso life sebakeng sa polokelo ea litaba, ho lekola ho lekana ha tsona, hore ha lia ngoloa ka mokhoa o fosahetseng, hore likhetho tse ling li hloka ho ngoloa hape le ho etsoa e le hore li sebetse kapele. le ka tshebetso e betere.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Mme kaha re bua ka database, database e lula e le lits'ebetso tsa morao-rao. Mekhoa ea morao-rao e thusa ho boloka ts'ebetso ea database e le boemong bo botle, kahoo ba hloka palo e itseng ea lisebelisoa hore ba sebetse. 'Me ka nako e ts'oanang, li ka kopana le lisebelisoa tsa kopo ea bareki, kahoo mekhoa e meharo e ka ama ts'ebetso ea likopo tsa bareki ka kotloloho. Ka hona, li boetse li hloka ho beoa leihlo le ho lateloa e le hore ho se be le likhothaletso mabapi le lits'ebetso tsa morao-rao.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

'Me tsena tsohle ho latela tlhahlobo ea database li ntse li le ho metric ea sistimi. Empa ha ho nahanoa hore boholo ba lisebelisoa tsa rona li fetela marung, metrics ea sistimi ea moamoheli ka mong e lula e le ka morao. Empa ho li-database li ntse li le bohlokoa, 'me hoa hlokahala ho beha leihlo metrics ea sistimi.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Ntho e 'ngoe le e' ngoe e tsamaea hantle ka metrics ea sistimi, lits'ebetso tsohle tsa sejoale-joale tsa ho beha leihlo li se li ntse li tšehetsa metrics ena, empa ka kakaretso, likarolo tse ling li ntse li sa lekana 'me lintho tse ling li hloka ho eketsoa. Ke tla boela ke li ame, ho tla ba le li-slide tse 'maloa ka tsona.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky
Ntlha ea pele ea moralo ke phihlello. Ho fihlella ke eng? Ho fumaneha kutloisisong ea ka ke bokhoni ba motheo oa likhokahano tsa lits'ebeletso, ke hore, setsi se phahamisitsoe, sona, joalo ka ts'ebeletso, se amohela likhokahano ho tsoa ho bareki. 'Me phihlello ena e ka lekoa ka litšobotsi tse itseng. Ho bonolo haholo ho hlahisa litšobotsi tsena ho li-dashboards.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky
E mong le e mong oa tseba hore na li-dashboard ke eng. Mona ke ha u ne u sheba skrineng eo tlhahisoleseling e hlokahalang e akaretsoang ho eona. 'Me u ka tseba hang-hang hore na ho na le bothata ho database kapa che.
Ka hona, boteng ba database le litšoaneleho tse ling tsa bohlokoa li lokela ho bonts'oa ka linako tsohle ho li-dashboard e le hore tlhahisoleseling ena e teng mme e fumanehe ho uena kamehla. Lintlha tse ling tse seng li ntse li thusa lipatlisisong tsa liketsahalo, ha ho batlisisoa maemo a mang a tšohanyetso, li se li hloka ho beoa li-dashboards tsa bobeli, kapa li patiloe lihokelong tsa drilldown tse lebisang lits'ebetsong tsa ho lekola batho ba bang.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Mohlala oa mokhoa o mong o tsebahalang oa ho beha leihlo. Ena ke sistimi e ntle haholo ea ho beha leihlo. O bokella lintlha tse ngata, empa ho ea ka pono ea ka, o na le maikutlo a makatsang a li-dashboards. Ho na le sehokelo sa "ho etsa dashboard". Empa ha o theha dashboard, o etsa lethathamo la likholomo tse peli, lethathamo la li-graph. 'Me ha u hloka ho sheba ntho e itseng, u qala ho tobetsa ka mouse, ho phalla, ho batla chate e lakatsehang. 'Me sena se nka nako, ke hore, ha ho na li-dashboards tse joalo. Ho na le lethathamo la lichate feela.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

U lokela ho eketsa eng ho li-dashboard tse? U ka qala ka tšobotsi e kang nako ea karabo. PostgreSQL e na le pono ea pg_stat_statements. E holofalitsoe ka ho sa feleng, empa ke e 'ngoe ea lipono tsa bohlokoa tsa sistimi tse lokelang ho lumelloa le ho sebelisoa kamehla. E boloka tlhahisoleseding mabapi le lipotso tsohle tse ntseng li etsoa polokelong ea boitsebiso.

Ka lebaka leo, re ka qala ho tloha tabeng ea hore re ka nka nako eohle ea ho phethahatsa likōpo tsohle 'me ra e arola ka palo ea likopo tse sebelisang masimo a ka holimo. Empa sena ke mocheso o tloaelehileng sepetlele. Re ka qala ho tsoa mafapheng a mang - bonyane nako ea ho botsa lipotso, boholo le bohare. Hape re ka haha ​​​​liperesente; PostgreSQL e na le mesebetsi e tsamaellanang bakeng sa sena. Mme re ka fumana linomoro tse bonts'ang nako ea karabelo ea database ea rona bakeng sa likopo tse seng li phethiloe, ke hore, ha re phethise kopo ea bohata 'khetha 1' mme re shebe nako ea karabelo, empa re sekaseka nako ea karabelo bakeng sa likopo tse seng li phethiloe ebe re hula. ebang ke setšoantšo se arohaneng, kapa re haha ​​kerafo e thehiloeng ho eona.

Ho bohlokoa hape ho beha leihlo palo ea liphoso tse hlahisoang hajoale ke sistimi. Mme bakeng sa sena o ka sebelisa pono ea pg_stat_database. Re tsepamisa maikutlo tabeng ea xact_rollback. Tšimo ena ha e bontše feela palo ea li-rollback tse hlahang ho database, empa hape e nahanela palo ea liphoso. Ha re bua, re ka bonts'a palo ena ho dashboard ea rona mme ra bona hore na re na le liphoso tse kae hajoale. Haeba ho na le liphoso tse ngata, joale lena ke lebaka le letle la ho sheba likutung le ho bona hore na ke liphoso tsa mofuta ofe le hore na ke hobane'ng ha li etsahala, ebe u kenya chelete le ho li rarolla.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

U ka eketsa ntho e kang Tachometer. Tsena ke palo ea litšebelisano ka motsotsoana le palo ea likopo motsotsoana. Ha re bua, u ka sebelisa linomoro tsena e le ts'ebetso ea hajoale ea database ea hau, 'me u bone hore na ho na le litlhoro tsa likopo, tlhoro ea litšebelisano, kapa, ka lehlakoreng le leng, hore na database e kentsoe ka tlase hobane li-backend tse ling li hlolehile. Ke habohlokoa ho lula u sheba setšoantšo sena 'me u hopole hore bakeng sa morero oa rona mofuta ona oa ts'ebetso o tloaelehile, empa litekanyetso tse ka holimo le tse ka tlase li se li ntse li le mofuta o mong oa mathata le o sa utloisiseheng, ho bolelang hore re hloka ho sheba hore na ke hobane'ng ha lipalo tsena li le teng. phahameng haholo.

Bakeng sa ho hakanya palo ea litšebelisano, re ka boela ra sheba pg_stat_database view. Re ka eketsa palo ea likopo le palo ea li-rollback mme ra fumana palo ea litšebelisano ka motsotsoana.

Na motho e mong le e mong oa utloisisa hore likopo tse 'maloa li ka kena khoebong e le' ngoe? Ka hona, TPS le QPS li fapane hanyane.

Palo ea likopo motsotsoana e ka fumanoa ho pg_stat_statements mme e bale feela kakaretso ea likopo tsohle tse phethiloeng. Ho hlakile hore re bapisa boleng ba hona joale le bo fetileng, re bo tlose, re fumane delta, 'me re fumane bongata.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

O ka eketsa metrics ha o lakatsa, e thusang ho lekola boteng ba database ea rona le ho beha leihlo hore na ho bile le nako ea ho theola.

E 'ngoe ea metrics ena ke nako. Empa uptime ho PostgreSQL e batla e qhekella. Ke tla u bolella lebaka. Ha PostgreSQL e se e qalile, nako ea ho qetela e qala ho tlaleha. Empa haeba ka nako e 'ngoe, mohlala, mosebetsi o mong o ne o sebetsa bosiu, 'molai oa OOM o ile a tla' me a felisa ts'ebetso ea bana ea PostgreSQL ka likhoka, joale tabeng ena PostgreSQL e felisa khokahanyo ea bareki bohle, e tsosolosa sebaka sa memori e sharded mme e qala ho hlaphoheloa. sebaka sa ho qetela sa tlhahlobo. 'Me le hoja ho hlaphoheloa hona ho tloha sebakeng sa ho hlahloba ho tšoarella, database ha e amohele likhokahano, ke hore, boemo bona bo ka hlahlojoa e le nako ea ho theoha. Empa k'hamera ea uptime e ke ke ea hlophisoa bocha, hobane e nka nako ea ho qala poso ho tloha motsotsong oa pele. Ka hona, maemo a joalo a ka qojoa.

U lokela hape ho beha leihlo palo ea basebetsi ba vacuum. Na motho e mong le e mong oa tseba hore na autovacuum ke eng ho PostgreSQL? Ena ke subsystem e khahlisang ho PostgreSQL. Lingoliloeng tse ngata li ngotsoe ka eena, litlaleho tse ngata li entsoe. Ho na le lipuisano tse ngata mabapi le vacuum le hore na e lokela ho sebetsa joang. Ba bangata ba nka hore ke bobe bo hlokahalang. Empa ke kamoo ho leng kateng. Ona ke mofuta oa analogue ea moqokelli oa lithōle o hloekisang mefuta e siiloeng ke nako ea mela e sa hlokeng tšebetso leha e le efe le ho lokolla sebaka litafoleng le li-index bakeng sa mela e mecha.

Ke hobane'ng ha u lokela ho e beha leihlo? Hobane sekheo seo ka linako tse ling se utloisa bohloko haholo. E ja lisebelisoa tse ngata mme likopo tsa bareki li qala ho utloa bohloko ka lebaka leo.

'Me e lokela ho behoa leihlo ka pg_stat_activity view, eo ke tla bua ka eona karolong e latelang. Pono ena e bonts'a tšebetso ea hajoale ho database. Mme ka ts'ebetso ena re ka lekola palo ea li-vacuum tse sebetsang hona joale. Re ka latela li-vacuums 'me ra bona hore haeba re fetisitse moeli, joale lena ke lebaka la ho sheba litlhophiso tsa PostgreSQL le ho ntlafatsa ts'ebetso ea vacuum ka tsela e itseng.

Ntho e 'ngoe ka PostgreSQL ke hore PostgreSQL e kula haholo ke litšebelisano tse telele. Haholo-holo ho tloha litšebelisanong tse leketlileng nako e telele 'me li sa etse letho. Sena ke se bitsoang stat idle-in-transaction. Ts'ebetso e joalo e tšoara linotlolo 'me e thibela vacuum ho sebetsa. 'Me ka lebaka leo, litafole li ruruha le ho eketseha ka boholo. 'Me lipotso tse sebetsanang le litafole tsena li qala ho sebetsa butle, hobane u hloka ho hula mefuta eohle ea mela ea khale ho tloha mohopolong ho ea ho disk le morao. Ka hona, nako, nako ea litšebelisano tse telele ka ho fetisisa, likopo tse telele ka ho fetisisa tsa vacuum le tsona li hloka ho hlahlojoa. Mme haeba re bona lits'ebetso tse 'nileng tsa sebetsa nako e telele haholo, e se e le metsotso e fetang 10-20-30 bakeng sa mojaro oa OLTP, joale re hloka ho li ela hloko le ho li felisa ka matla, kapa ho ntlafatsa ts'ebeliso e le hore li ka li etsa. ha ba bitsoe ebile ha ba fanyehe nako e telele hakana. Bakeng sa mosebetsi oa ho hlahloba, metsotso e 10-20-30 e tloaelehile; ho boetse ho na le tse telele.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky
E latelang re na le khetho le bareki ba hokahantsoeng. Ha re se re thehile dashboard le ho beha lintlha tsa bohlokoa tsa ho fumaneha ho eona, re ka boela ra eketsa lintlha tse ling mabapi le bareki ba hokahantsoeng moo.

Lintlha tse mabapi le bareki ba hokahaneng li bohlokoa hobane, ho latela pono ea PostgreSQL, bareki ba fapane. Ho na le bareki ba molemo mme ho na le bareki ba babe.

Mohlala o bonolo. Ka moreki ke utloisisa kopo. Sesebelisoa se hokahane le database mme hang-hang se qala ho romella likopo tsa sona moo, lits'ebetso tsa database le ho li etsa, ebe li khutlisetsa liphetho ho moreki. Tsena ke bareki ba molemo le ba nepahetseng.

Ho na le maemo ha moreki a hokahane, a tšoara khokahano, empa ha a etse letho. E boemong bo sa sebetseng.

Empa ho na le bareki ba babe. Ka mohlala, mofani ea tšoanang o hokahane, o ile a bula khoebo, a etsa ntho e itseng ho database ebe o kena khoutu, mohlala, ho fumana mohloli o ka ntle kapa ho sebetsana le data e fumanoeng moo. Empa ha aa ka a koala khoebo eo. 'Me transaction e leketlile ka har'a database mme e ts'oaroa ka senotlolo moleng. Sena ke boemo bo bobe. 'Me haeba ka tšohanyetso kopo kae-kae ka hare ka boeona e hlōleha ntle le mokhelo, joale transaction e ka lula e bulehile nako e telele haholo. Mme sena se ama ka kotloloho ts'ebetso ea PostgreSQL. PostgreSQL e tla tsamaea butle. Ka hona, ho bohlokoa ho latela bareki ba joalo ka nako le ho emisa mosebetsi oa bona ka matla. Mme o hloka ho ntlafatsa ts'ebeliso ea hau hore maemo a joalo a se ke a etsahala.

Bareki ba bang ba babe ba emetse bareki. Empa ba fetoha ba babe ka lebaka la maemo. Ka mohlala, ts'ebetso e bonolo e sa sebetseng: e ka bula transaction, ea nka linotlolo meleng e meng, ebe kae-kae ka khoutu e tla hlōleha, e siea transaction e leketlileng. Moreki e mong o tla tla mme a kope data e ts'oanang, empa o tla kopana le senotlolo, hobane transaction eo e leketlileng e se e ntse e ts'oara linotlolo holim'a mela e meng e hlokahalang. 'Me transaction ea bobeli e tla pota-pota e emetse hore transaction ea pele e phethe kapa e e koale ka likhoka ke mookameli. Ka hona, litšebelisano tse emetseng li ka bokella le ho tlatsa moeli oa khokahano ea database. 'Me ha moeli o tletse, kopo e ke ke ea hlola e sebetsa le database. Sena e se e le boemo ba tšohanyetso bakeng sa morero. Ka hona, bareki ba sa sebetseng hantle ba hloka ho lateloa le ho arajoa ka nako.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Mohlala o mong oa ho beha leihlo. Mme ho se ho na le dashboard e ntle mona. Ho na le lintlha tse mabapi le likhokahano ka holimo. Khokahano ea DB - likotoana tse 8. Mme ke tsohle. Ha re na tlhahisoleseling mabapi le hore na ke bareki bafe ba sebetsang, bao bareki ba sa sebetseng feela, ba sa etse letho. Ha ho na tlhahisoleseling mabapi le litšebelisano tse emetseng le likhokahano tse ntseng li emetse, ke hore, sena ke palo e bonts'ang palo ea likhokahano 'me ke eona. Ebe u inahanela.
Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky
Ka hona, ho kenyelletsa tlhahisoleseling ena ho beha leihlo, o hloka ho fihlella pg_stat_activity system view. Haeba u qeta nako e ngata ho PostgreSQL, joale ena ke pono e ntle haholo e lokelang ho ba motsoalle oa hau, hobane e bontša mosebetsi oa morao-rao ho PostgreSQL, ke hore se etsahalang ho eona. Bakeng sa ts'ebetso e 'ngoe le e' ngoe ho na le mola o arohaneng o bontšang tlhahisoleseding mabapi le ts'ebetso ena: ho tsoa ho moeti ofe khokahanyo e entsoeng, tlas'a mosebedisi ofe, tlas'a lebitso lefe, ha transaction e qalile, kopo efe e ntseng e sebetsa hona joale, ke kopo efe e ileng ea qetella e phethiloe. Mme, ka hona, re ka lekola boemo ba moreki re sebelisa sebaka sa lipalo. Ha re bua ka mokhoa o batlang, re ka arola ka sebaka sena mme ra fumana lipalo-palo tse teng hona joale polokelong ea litaba le palo ea likhokahano tse nang le palo ena polokelong ea litaba. 'Me re ka romella linomoro tse seng li ntse li amohetsoe ho beha leihlo la rona le ho taka li-graph ho latela tsona.
Ho bohlokoa hape ho lekola nako ea khoebo. Ke se ke boletse hore ke habohlokoa ho hlahloba nako ea li-vacuums, empa litšebelisano li hlahlojoa ka tsela e ts'oanang. Ho na le libaka tsa xact_start le query_start. Ba, ha ho bapisoa, ba bonts'a nako ea ho qala ha khoebo le nako ea ho qala ha kopo. Re nka mosebetsi oa hona joale (), o bonts'ang setempe sa nako sa hajoale, ebe re tlosa setempe sa nako le ho kopa setempe sa nako. 'Me re fumana nako ea transaction, nako ea kopo.

Haeba re bona litšebelisano tse telele, re lokela ho li qeta. Bakeng sa mojaro oa OLTP, litšebelisano tse telele li se li feta metsotso e 1-2-3. Bakeng sa mosebetsi oa OLAP, litšebelisano tse telele li tloaelehile, empa haeba li nka lihora tse fetang tse peli ho qeta, joale sena ke pontšo ea hore re na le skew kae-kae.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky
Hang ha bareki ba se ba hokahane le database, ba qala ho sebetsa le data ea rona. Ba fihlella litafole, ba fihlella li-index ho fumana data ho tsoa tafoleng. 'Me ho bohlokoa ho lekola hore na bareki ba sebelisana joang le data ena.

Sena sea hlokahala molemong oa ho lekola mosebetsi oa rona le ho utloisisa hore na ke litafole life tse "chesang haholo" ho rona. Ka mohlala, sena sea hlokahala maemong ao re batlang ho beha litafole tse "chesang" holim'a mofuta o mong oa polokelo ea SSD e potlakileng. Ka mohlala, litafole tse ling tsa li-archive tseo re sa li sebeliseng nako e telele li ka fetisetsoa ho mofuta o itseng oa "archive" ea "bata", ho li-drive tsa SATA le ho ba lumella hore ba lule moo, ba tla fumanoa ha ho hlokahala.

Sena se boetse se na le thuso bakeng sa ho lemoha li-anomalies ka mor'a ho lokolloa leha e le efe le ho tsamaisoa. Ha re re projeke e lokolotse karolo e ncha. Ka mohlala, re kentse ts'ebetso e ncha ea ho sebetsa le database. 'Me haeba re rala li-graph tsa tšebeliso ea litafole, re ka bona liphapang tsena habonolo lirapeng tsena. Ka mohlala, ntlafatsa ho phatloha kapa ho hlakola ho phatloha. E tla bonahala haholo.

U ka boela ua lemoha liphapang tsa lipalo-palo tse "phaphametseng". E bolelang? PostgreSQL e na le moralo o matla haholo le o motle haholo oa lipotso. 'Me bahlahisi ba qeta nako e ngata ho nts'etsopele ea eona. O sebetsa joang? E le ho etsa meralo e metle, PostgreSQL e bokella lipalo-palo mabapi le kabo ea data litafoleng ka nako e itseng le ka makhetlo a itseng. Tsena ke litekanyetso tse tloaelehileng ka ho fetisisa: palo ea litekanyetso tse ikhethang, tlhahisoleseding e mabapi le NULL tafoleng, boitsebiso bo bongata.

Ho ipapisitsoe le lipalo-palo tsena, mohlophisi o theha lipotso tse 'maloa, a khetha e nepahetseng ka ho fetesisa, ebe o sebelisa moralo ona oa potso ho phethahatsa potso ka boeona le ho khutlisa data.

'Me ho etsahala hore lipalo-palo li "phaphametse". Lintlha tsa boleng le bongata li fetohile ka tsela e itseng tafoleng, empa lipalo-palo ha lia ka tsa bokelloa. 'Me merero e entsoeng e kanna ea se be e nepahetseng. 'Me haeba meralo ea rona e ka fetoha suboptimal ho latela tlhahlobo e bokelletsoeng, ho latela litafole, re tla khona ho bona li-anomalies tsena. Ka mohlala, kae-kae lintlha li ile tsa fetoha ka mokhoa oa boleng 'me ho e-na le index, ho feta ka tatellano ho feta tafoleng ho ile ha qala ho sebelisoa, i.e. haeba potso e hloka ho khutlisa mela e 100 feela (ho na le moeli oa 100), patlisiso e felletseng e tla etsoa bakeng sa potso ena. 'Me sena se lula se na le phello e mpe haholo ts'ebetsong.

Mme re ka bona sena ka ho beha leihlo. 'Me u se u ntse u sheba potso ena, tsamaisa tlhaloso bakeng sa eona, bokella lipalo-palo, haha ​​​​index e ncha e eketsehileng. 'Me u se u ntse u arabela bothateng bona. Ke ka hona ho leng bohlokoa.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Mohlala o mong oa ho beha leihlo. Ke nahana hore batho ba bangata ba ile ba mo tseba hobane a tumme haholo. Ke mang ea e sebelisang mererong ea bona Prometheus? Ke mang ea sebelisang sehlahisoa sena hammoho le Prometheus? 'Nete ke hore sebakeng sa polokelo e tloaelehileng ea tlhahlobo ena ho na le dashboard ea ho sebetsa le PostgreSQL - postgres_exporter Prometheus. Empa ho na le ntlha e le 'ngoe e mpe.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Ho na le li-graph tse 'maloa. 'Me li-byte li bontšoa e le bonngoe, ke hore, ho na le li-graph tse 5. Tsena ke Kenya data, Apdeita data, Hlakola data, Lata data le Khutlisa data. Tekanyo ea yuniti ke li-byte. Empa taba ke hore lipalo-palo ho PostgreSQL li khutlisa data ka tuple (mela). 'Me, ka hona, li-graph tsena ke mokhoa o motle haholo oa ho nyenyefatsa mosebetsi oa hau ka makhetlo a' maloa, makhetlo a mashome, hobane tuple ha se byte, tuple ke khoele, ke li-byte tse ngata 'me e lula e le bolelele bo fapaneng. Ke hore, ho bala boima ba mosebetsi ka li-byte ho sebelisa li-tuples ke mosebetsi o sa utloahaleng kapa o thata haholo. Ka hona, ha u sebelisa dashboard kapa tlhahlobo e hahelletsoeng, ho bohlokoa kamehla ho utloisisa hore e sebetsa ka nepo mme e u khutlisetsa data e hlahlobiloeng ka nepo.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Mokhoa oa ho fumana lipalo-palo litafoleng tsee? Bakeng sa morero ona, PostgreSQL e na le lelapa le itseng la maikutlo. Mme maikutlo a mantlha ke pg_stat_user_tables. User_tables - sena se bolela litafole tse entsoeng molemong oa mosebelisi. Ka lehlakoreng le leng, ho na le maikutlo a tsamaiso a sebelisoang ke PostgreSQL ka boeona. Hape ho na le tafole ea kakaretso ea Alltables, e kenyelletsang tsamaiso le basebelisi. U ka qala ho e 'ngoe ea tsona eo u e ratang haholo.

U sebelisa libaka tse kaholimo u ka hakanya palo ea lintho tse kentsoeng, tse nchafatsoang le tse tlositsoeng. Mohlala oa dashboard oo ke o sebelisitseng o sebelisa likarolo tsena ho lekola litšobotsi tsa mosebetsi. Ka hona, re ka boela ra haha ​​holim'a tsona. Empa ho bohlokoa ho hopola hore tsena ke li-tuples, eseng li-byte, kahoo re ke ke ra e etsa ka li-byte feela.

Ho latela data ena, re ka haha ​​​​tse bitsoang litafole tsa TopN. Ka mohlala, Top-5, Top-10. 'Me u ka latela litafole tseo tse chesang tse sebelisoang hape ho feta tse ling. Ka mohlala, litafole tse 5 tse "chesang" bakeng sa ho kenngoa. 'Me ka ho sebelisa litafole tsena tsa TopN re lekola mosebetsi oa rona mme re ka lekola ho phatloha ha mosebetsi ka mor'a tokollo efe kapa efe, lintlafatso le lisebelisoa.

Ho bohlokoa hape ho lekola boholo ba tafole, hobane ka linako tse ling bahlahisi ba hlahisa karolo e ncha, 'me litafole tsa rona li qala ho ruruha ka boholo ba tsona, hobane ba nkile qeto ea ho eketsa palo e eketsehileng ea data, empa ha baa ka ba bolela esale pele hore na sena se tla etsahala joang. ama boholo ba database. Linyeoe tse joalo le tsona lia re makatsa.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

'Me joale potso e nyenyane bakeng sa hau. Ho hlaha potso efe ha u hlokomela mojaro ho seva sa hau sa database? Ke potso efe e latelang eo u nang le eona?

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Empa ha e le hantle potso e hlaha ka tsela e latelang. Ke likopo life tse tlisoang ke mojaro? Ke hore, ha ho thahaselle ho sheba mekhoa e bakoang ke mojaro. Ho hlakile hore haeba moamoheli a e-na le database, joale database e ntse e sebetsa moo 'me ho hlakile hore ke li-database feela tse tla lahloa moo. Haeba re bula Top, re tla bona lenane la lits'ebetso ho PostgreSQL tse etsang ho hong. Ho ke ke ha hlaka ho tsoa Holimo hore na ba etsa eng.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Ka hona, o hloka ho fumana lipotso tse bakang mojaro o phahameng ka ho fetisisa, hobane lipotso tsa tokiso, joalo ka molao, li fana ka phaello e ngata ho feta ho lokisa PostgreSQL kapa tlhophiso ea sistimi e sebetsang, kapa esita le ho lokisa lisebelisoa. Ho ea ka khakanyo ea ka, sena ke hoo e ka bang 80-85-90%. 'Me sena se etsoa ka potlako haholo. Ho potlakile ho lokisa kopo ho feta ho lokisa tlhophiso, ho hlophisa ho qala bocha, haholo-holo haeba database e ke ke ea qala bocha, kapa ho eketsa lisebelisoa. Ho bonolo ho ngola potso hape kae-kae kapa ho kenya index ho fumana sephetho se setle ho tsoa potsong ena.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky
Ka hona, hoa hlokahala ho beha leihlo likopo le ho lekana ha tsona. Ha re nke mohlala o mong oa ho beha leihlo. 'Me mona, hape, ho bonahala ho e-na le tlhokomelo e babatsehang. Ho na le tlhahisoleseling mabapi le ho pheta-pheta, ho na le tlhahisoleseling mabapi le phallo, ho thibela, tšebeliso ea lisebelisoa. Ntho e 'ngoe le e' ngoe e ntle, empa ha ho na tlhahisoleseding mabapi le likōpo. Ha ho hlake hore na ke lipotso life tse ntseng li hlaha sebakeng sa rona sa polokelo ea litaba, hore na li sebetsa nako e kae, hore na lipotso tsena ke tse kae. Kamehla re hloka ho ba le tlhaiso-leseling ena tlhokomelong ea rona.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Mme ho fumana tlhaiso-leseling ena re ka sebelisa mojule oa pg_stat_statements. Ho itšetlehile ka eona, u ka etsa mefuta e fapaneng ea li-graph. Mohlala, o ka fumana tlhaiso-leseling mabapi le lipotso tse hlahang khafetsa, ke hore, mabapi le lipotso tse etsoang hangata. E, ka mor'a ho romelloa ho boetse ho molemo haholo ho e sheba le ho utloisisa hore na ho na le ts'ebetso efe kapa efe ea likopo.

U ka beha leihlo lipotso tse telele ka ho fetesisa, ke hore, lipotso tse nkang nako e telele ho li phetha. Li sebetsa ho processor, li ja I/O. Hape re ka lekola sena ka ho sebelisa likarolo total_time, mean_time, blk_write_time le blk_read_time.

Re ka lekola le ho beha leihlo likopo tse boima ka ho fetesisa mabapi le ts'ebeliso ea lisebelisoa, tse baloang ho tsoa ho disk, tse sebetsang ka mohopolo, kapa, ka lehlakoreng le leng, re theha mofuta o itseng oa ho ngola.

Re ka lekola likopo tse ngata ka ho fetisisa. Tsena ke lipotso tse khutlisetsang palo e kholo ea mela. Ka mohlala, sena e ka ba kopo e itseng moo ba lebetse ho beha moeli. 'Me e khutlisa litaba tsohle tsa tafole kapa potso ka har'a litafole tse botsitsoeng.

Hape o ka lekola lipotso tse sebelisang lifaele tsa nakoana kapa litafole tsa nakoana.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky
'Me re ntse re na le mekhoa ea morao-rao. Lits'ebetso tsa morao-rao ke li-checkpoints kapa li boetse li bitsoa li-checkpoints, tsena ke autovacuum le replication.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Mohlala o mong oa ho beha leihlo. Ho na le tabo ea Tlhokomelo ka letsohong le letšehali, e ea ho eona 'me u tšepe ho bona ho hong ho molemo. Empa mona ke nako feela ea ts'ebetso ea vacuum le pokello ea lipalo-palo, ha ho letho le leng. Ena ke boitsebiso bo bobe haholo, kahoo kamehla re hloka ho ba le tlhahisoleseding mabapi le hore na lits'ebetso tsa morao-rao li sebetsa joang polokelong ea rona le hore na ho na le mathata leha e le afe mosebetsing oa bona.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Ha re sheba li-checkpoints, re lokela ho hopola hore li-checkpoints li senya maqephe a litšila ho tloha sebakeng sa memori e sharded ho ea ho disk, ebe u theha sebaka sa ho hlahloba. 'Me sebaka sena sa tlhahlobo se ka sebelisoa e le sebaka sa ho hlaphoheloa haeba PostgreSQL e ile ea felisoa ka tšohanyetso ka tšohanyetso.

Ka hona, e le hore u hlakole maqephe ohle a "silafetseng" ho disk, u lokela ho etsa palo e itseng ea ho ngola. 'Me, joalo ka molao, lits'ebetsong tse nang le mohopolo o mongata, sena se ngata. 'Me haeba re etsa li-checkpoints hangata ka nako e khuts'oane, joale ts'ebetso ea disk e tla theoha haholo. 'Me likopo tsa bareki li tla utloa bohloko ka lebaka la khaello ea lisebelisoa. Ba tla qothisana lehlokoa le matlotlo le ho hloka tlhahiso.

Ka hona, ka pg_stat_bgwriter re sebelisa masimo a boletsoeng re ka beha leihlo palo ea li-checkpoints tse etsahalang. 'Me haeba re e-na le li-checkpoints tse ngata ka nako e itseng (ka metsotso e 10-15-20, ka halofo ea hora), mohlala, 3-4-5, joale sena se se se ka ba bothata. 'Me u se u ntse u hloka ho sheba ka har'a database, sheba tlhophiso, hore na ke eng e bakang bongata bo joalo ba li-checkpoints. Mohlomong ho na le mofuta o itseng oa rekoto e kholo e ntseng e tsoela pele. Re se re ka hlahloba mosebetsi o boima, hobane re se re kentse li-graph tsa mosebetsi. Re se re ka fetola liparamente tsa tlhahlobo mme ra etsa bonnete ba hore ha li ame haholo ts'ebetso ea lipotso.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Ke khutlela ho autovacuum hape hobane ke ntho e joalo, joalo ka ha ke boletse, e ka eketsang ts'ebetso ea li-disk le lipotso habonolo, kahoo ho bohlokoa kamehla ho lekanya palo ea autovacuum.

Palo ea basebetsi ba autovacuum sebakeng sa polokelo ea litaba e lekanyelitsoe. Ka nako e sa lekanyetsoang, ho na le tse tharo tsa tsona, kahoo haeba re lula re e-na le basebetsi ba bararo ba sebetsang ka har'a database, sena se bolela hore autovacuum ea rona ha e lokisoe, re hloka ho phahamisa meeli, ho fetola litlhophiso tsa autovacuum le ho kena tlhophisong.
Ho bohlokoa ho lekola hore na re na le basebetsi ba vacuum bafe. Ekaba e qaliloe ho tsoa ho mosebelisi, DBA e ile ea tla 'me ea tsebahatsa mofuta o mong oa vacuum, mme sena se ile sa baka mojaro. Re na le bothata ba mofuta o itseng. Kapa ena ke palo ea li-vacuum tse qhaqha k'haontareng ea transaction. Bakeng sa mefuta e meng ea PostgreSQL tsena ke li-vacuum tse boima haholo. 'Me ba ka eketsa ts'ebetso habonolo hobane ba bala tafole eohle, ba hlahloba li-blocks tsohle tse tafoleng eo.

'Me, ha e le hantle, nako ea li-vacuums. Haeba re na le li-vacuum tse tšoarellang nako e telele haholo, joale sena se bolela hore re boetse re lokela ho ela hloko tlhophiso ea vacuum mme mohlomong re hlahlobe litlhophiso tsa eona hape. Hobane boemo bo ka hlaha ha sekheo se sebetsa tafoleng nako e telele (lihora tse 3-4), empa nakong eo sekoti se neng se sebetsa, palo e kholo ea mela e shoeleng e ile ea khona ho bokella tafoleng hape. 'Me hang ha sekheo se felile, o hloka ho phunya tafole ena hape. 'Me re fihla boemong - sekheo se sa feleng. 'Me tabeng ena, vacuum ha e sebetsane le mosebetsi oa eona,' me litafole butle-butle li qala ho ruruha ka boholo, le hoja palo ea lintlha tse molemo ho eona e ntse e tšoana. Ka hona, nakong ea li-vacuum tse telele, re lula re sheba tlhophiso mme re leka ho e ntlafatsa, empa ka nako e ts'oanang e le hore ts'ebetso ea likopo tsa bareki e se ke ea utloa bohloko.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Matsatsing ana ha ho na kopo ea PostgreSQL e se nang phetiso ea phallo. Replication ke mokhoa oa ho tsamaisa data ho tloha ho master ho ea ho replica.

Ho pheta-pheta ho PostgreSQL ho etsoa ka log log ea transaction. Wizate e etsa tlaleho ea transaction. Lenane la transaction le tsamaea holim'a khokahanyo ea marang-rang ho ea ho replica, ebe e etsoa hape ho replica. Ho bonolo.

Ka hona, pono ea pg_stat_replication e sebelisoa ho lekola sekhahla sa ho pheta-pheta. Empa ha se tsohle tse bonolo le eena. Ho mofuta oa 10, pono e bile le liphetoho tse 'maloa. Taba ea pele, libaka tse ling li fetotsoe mabitso. 'Me masimo a mang a ekelitsoe. Ho mofuta oa 10, ho hlahile masimo a u lumellang hore u hakanye hore na ho na le nako ea ho pheta-pheta ka metsotsoana. E phutholohile haholo. Pele ho mofuta oa 10, ho ne ho ka khoneha ho hakanya hore na ho na le li-byte tse kae. Khetho ena e lula e le mofuta oa 10, ke hore, o ka khetha se u loketseng haholoanyane - lekanya hore na ho na le li-byte tse kae kapa u hakanye ho lieha ha metsotsoana. Batho ba bangata ba li etsa ka bobeli.

Empa leha ho le joalo, e le hore u hlahlobe sekhahla sa ho pheta-pheta, u lokela ho tseba boemo ba log in the transaction. 'Me maemo ana a marang-rang a transaction a hantle ka pono ea pg_stat_replication. Ha re bua, re ka nka lintlha tse peli ho log ea transaction re sebelisa pg_xlog_location_diff() ts'ebetso. Bala delta e pakeng tsa tsona 'me u fumane hore na ho na le li-byte tse kae. E bonolo haholo ebile e bonolo.

Ho mofuta oa 10, ts'ebetso ena e ile ea rehoa hape ho pg_wal_lsn_diff(). Ka kakaretso, mesebetsing eohle, maikutlo, le lits'ebeletso moo lentsoe "xlog" le fumanoeng, le ile la nkeloa sebaka ke boleng "wal". Sena se sebetsa ho lipono le mesebetsi. Ena ke popontshwa e jwalo.

Ho feta moo, ho mofuta oa 10, ho ile ha eketsoa mela e bonts'ang ka ho hlaka. Tsena ke "wrist lag", "flush lag", "replay lag". E leng hore ho bohlokoa ho beha lintho tsena leihlo. Haeba re bona hore re na le lag replication, joale re lokela ho batlisisa hore na ke hobane'ng ha e hlahile, hore na e tsoa hokae le ho lokisa bothata.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Hoo e ka bang tsohle li hlophisitsoe ka metrics ea sistimi. Ha tlhahlobo efe kapa efe e qala, e qala ka metrics ea sistimi. Sena ke ho lahla li-processor, memori, swap, netweke le disk. Leha ho le joalo, li-parameter tse ngata ha li eo ka ho sa feleng.

Haeba ntho e 'ngoe le e' ngoe e hlophisitsoe ka mokhoa oa ho tsosolosa, joale ho na le mathata a ho tsosolosa disk. E le molao, bahlahisi ba ho beha leihlo ba eketsa tlhahisoleseling mabapi le ho feta. E ka ba li-iops kapa li-byte. Empa ba lebala ka latency le ts'ebeliso ea lisebelisoa tsa disk. Tsena ke li-parameter tsa bohlokoa tse re lumellang ho lekola hore na li-disk tsa rona li laetsoe hakae le hore na li lieha hakae. Haeba re na le latency e phahameng, joale sena se bolela hore ho na le mathata a mang ka li-disks. Haeba re na le ts'ebeliso e phahameng, ho bolela hore li-disk ha li sebetsane hantle. Tsena ke litšobotsi tse betere ho feta ho feta.

Ho feta moo, lipalo-palo tsena le tsona li ka fumanoa ho /proc file system, joalo ka ha ho etsoa bakeng sa li-recycling processors. Ha ke tsebe hore na ke hobane'ng ha tlhahisoleseling ena e sa ekeletsoa ho beha leihlo. Empa leha ho le joalo, ho bohlokoa ho ba le sena tlhahlobong ea hau.

Hoa tšoana le ho li-interface tsa marang-rang. Ho na le tlhahisoleseding e mabapi le phallo ea marang-rang ka har'a lipakete, ka li-byte, empa leha ho le joalo ha ho na tlhahisoleseding e mabapi le latency le ha ho na tlhahisoleseding mabapi le tšebeliso, le hoja sena se boetse se le tlhahisoleseding e molemo.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Tlhokomelo efe kapa efe e na le mefokolo. Mme ho sa tsotelehe hore na o nka tlhahlobo ea mofuta ofe, e tla lula e sa finyelle litekanyetso tse itseng. Empa leha ho le joalo, li ntse li tsoela pele, likarolo tse ncha le lintho tse ncha lia eketsoa, ​​​​kahoo khetha ho hong 'me u e qete.

E le hore u qete, u tlameha ho lula u e-na le maikutlo a hore na lipalo-palo tse fanoeng li bolela'ng le hore na u ka li sebelisa joang ho rarolla mathata.

Le lintlha tse 'maloa tsa bohlokoa:

  • U lokela ho lula u beha leihlo ho fumaneha ha tsona 'me u be le li-dashboards e le hore u ka hlahloba kapele hore lintho tsohle li hlophisitsoe hantle ka database.
  • Kamehla o hloka ho ba le mohopolo oa hore na bareki ba sebetsa eng le database ea hau ho tlosa bareki ba babe le ho ba thunya.
  • Ho bohlokoa ho lekola hore na bareki bana ba sebetsa joang ka data. U tlameha ho ba le maikutlo a mabapi le mosebetsi oa hau.
  • Ke habohlokoa ho hlahloba hore na mosebetsi ona o etsoa joang, ka thuso ea lipotso life. U ka lekola lipotso, u ka li ntlafatsa, ua li fetola, ua li etsetsa li-index. E bohlokoa haholo.
  • Mekhoa ea morao-rao e ka ama likopo tsa bareki hampe, kahoo ho bohlokoa ho hlokomela hore ha ba sebelise lisebelisoa tse ngata haholo.
  • Metrics ea sistimi e u lumella ho etsa meralo ea ho holisa le ho eketsa bokhoni ba li-server tsa hau, ka hona ho bohlokoa ho li sala morao le ho li lekola.

Metheo ea ho beha leihlo PostgreSQL. Alexey Lesovsky

Haeba u thahasella sehlooho sena, joale u ka latela lihokelo tsena.
http://bit.do/stats_collector - ena ke litokomane tsa molao tse tsoang ho 'mokelli oa lipalo-palo. Ho na le tlhaloso ea maikutlo ohle a lipalo-palo le tlhaloso ea likarolo tsohle. U ka li bala, ua li utloisisa le ho li sekaseka. 'Me u ipapisitse le tsona, theha li-graph tsa hau ebe u li kenyelletsa tlhahlobong ea hau.

Likopo tsa mohlala:
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

Ena ke polokelo ea rona ea khoebo le ea ka. Li na le lipotso tsa mohlala. Ha ho na lipotso ho tsoa ho khetha * ho tsoa letotong moo. Ho se ho ntse ho e-na le lipotso tse lokiselitsoeng ka ho kopanya, ho sebelisa mesebetsi e thahasellisang e u lumellang hore u fetole linomoro tse tala hore e be boleng bo baloang, bo bonolo, ke hore, tsena ke li-byte, nako. U ka li khetha, ua li sheba, ua li hlahlobisisa, ua li kenya tšebetsong ea hau ea ho li beha leihlo, ua haha ​​​​litlhoko tsa hau u ipapisitse le tsona.

Lipotso

Potso: U itse u ke ke ua bapatsa mabitso, empa ke ntse ke labalabela ho tseba - u sebelisa li-dashboard tsa mofuta ofe mererong ea hau?
Karabo: E fapane. Hoa etsahala hore re tle ho moreki 'me o se a ntse a e-na le tlhokomelo ea hae. 'Me re eletsa moreki hore na ke eng e lokelang ho eketsoa tlhahlobong ea bona. Boemo bo bobe ka ho fetisisa bo teng ka Zabbix. Hobane ha e na bokhoni ba ho etsa li-graph tsa TopN. Re sebelisa ka borona Okmeter, hobane re ne re buisana le bahlankana bana ka monitoring. Ba ile ba beha leihlo PostgreSQL ho latela lintlha tsa rona tsa tekheniki. Ke ngola morero oa ka oa liphoofolo tse ruuoang lapeng, o bokellang data ka Prometheus ebe oa e kenya grafana. Mosebetsi oa ka ke ho iketsetsa morekisi oa ka ho Prometheus ebe ke fana ka tsohle tse Grafana.

Potso: Na ho na le li-analogue tsa litlaleho tsa AWR kapa ... aggregation? Na ua tseba ka ntho e kang ena?
Karabo: E, kea tseba hore na AWR ke eng, ke ntho e monate. Hajoale ho na le mefuta e fapaneng ea libaesekele tse kenyang ts'ebetsong mokhoa o latelang. Ka nako e itseng, lintlha tse ling tsa motheo li ngotsoe ho PostgreSQL e tšoanang kapa polokelong e arohaneng. U ka li google inthaneteng, li teng. E mong oa bahlahisi ba ntho e joalo o lutse holim'a sethala sa sql.ru khoele ea PostgreSQL. O ka mo tshwara teng. E, ho na le lintho tse joalo, li ka sebelisoa. Hape ho eona pgCenter Ke boetse ke ngola ntho e u lumellang hore u etse ntho e tšoanang.

PS1 Haeba u sebelisa postgres_exporter, u sebelisa dashboard efe? Ho na le tse ’maloa tsa tsona. Li se li siiloe ke nako. Mohlomong sechaba se tla theha template e ntlafalitsoeng?

PS2 E tlositsoe pganalyze hobane ke nyehelo ea SaaS e sebetsanang le eona e shebaneng le tlhahlobo ea ts'ebetso le litlhahiso tse ikemetseng tsa tokiso.

Ke basebelisi ba ngolisitsoeng feela ba ka kenyang letsoho phuputsong. kenaka kopo.

Ke tlhahlobo efe e ikemetseng ea postgresql (e nang le dashboard) eo u e nkang e le molemo ka ho fetisisa?

  • 30,0%Zabbix + litlatsetso tse tsoang ho Alexey Lesovsky kapa zabbix 4.4 kapa 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 ke sesebelisoa sa SaaS - ha ke khone ho e hlakola1

  • 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

Basebelisi ba 10 ba ile ba khetha. Basebelisi ba 26 ba ile ba hana.

Source: www.habr.com

Eketsa ka tlhaloso