Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

M na-atụ aro ka ị gụọ transcript nke akụkọ Alexey Lesovsky sitere na Data Egret "Fundamentals of PostgreSQL monitoring"

Na akụkọ a, Alexey Lesovsky ga-ekwu maka isi ihe dị mkpa nke ọnụ ọgụgụ post-gress, ihe ha pụtara, na ihe mere ha ga-eji nọrọ na nlekota oru; gbasara ihe eserese kwesịrị ịdị na nleba anya, otu esi etinye ha na otu esi akọwa ha. Akụkọ a ga-aba uru nye ndị na-ahụ maka nchekwa data, ndị na-ahụ maka sistemụ na ndị mmepe nwere mmasị na nchọpụta nsogbu Postgres.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Aha m bụ Alexey Lesovsky, ana m anọchite anya ụlọ ọrụ Data Egret.

Okwu ole na ole gbasara onwe m. Amalitere m ogologo oge gara aga dị ka onye nchịkwa sistemụ.

M na-elekọta ụdị usoro Linux dị iche iche, na-arụ ọrụ na ihe dị iche iche metụtara Linux, ya bụ virtualization, nlekota oru, na-arụ ọrụ na proxies, wdg. Ma n'oge ụfọdụ m malitere ịrụ ọrụ karịa na ọdụ data, PostgreSQL. Ọ masịrị m nke ukwuu. Ma n'oge ụfọdụ m malitere ịrụ ọrụ na PostgreSQL ọtụtụ oge ọrụ m. Ya mere, m ji nke nta nke nta ghọọ PostgreSQL DBA.

Na n'ime oge ọrụ m niile, enwere m mmasị mgbe niile na isiokwu nke ọnụ ọgụgụ, nlekota oru na telemetry. Ma mgbe m bụ onye nchịkwa sistemụ, mụ na Zabbix rụkọrọ ọrụ nke ọma. M wee dee obere ihe ederede dị ka zabbix - ndọtị. Ọ bụ nnọọ ewu ewu n'oge ya. N'ebe ahụ, ọ ga-ekwe omume nyochaa ihe dị mkpa dị iche iche, ọ bụghị naanị Linux, kamakwa akụkụ dị iche iche.

Ugbu a, m na-arụ ọrụ na PostgreSQL. Ana m ede ihe ọzọ na-enye gị ohere ịrụ ọrụ na ọnụ ọgụgụ PostgreSQL. A na-akpọ ya pgCenter (isiokwu na Habré - Ọnụ ọgụgụ post-gress na-enweghị irighiri akwara na esemokwu).

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Obere ndetu mmeghe. Kedu ọnọdụ ndị ahịa anyị, ndị ahịa anyị nwere? Enwere ụdị ihe mberede metụtara nchekwa data. Mgbe e mezigharịrị nchekwa data ahụ, onye isi ngalaba ma ọ bụ onye isi ọrụ na-abịa na-ekwu, sị: “Ndị enyi, anyị kwesịrị inyocha nchekwa data ahụ, n'ihi na ihe ọjọọ mere na anyị kwesịrị igbochi nke a ime n'ọdịnihu.” Na ebe a na-amalite usoro na-adọrọ mmasị nke ịhọrọ usoro nlekota ma ọ bụ imeghari usoro nlekota dị ugbu a ka ị nwee ike nyochaa nchekwa data gị - PostgreSQL, MySQL ma ọ bụ ụfọdụ ndị ọzọ. Na ndị ọrụ ibe na-amalite na-atụ aro: "M nụrụ na e nwere dị otú ahụ na dị otú ahụ a nchekwa data. Ka anyị were ya." Ndị ọrụ ibe na-amalite ịrụrịta ụka. Na njedebe ọ na-apụta na anyị na-ahọrọ ụfọdụ ụdị nchekwa data, mana a na-egosi nlekota PostgreSQL na ya na-adịghị mma ma anyị ga-agbakwunye ihe mgbe niile. Were ụfọdụ ebe nchekwa na GitHub, mechie ha, megharịa scripts, wee hazie ha n'ụzọ ụfọdụ. Na n'ikpeazụ ọ na-ejedebe ịbụ ụfọdụ ụdị ọrụ aka.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ya mere, n'okwu a, m ga-agbalị ịnye gị ụfọdụ ihe ọmụma banyere otu esi ahọrọ nlekota oru ọ bụghị naanị maka PostgreSQL, kamakwa maka nchekwa data. Na-enye gị ihe ọmụma nke ga-enye gị ohere ịmecha nlekota gị ka ị nweta ụfọdụ uru na ya, ka ị nwee ike nyochaa nchekwa data gị na uru, iji gbochie ngwa ngwa ọ bụla ọnọdụ mberede na-abịa.

Enwere ike ịmegharị echiche ndị ga-adị na akụkọ a ozugbo na nchekwa data ọ bụla, ma ọ bụrụ DBMS ma ọ bụ noSQL. Ya mere, ọ bụghị naanị PostgreSQL, mana a ga-enwe ọtụtụ ntụziaka maka otu esi eme nke a na PostgreSQL. A ga-enwe ọmụmaatụ nke ajụjụ, ihe atụ nke ụlọ ọrụ PostgreSQL nwere maka nlekota. Ma ọ bụrụ na DBMS gị nwere otu ihe ahụ na-enye gị ohere itinye ha na nlekota, ị nwekwara ike imeghari ha, tinye ha na ọ ga-adị mma.

Ihe ndabere nke nlekota PostgreSQL. Alexei LesovskyAgaghị m anọ na akụkọ ahụ
kwuo maka otu esi ebufe ma chekwaa metrik. Agaghị m ekwu ihe ọ bụla gbasara nhazi data na iwepụta ya na onye ọrụ. Agaghịkwa m ekwu ihe ọ bụla gbasara ịdọ aka ná ntị.
Mana ka akụkọ ahụ na-aga n'ihu, m ga-egosi nseta ihuenyo dị iche iche nke nleba anya dị ugbu a wee katọọ ha n'ụzọ ụfọdụ. Ma ka o sina dị, m ga-agbalị ịghara ịkpọ aha ụdị ka ọ ghara ịmepụta mgbasa ozi ma ọ bụ mgbasa ozi mgbochi maka ngwaahịa ndị a. Ya mere, ihe ndaba niile na-adabere na ya ma hapụ ya n'echiche gị.
Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky
Nke mbụ, ka anyị chọpụta ihe nlekota bụ. Nleba anya bụ ihe dị ezigbo mkpa inwe. Onye ọ bụla na-aghọta nke a. Ma n'otu oge ahụ, nleba anya anaghị emetụta ngwaahịa azụmahịa ma ọ dịghị emetụta uru ụlọ ọrụ ahụ kpọmkwem, ya mere a na-ekenye oge mgbe niile maka nlekota na nkwụsị. Ọ bụrụ na anyị nwere oge, mgbe ahụ, anyị na-eme nlekota oru; ọ bụrụ na anyị enweghị oge, mgbe ahụ OK, anyị ga-etinye ya na backlog na otu ụbọchị anyị ga-alaghachi na ọrụ ndị a.

Ya mere, site na omume anyị, mgbe anyị na-abịakwute ndị ahịa, nlekota na-abụkarị ezughị ezu na enweghị ihe ọ bụla na-adọrọ mmasị nke ga-enyere anyị aka ịrụ ọrụ ka mma na nchekwa data. Ya mere nlekota mgbe niile kwesịrị ka emechaa.

Ebe nchekwa data bụ ihe mgbagwoju anya nke dịkwa mkpa ka a nyochaa ya, n'ihi na ọdụ data bụ ebe nchekwa ozi. Na ozi dị ezigbo mkpa maka ụlọ ọrụ ahụ; ọ nweghị ike ịla n'iyi n'ụzọ ọ bụla. Mana n'otu oge ahụ, ọdụ data bụ iberibe ngwanrọ dị mgbagwoju anya. Ha mejupụtara ọnụ ọgụgụ buru ibu nke components. Na ọtụtụ n'ime ihe ndị a kwesịrị ileba anya.

Ihe ndabere nke nlekota PostgreSQL. Alexei LesovskyỌ bụrụ na anyị na-ekwu kpọmkwem banyere PostgreSQL, mgbe ahụ, ọ nwere ike na-anọchi anya ya n'ụdị atụmatụ nke mejupụtara ọnụ ọgụgụ buru ibu nke components. Akụkụ ndị a na-emekọ ihe ọnụ. Ma n'otu oge ahụ, PostgreSQL nwere ihe a na-akpọ Stats Collector subsystem, nke na-enye gị ohere ịnakọta ọnụ ọgụgụ gbasara ọrụ nke usoro ndị a ma nye onye nchịkwa ma ọ bụ onye ọrụ ụfọdụ ụdị interface ka o wee lelee ọnụ ọgụgụ ndị a.

A na-egosi ọnụ ọgụgụ ndị a n'ụdị ụfọdụ ọrụ na echiche. A pụkwara ịkpọ ha tebụl. Ya bụ, iji onye ahịa psql mgbe niile, ị nwere ike jikọọ na nchekwa data, họrọ ọrụ na echiche ndị a, wee nweta ọnụọgụ ụfọdụ akọwapụtara maka ọrụ nke PostgreSQL subsystems.

Ị nwere ike itinye nọmba ndị a na sistemụ nlekota ọkacha mmasị gị, see eserese, tinye ọrụ ma nweta nyocha n'ime ogologo oge.

Mana na akụkọ a agaghị m ekpuchi ọrụ ndị a niile, n'ihi na ọ nwere ike were ụbọchị dum. M ga-ekwu okwu n'ụzọ nkịtị ihe abụọ, atọ ma ọ bụ anọ na-agwa gị otú ha na-enyere aka mee ka nlekota oru mma.
Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky
Ma ọ bụrụ na anyị na-ekwu banyere nchekwa data nlekota oru, mgbe ahụ ihe kwesịrị ka a nyochaa? Nke mbụ, anyị kwesịrị nyochaa ịdị adị, n'ihi na nchekwa data bụ ọrụ na-enye ndị ahịa ohere ịnweta data na anyị kwesịrị ileba anya na ọ dị, ma nyekwa ụfọdụ n'ime njirimara qualitative na quantitative.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Anyị kwesịkwara nyochaa ndị ahịa na-ejikọta na nchekwa data anyị, n'ihi na ha nwere ike ịbụ ma ndị ahịa nkịtị na ndị ahịa na-emerụ ahụ nwere ike imerụ nchekwa data ahụ. Ọ dịkwa mkpa ka a nyochaa ha na nyochaa ọrụ ha.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Mgbe ndị ahịa jikọọ na nchekwa data, o doro anya na ha na-amalite ịrụ ọrụ na data anyị, n'ihi ya, anyị kwesịrị ileba anya otú ndị ahịa si arụ ọrụ na data: nke tebụl, na n'ókè dị nta, nke indexes. Ya bụ, anyị kwesịrị ịtụle oke ọrụ nke ndị ahịa anyị mepụtara.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Mana ibu ọrụ nwekwara, n'ezie, nke arịrịọ. Ngwa na-ejikọta na nchekwa data, nweta data site na iji ajụjụ, ya mere ọ dị mkpa iji nyochaa ajụjụ ndị anyị nwere na nchekwa data, nyochaa ike ha, na edeghị ha n'ụzọ gbagọrọ agbagọ, na nhọrọ ụfọdụ dị mkpa ka edegharịa ma mee ka ha rụọ ọrụ ngwa ngwa. na ịrụ ọrụ ka mma.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ma ebe anyị na-ekwu maka nchekwa data, nchekwa data bụ usoro ndabere mgbe niile. Usoro ndabere na-enyere aka ịnọgide na-arụ ọrụ nchekwa data na ọkwa dị mma, yabụ na ha chọrọ ụfọdụ ego maka onwe ha iji rụọ ọrụ. Ma n'otu oge ahụ, ha nwere ike ijikọ na akụrụngwa arịrịọ ndị ahịa, yabụ usoro nzụlite anyaukwu nwere ike imetụta arụmọrụ nke arịrịọ ndị ahịa ozugbo. Ya mere, ọ dịkwa mkpa ka a nyochaa ma nyochaa ha ka ọ ghara inwe mgbagwoju anya n'ihe gbasara usoro ndabere.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Na ihe a niile n'ihe gbasara nlekota nchekwa data na-anọgide na metric usoro. Ma n'ịtụle na ọtụtụ n'ime akụrụngwa anyị na-aga n'ígwé ojii, metrics usoro nke onye ọbịa na-adaba n'azụ. Ma na ọdụ data ha ka dị mkpa na, n'ezie, ọ dịkwa mkpa iji nyochaa usoro usoro.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ihe niile dị mma ma ọ bụ na-adịchaghị mma na usoro metrics, usoro nlekota nke oge a na-akwadolarị metrics ndị a, ma n'ozuzu, ụfọdụ akụkụ ezughị ezu na ihe ụfọdụ kwesịrị ịgbakwunye. M ga-emetụkwa ha aka, a ga-enwe ọtụtụ slide banyere ha.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky
Isi ihe mbụ nke atụmatụ a bụ ịnweta. Gịnị bụ nnweta? Nnweta na nghọta m bụ ikike nke isi na njikọ ọrụ, ya bụ, a na-ebuli isi, ya, dịka ọrụ, na-anabata njikọ sitere na ndị ahịa. Enwere ike ịlele nnweta a site na njirimara ụfọdụ. Ọ dị ezigbo mma igosipụta njirimara ndị a na bọọdụ dashboard.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky
Onye ọ bụla maara ihe dashboards bụ. Nke a bụ mgbe ị lere anya na ihuenyo nke achịkọtara ozi dị mkpa na ya. Na ị nwere ike ikpebi ozugbo ma enwere nsogbu na nchekwa data ma ọ bụ na ọ bụghị.
N'ihi ya, enwere ike ịnweta nchekwa data yana njirimara isi ndị ọzọ na dashboards ka ozi a dị n'aka ma dịrị gị mgbe niile. Ụfọdụ nkọwa ndị ọzọ na-enyere aka na nyocha nke ihe merenụ, mgbe ị na-enyocha ụfọdụ ọnọdụ mberede, ọ dị mkpa ka etinye ha na dashboards nke abụọ, ma ọ bụ zoro ezo na njikọ nkwụsịtụ nke na-eduga na usoro nlekota nke ndị ọzọ.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ihe atụ nke otu usoro nlekota nke ọma. Nke a bụ usoro nleba anya nke ukwuu. Ọ na-anakọta ọtụtụ data, mana site n'echiche m, o nwere echiche dị iche iche nke dashboards. Enwere njikọ maka "mepụta dashboard". Ma mgbe ị mepụtara dashboard, ị na-emepụta ndepụta nke ogidi abụọ, ndepụta nke eserese. Na mgbe ịchọrọ ile ihe anya, ị na-amalite ịpị òké, na-atụgharị, na-achọ chaatị a chọrọ. Na nke a na-ewe oge, ya bụ, enweghị dashboard dị otú ahụ. Enwere naanị ndepụta eserese.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Kedu ihe ị ga-agbakwunye na dashboard ndị a? Ị nwere ike ịmalite site na njirimara dị ka oge nzaghachi. PostgreSQL nwere echiche pg_stat_statements. Ọ nwere nkwarụ site na ndabara, mana ọ bụ otu n'ime echiche sistemụ dị mkpa kwesịrị ka enyere ma jiri ya mee ihe mgbe niile. Ọ na-echekwa ozi gbasara ajụjụ niile na-agba ọsọ nke emechara na nchekwa data.

N'ihi ya, anyị nwere ike ịmalite site na eziokwu ahụ bụ na anyị nwere ike iwepụta oge igbu oge niile nke arịrịọ niile ma kesaa ya site na ọnụ ọgụgụ nke arịrịọ site na iji ubi ndị dị n'elu. Ma nke a bụ nkezi okpomọkụ na ụlọ ọgwụ. Anyị nwere ike ịmalite site na mpaghara ndị ọzọ - oge mmezu opekempe, kacha na etiti. Na anyị nwere ike ọbụna wuo percentiles; PostgreSQL nwere ọrụ kwekọrọ maka nke a. Anyị nwere ike nweta ọnụọgụ ụfọdụ nke na-akọwapụta oge nzaghachi nke nchekwa data anyị maka arịrịọ emecharịrị, ya bụ, anyị anaghị eme arịrịọ adịgboroja 'họrọ 1' wee lelee oge nzaghachi, mana anyị na-enyocha oge nzaghachi maka arịrịọ emecharịrị wee see ya. ma ọ bụ ọnụ ọgụgụ dị iche, ma ọ bụ anyị na-ewu eserese dabere na ya.

Ọ dịkwa mkpa iji nyochaa ọnụ ọgụgụ nke njehie nke usoro ahụ na-emepụta ugbu a. Maka nke a ị nwere ike iji nlele pg_stat_database. Anyị na-elekwasị anya na ubi xact_rollback. Ogige a na-egosi ọ bụghị naanị ọnụọgụ mpịakọta na-eme na nchekwa data, kamakwa na-eburu n'uche ọnụọgụ nke njehie. N'ikwu ya n'ụzọ dịtụ, anyị nwere ike igosipụta ọnụ ọgụgụ a na dashboard anyị wee hụ mpe mperi anyị nwere ugbu a. Ọ bụrụ na e nwere ọtụtụ njehie, mgbe ahụ, nke a bụ ezigbo ihe mere ị ga-eji lelee ndekọ ma hụ ụdị njehie ha bụ na ihe kpatara ha ji eme, wee tinye ego ma dozie ha.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ị nwere ike ịgbakwunye ihe dị ka Tachometer. Ndị a bụ ọnụ ọgụgụ nke azụmahịa kwa sekọnd na ọnụ ọgụgụ nke arịrịọ kwa sekọnd. N'ikwu ya n'ụzọ ọzọ, ị nwere ike iji nọmba ndị a dị ka arụmọrụ nke nchekwa data gị ugbu a wee hụ ma enwere ọnụ ọgụgụ dị elu na arịrịọ, ọnụ ahịa azụmahịa, ma ọ bụ, n'aka nke ọzọ, ma ọ bụ nchekwa data etinyere n'ihi na ụfọdụ azụ azụ adaala. Ọ dị mkpa ka ị na-ele anya na ọnụ ọgụgụ a mgbe niile ma cheta na maka ọrụ anyị ụdị arụmọrụ a bụ ihe nkịtị, ma ụkpụrụ ndị dị n'elu na n'okpuru bụ ugbua ụfọdụ ụdị nsogbu na enweghị nghọta, nke pụtara na anyị kwesịrị ile anya ihe mere ọnụ ọgụgụ ndị a ji dị. dị elu.

Iji tụọ ọnụọgụ azụmahịa, anyị nwere ike rụtụ aka na nlele pg_stat_database ọzọ. Anyị nwere ike ịgbakwunye ọnụ ọgụgụ nke eme na ọnụ ọgụgụ nke rollback wee nweta ọnụ ọgụgụ nke azụmahịa kwa sekọnd.

Onye ọ bụla ọ ghọtara na ọtụtụ arịrịọ nwere ike dabara n'otu azụmahịa? Ya mere TPS na QPS dịtụ iche.

Enwere ike nweta ọnụọgụ arịrịọ kwa sekọnd site na pg_stat_statements wee gbakọọ nchikota arịrịọ niile emechara. O doro anya na anyị na-atụnyere uru dị ugbu a na nke gara aga, wepụ ya, nweta delta, ma nweta ọnụọgụgụ.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ị nwere ike ịgbakwunye metrik ndị ọzọ ma ọ bụrụ na ịchọrọ, nke na-enyekwara aka nyochaa ịdị adị nke nchekwa data anyị wee nyochaa ma enweela oge nkwụsịtụ.

Otu n'ime metrik ndị a bụ oge ọrụ. Mana uptime na PostgreSQL bụ ntakịrị aghụghọ. Aga m agwa gị ihe kpatara ya. Mgbe PostgreSQL malitere, oge ọrụ na-amalite ịkọ akụkọ. Ma ọ bụrụ na n'oge ụfọdụ, dịka ọmụmaatụ, ụfọdụ ọrụ na-agba ọsọ n'abalị, onye na-egbu OOM bịara wee kwụsị usoro nwatakịrị PostgreSQL n'ike, mgbe ahụ, na nke a PostgreSQL na-akwụsị njikọ nke ndị ahịa niile, na-emegharị ebe nchekwa sharded wee malite mgbake site na. ebe nlele ikpeazụ. Ma mgbe mgbake a site na ebe nlele na-adịru, nchekwa data anaghị anabata njikọ, ya bụ, ọnọdụ a nwere ike nyochaa dị ka oge nkwụsị. Mana a gaghị emegharị counter-time, n'ihi na ọ na-eburu n'uche oge mmalite nke postmaster site na oge mbụ. Ya mere, ọnọdụ ndị dị otú ahụ nwere ike ịfefe.

I kwesịkwara inyocha ọnụọgụgụ ndị na-arụ ọrụ agụụ. Onye ọ bụla maara ihe autovacuum dị na PostgreSQL? Nke a bụ sistemụ na-adọrọ mmasị na PostgreSQL. Edewo ọtụtụ akụkọ banyere ya, e meela ọtụtụ akụkọ. Enwere ọtụtụ mkparịta ụka gbasara oghere na ka ọ ga-esi arụ ọrụ. Ọtụtụ ndị na-ewere ya dị ka ihe ọjọọ dị mkpa. Mana otu ahụ ka ọ dị. Nke a bụ ụdị analog nke onye na-anakọta ihe mkpofu na-ehichapụ ụdị ahịrị ochie nke na-adịghị mkpa maka azụmahịa ọ bụla ma na-ahapụ ohere na tebụl na indexes maka ahịrị ọhụrụ.

Kedu ihe kpatara ị ga-eji nyochaa ya? N'ihi na agụụ mgbe ụfọdụ na-afụ ụfụ nke ukwuu. Ọ na-eri nnukwu ego na arịrịọ ndị ahịa na-amalite ịta ahụhụ n'ihi ya.

Ekwesịrị ileba ya anya site na nlele pg_stat_activity, nke m ga-ekwu maka ya na ngalaba na-esote. Echiche a na-egosi ọrụ dị ugbu a na nchekwa data. Na site na ọrụ a anyị nwere ike soro ọnụọgụ oghere na-arụ ọrụ ugbu a. Anyị nwere ike soro oghere wee hụ na ọ bụrụ na anyị agafeela oke, yabụ nke a bụ ihe mere anyị ga-eji lelee ntọala PostgreSQL wee bulie ọrụ nke oghere ahụ.

Ihe ọzọ gbasara PostgreSQL bụ na PostgreSQL na-arịa ọrịa ogologo azụmahịa. Karịsịa site na azụmahịa ndị na-adabere na ogologo oge na-eme ihe ọ bụla. Nke a bụ ihe a na-akpọ stat-idal-in-transaction. Azụmahịa dị otú ahụ na-ejide mkpọchi ma gbochie oghere ahụ ịrụ ọrụ. Na n'ihi ya, tebụl na-aza ma na-abawanye nha. Na ajụjụ ndị na-arụ ọrụ na tebụl ndị a na-amalite na-arụ ọrụ nwayọọ nwayọọ, n'ihi na ị chọrọ shọvel niile ochie nsụgharị nke ahịrị si ebe nchekwa na disk na azụ. Ya mere, oge, ogologo oge nke azụmahịa kachasị ogologo, arịrịọ oghere kachasị ogologo dịkwa mkpa ka a nyochaa ya. Ma ọ bụrụ na anyị na-ahụ ụfọdụ usoro na-na-agba ọsọ ruo ogologo oge, ugbua ihe karịrị 10-20-30 nkeji maka OLTP ibu, mgbe ahụ, anyị kwesịrị ịṅa ntị na ha na ike kwụsị ha, ma ọ bụ ebuli ngwa ka ha na ha. A naghị akpọ ya ma anaghị kpọgidere ogologo oge. Maka ọrụ nyocha, nkeji 10-20-30 bụ ihe nkịtị; enwerekwa ndị dị ogologo.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky
Ọzọ anyị nwere nhọrọ na ndị ahịa ejikọrọ. Mgbe anyị emepụtala dashboard wee bipute metrik nnweta igodo na ya, anyị nwekwara ike ịgbakwunye ozi ndị ọzọ gbasara ndị ahịa ejikọrọ ebe ahụ.

Ozi gbasara ndị ahịa ejikọrọ dị mkpa n'ihi na, site na echiche PostgreSQL, ndị ahịa dị iche. Enwere ezigbo ndị ahịa na enwere ndị ahịa ọjọọ.

Ihe atụ dị mfe. Site na onye ahịa m ghọtara ngwa ahụ. Ngwa ejikọrọ na nchekwa data wee malite izipu arịrịọ ya ozugbo ebe ahụ, usoro nchekwa data wee mebie ha, wee weghachi onye ahịa nsonaazụ ya. Ndị a bụ ezigbo ndị ahịa ziri ezi.

Enwere ọnọdụ mgbe onye ahịa jikọtara ya, ọ na-ejide njikọ ahụ, mana ọ naghị eme ihe ọ bụla. Ọ nọ n'ọnọdụ efu.

Ma enwere ndị ahịa ọjọọ. Dịka ọmụmaatụ, otu onye ahịa ahụ jikọtara, meghere azụmahịa, mee ihe na nchekwa data wee banye na koodu ahụ, dịka ọmụmaatụ, iji nweta isi mmalite ma ọ bụ iji hazie data natara n'ebe ahụ. Mana ọ mechighị azụmahịa ahụ. Na azụmahịa ahụ dabere na nchekwa data ma jide ya na mkpọchi na akara. Nke a bụ ọnọdụ ọjọọ. Ma ọ bụrụ na ngwa n'otu ebe n'ime onwe ya dara na mberede, mgbe ahụ azụmahịa ahụ nwere ike imeghe ruo ogologo oge. Nke a na-emetụta arụmọrụ PostgreSQL ozugbo. PostgreSQL ga-adị nwayọọ. Ya mere, ọ dị mkpa iji soro ndị ahịa dị otú ahụ n'oge kwesịrị ekwesị ma kwụsị ọrụ ha n'ike. Na ịkwesịrị ịkwalite ngwa gị ka ọnọdụ ndị dị otú ahụ ghara ime.

Ndị ahịa ọjọọ ndị ọzọ na-echere ndị ahịa. Ma ha na-aghọ ndị ọjọọ n'ihi ọnọdụ. Dịka ọmụmaatụ, azụmahịa dị mfe na-abaghị uru: ọ nwere ike imepe azụmahịa, were mkpọchi na ahịrị ụfọdụ, mgbe ahụ, ebe ọ ga-ada na koodu ahụ, ọ ga-adaba, na-ahapụ azụmahịa kwụ ọtọ. Onye ahịa ọzọ ga-abịa rịọ otu data ahụ, mana ọ ga-ezute mkpọchi, n'ihi na azụmahịa nghọta na-ejidelarị mkpọchi na ụfọdụ ahịrị achọrọ. Na azụmahịa nke abụọ ga-adabere na-echere azụmahịa mbụ iji mechaa ma ọ bụ mechie ya site n'aka onye nchịkwa. Ya mere, azụmahịa na-echere nwere ike ịgbakọ ma jupụta njedebe njikọ nchekwa data. Ma mgbe oke zuru ezu, ngwa ahụ enweghịzi ike iji nchekwa data rụọ ọrụ. Nke a abụrụlarị ọnọdụ mberede maka ọrụ ahụ. Ya mere, ọ dị mkpa ka a nyochaa ndị ahịa ọjọọ ma zaghachi ya n'oge kwesịrị ekwesị.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ihe atụ ọzọ nke nlekota oru. Enweelarị dashboard dị mma ebe a. Enwere ozi na njikọ dị n'elu. Njikọ DB - 8 iberibe. Ma ọ bụ ihe niile. Anyị enweghị ozi gbasara nke ndị ahịa na-arụsi ọrụ ike, nke ndị ahịa na-abaghị uru, na-eme ihe ọ bụla. Enweghị ozi gbasara azụmahịa na-echere na njikọ echere, ya bụ na nke a bụ ọnụ ọgụgụ na-egosi ọnụọgụ njikọ na nke ahụ bụ ya. Mgbe ahụ chepụta onwe gị.
Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky
N'ihi ya, ka ịgbakwunye ozi a na nlekota oru, ị ga-enweta na pg_stat_activity ele usoro. Ọ bụrụ na ị na-etinye oge dị ukwuu na PostgreSQL, nke a bụ echiche dị mma nke kwesịrị ịghọ enyi gị, n'ihi na ọ na-egosi ọrụ dị ugbu a na PostgreSQL, ya bụ ihe na-eme na ya. Maka usoro nke ọ bụla, e nwere ahịrị dị iche iche nke na-egosi ozi gbasara usoro a: site na nke e mere njikọ ahụ, n'okpuru onye ọrụ, n'okpuru aha, mgbe azụmahịa ahụ malitere, ihe arịrịọ na-agba ọsọ ugbu a, ihe arịrịọ ikpeazụ mezuru. Na, n'ihi ya, anyị nwere ike nyochaa steeti onye ahịa site na iji stat field. N'ikwu okwu n'otu n'otu, anyị nwere ike ijikọ site na mpaghara a wee nweta stats ndị ahụ dị ugbu a na nchekwa data yana ọnụ ọgụgụ njikọ ndị nwere ọkwa a na nchekwa data. Anyị nwere ike izipu ọnụọgụ ndị enwetalarị na nleba anya anyị wee see eserese dabere na ha.
Ọ dịkwa mkpa iji nyochaa oge azụmahịa ahụ. Ekwuru m na ọ dị mkpa iji nyochaa oge nke oghere, ma a na-enyocha azụmahịa n'otu ụzọ ahụ. Enwere oghere xact_start na query_start. Ha, na-ekwu okwu, na-egosi mmalite oge nke azụmahịa na mmalite oge nke arịrịọ. Anyị na-ewere ọrụ ugbu a (), nke na-egosi stampụ oge dị ugbu a, wee wepụ azụmahịa ahụ wee rịọ stampụ oge. Na anyị na-enweta oge nke azụmahịa, oge nke arịrịọ.

Ọ bụrụ na anyị na-ahụ ogologo azụmahịa, anyị kwesịrị imecha ha ugbua. Maka ibu OLTP, ogologo azụmahịa adịlarị karịa nkeji 1-2-3. Maka ọrụ OLAP, ogologo azụmahịa bụ ihe nkịtị, mana ọ bụrụ na ha na-ewe ihe karịrị awa abụọ iji wuchaa, nke a bụkwa ihe ịrịba ama na anyị nwere skew ebe.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky
Ozugbo ndị ahịa jikọọ na nchekwa data, ha na-amalite ịrụ ọrụ na data anyị. Ha na-abanye na tebụl, ha na-enweta index iji nweta data site na tebụl. Ma ọ dị mkpa ịtụle ka ndị ahịa si emekọrịta na data a.

Nke a dị mkpa iji nyochaa ibu ọrụ anyị wee ghọta nke ọma tebụl ndị kacha "kachasị mma" maka anyị. Dịka ọmụmaatụ, nke a dị mkpa na ọnọdụ ebe anyị chọrọ idobe tebụl "ọkụ" na ụfọdụ ụdị ngwa ngwa SSD nchekwa. Dịka ọmụmaatụ, ụfọdụ tebụl nchekwa nke anyị na-ejibeghị ogologo oge nwere ike ịkwaga n'ụdị ebe nchekwa "oyi", na SATA draịva ma hapụ ha ka ha biri ebe ahụ, a ga-enweta ha dị ka ọ dị mkpa.

Nke a bakwara uru maka ịchọpụta anomalies mgbe ewepụtara na mbugharị ọ bụla. Ka anyị kwuo na ọrụ ahụ ewepụtala ụfọdụ atụmatụ ọhụrụ. Dịka ọmụmaatụ, anyị gbakwunyere ọrụ ọhụrụ maka ịrụ ọrụ na nchekwa data. Ma ọ bụrụ na anyị na-akpa nkata eserese ojiji tebụl, anyị nwere ike ịchọpụta ihe adịghị mma na eserese ndị a n'ụzọ dị mfe. Dịka ọmụmaatụ, melite mgbawa ma ọ bụ hichapụ nwapu. A ga-ahụ ya nke ukwuu.

Ị nwekwara ike ịchọpụta ihe adịghị mma na ọnụ ọgụgụ "na-ese n'elu". Kedu ihe ọ pụtara? PostgreSQL nwere onye nhazi ajụjụ siri ike yana ezigbo mma. Na ndị mmepe na-etinye oge dị ukwuu na mmepe ya. Kedu ka ọ si arụ ọrụ? Iji mee atụmatụ dị mma, PostgreSQL na-anakọta ọnụ ọgụgụ na nkesa data na tebụl n'otu oge na oge ụfọdụ. Ndị a bụ ụkpụrụ ndị a na-ahụkarị: ọnụ ọgụgụ nke ụkpụrụ pụrụ iche, ozi gbasara NULL na tebụl, ọtụtụ ozi.

Dabere na ọnụ ọgụgụ ndị a, onye na-eme atụmatụ na-arụ ọtụtụ ajụjụ, họrọ nke kachasị mma, wee jiri atụmatụ ajụjụ a mebie ajụjụ ahụ n'onwe ya wee weghachi data.

Ọ na-eme na ọnụ ọgụgụ ahụ "na-ese n'elu". Ogo na ọnụọgụ data gbanwere n'ụzọ ụfọdụ na tebụl, mana anakọtaghị ọnụ ọgụgụ ahụ. Na atụmatụ ndị e mere nwere ike ghara ịdị mma. Ma ọ bụrụ na atụmatụ anyị tụgharịrị bụrụ nke kachasị mma dabere na nleba anya anakọtara, dabere na tebụl, anyị ga-enwe ike ịhụ ihe ndị a anomalies. Dịka ọmụmaatụ, ebe data gbanwere qualitatively na kama index, a malitere iji usoro gafere na tebụl, ya bụ. Ọ bụrụ na ajụjụ kwesịrị ịlaghachi naanị otu ahịrị 100 (enwere njedebe nke 100), mgbe ahụ, a ga-eme nyocha zuru oke maka ajụjụ a. Na nke a na-enwe mmetụta dị njọ mgbe niile na arụmọrụ.

Na anyị nwere ike ịhụ nke a na nlekota oru. Ma lee ajụjụ a anya, mee nkọwa maka ya, nakọta ọnụ ọgụgụ, wuo ndeksi ọhụrụ ọzọ. Na ugbua zaghachi nsogbu a. Ọ bụ ya mere o ji dị mkpa.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ihe atụ ọzọ nke nlekota oru. Echere m na ọtụtụ ndị matara ya n'ihi na ọ na-ewu ewu nke ukwuu. Onye na-eji ya na ọrụ ha Prometheus? Kedu onye na-eji ngwaahịa a na njikọ Prometheus? Nke bụ eziokwu bụ na na ebe nchekwa ọkọlọtọ nke nlekota oru a, enwere dashboard maka ịrụ ọrụ na PostgreSQL - postgres_exporter Prometheus. Ma enwere otu nkọwa ọjọọ.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Enwere ọtụtụ eserese. Na bytes na-egosi dị ka ịdị n'otu, ya bụ e nwere 5 eserese. Ndị a bụ Fanye data, melite data, Hichapụ data, Weta data na weghachite data. Ntụle otu ahụ bụ bytes. Mana ihe bụ na ọnụ ọgụgụ dị na PostgreSQL na-eweghachi data na tuple (ahịrị). Na, ya mere, eserese ndị a bụ ụzọ dị mma isi lelịa ọrụ gị ọtụtụ ugboro, ugboro iri, n'ihi na tuple abụghị byte, tuple bụ eriri, ọ bụ ọtụtụ bytes na ọ na-agbanwe agbanwe ogologo oge. Ya bụ, ịgbakọ ibu ọrụ na bytes site na iji tuples bụ ọrụ na-enweghị isi ma ọ bụ siri ike. Ya mere, mgbe ị na-eji dashboard ma ọ bụ nleba anya arụnyere n'ime ya, ọ dị mkpa mgbe niile ịghọta na ọ na-arụ ọrụ nke ọma ma weghachi gị data enyochara nke ọma.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Kedu ka esi enweta ọnụ ọgụgụ na tebụl ndị a? Maka ebumnuche a, PostgreSQL nwere ụfọdụ echiche ezinụlọ. Na isi echiche bụ pg_stat_user_tables. User_tables - nke a pụtara tebụl emepụtara n'aha onye ọrụ. N'ụzọ dị iche, enwere echiche sistemụ nke PostgreSQL na-eji n'onwe ya. Ma enwere tebụl nchịkọta Alltables, nke gụnyere ma sistemụ na ndị ọrụ. Ị nwere ike ịmalite site na nke ọ bụla n'ime ha nke kacha amasị gị.

Iji mpaghara ndị a dị n'elu ị nwere ike ịkọ ọnụ ọgụgụ ntinye, mmelite na ihichapụ. Ihe atụ nke dashboard nke m ji na-eji mpaghara ndị a iji nyochaa njirimara nke ibu ọrụ. Ya mere, anyị nwekwara ike iwuli elu na ha. Mana ọ bara uru icheta na ndị a bụ tuples, ọ bụghị bytes, yabụ na anyị enweghị ike ime ya na bytes.

Dabere na data a, anyị nwere ike iwulite ihe a na-akpọ tebụl TopN. Dịka ọmụmaatụ, Top-5, Top-10. Ma ị nwere ike soro tebụl ndị ahụ na-ekpo ọkụ na-emegharị karịa ndị ọzọ. Dịka ọmụmaatụ, tebụl 5 "ọkụ" maka ntinye. Na iji tebụl TopN ndị a, anyị na-enyocha oke ọrụ anyị ma nwee ike nyochaa mgbawa nke ọrụ mgbe ahapụchara, mmelite na mbugharị ọ bụla.

Ọ dịkwa mkpa iji nyochaa nha nke tebụl, n'ihi na mgbe ụfọdụ, ndị na-emepụta ihe na-emepụta ihe ọhụrụ, na tebụl anyị na-amalite ịza na nnukwu nha ha, n'ihi na ha kpebiri itinye mgbakwunye data ọzọ, ma ha ebughị amụma otú nke a ga-esi. na-emetụta nha nke nchekwa data. Okwu ndị dị otú ahụ na-abịakwara anyị dị ka ihe ijuanya.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ma ugbua a obere ajụjụ maka gị. Kedu ajụjụ na-ebilite mgbe ị hụrụ ibu dị na sava nchekwa data gị? Kedu ajụjụ ọzọ ị nwere?

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ma n'ezie ajụjụ na-ebilite dị ka ndị a. Kedu arịrịọ nke ibu na-ebute? Ya bụ, ọ bụghị ihe na-adọrọ mmasị ileba anya na usoro ndị na-ebu ibu. O doro anya na ọ bụrụ na onye ọbịa ahụ nwere nchekwa data, mgbe ahụ, nchekwa data na-agba ọsọ n'ebe ahụ ma o doro anya na ọ bụ naanị ọdụ data ka a ga-atụfu n'ebe ahụ. Ọ bụrụ na anyị mepee Top, anyị ga-ahụ ebe ahụ ndepụta nke usoro na PostgreSQL na-eme ihe. Ọ gaghị esi na Top pụta ìhè ihe ha na-eme.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

N'ihi ya, ịkwesịrị ịchọta ajụjụ ndị ahụ na-akpata ibu kachasị elu, n'ihi na nlegharị anya ajụjụ, dịka iwu, na-enye uru karịa ịmegharị PostgreSQL ma ọ bụ nhazi usoro nhazi, ma ọ bụ ọbụna na-emegharị ngwaike. Dị ka atụmatụ m si dị, nke a bụ ihe dịka 80-85-90%. A na-eme nke a ngwa ngwa. Ọ dị ngwa iji dozie arịrịọ karịa imezi nhazi ahụ, hazie mmalite mmalite, karịsịa ma ọ bụrụ na nchekwa data enweghị ike ịmalitegharị, ma ọ bụ tinye ngwaike. Ọ dị mfe idegharị ajụjụ a ebe ma ọ bụ tinye ndeksi ka ị nweta nsonaazụ kacha mma site na ajụjụ a.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky
N'ihi ya, ọ dị mkpa iji nyochaa arịrịọ na ike ha. Ka anyị were ihe atụ ọzọ nke nlekota. Na ebe a kwa, ọ dị ka enwere ezigbo nlebanya. Enwere ozi gbasara mmegharị, enwere ozi na ntinye, igbochi, itinye akụrụngwa. Ihe niile dị mma, mana enweghị ozi na arịrịọ. O dochaghị anya ihe ajụjụ na-agba na nchekwa data anyị, ogologo oge ha na-agba, ole n'ime ajụjụ ndị a dị. Anyị kwesịrị ịnwe ozi a mgbe niile na nlebanya anyị.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Na iji nweta ozi a anyị nwere ike iji pg_stat_statements modul. Dabere na ya, ị nwere ike ịmepụta eserese dị iche iche. Dịka ọmụmaatụ, ị nwere ike nweta ozi gbasara ajụjụ ndị a na-ajụkarị, ya bụ, na ajụjụ ndị a na-agbakarị. Ee, mgbe deployments ọ bara uru nke ukwuu ile ya anya na-aghọta ma ọ bụrụ na e nwere ihe ọ bụla a na-arịọ arịrịọ.

Ị nwere ike nyochaa ajụjụ kachasị ogologo, ya bụ, ajụjụ ndị ahụ na-ewe ogologo oge iji mezue. Ha na-agba ọsọ na processor, ha na-eri I/O. Anyị nwekwara ike nyochaa nke a site na iji oge ngụkọta_time, mean_time, blk_write_time na blk_read_time.

Anyị nwere ike nyochaa ma nyochaa arịrịọ kachasị njọ n'ihe gbasara iji ihe onwunwe, ndị na-agụ site na diski, na-arụ ọrụ na ebe nchekwa, ma ọ bụ, n'aka nke ọzọ, mepụta ụdị ụfọdụ nke ide ibu.

Anyị nwere ike nyochaa arịrịọ kacha emesapụ aka. Ndị a bụ ajụjụ na-eweghachite nnukwu ahịrị. Dịka ọmụmaatụ, nke a nwere ike ịbụ arịrịọ ụfọdụ ebe ha chefuru ịtọ oke. Ọ na-eweghachite naanị ọdịnaya nke tebụl ma ọ bụ ajụjụ n'ofe tebụl ndị a jụrụ ajụjụ.

Ị nwekwara ike nyochaa ajụjụ ndị na-eji faịlụ nwa oge ma ọ bụ tebụl nwa oge.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky
Na anyị ka nwere ndabere usoro. Usoro ndabere bụ isi ebe nlele ma ọ bụ a na-akpọkwa ha ebe nlele, ndị a bụ akpaaka na mmegharị.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ihe atụ ọzọ nke nlekota oru. Enwere taabụ mmezi n'aka ekpe, gaa na ya ma nwee olileanya ịhụ ihe bara uru. Ma ebe a bụ naanị oge ọrụ agụụ na nchịkọta ọnụ ọgụgụ, ọ dịghị ihe ọzọ. Nke a bụ ozi na-adịghị mma, yabụ anyị kwesịrị inwe ozi mgbe niile gbasara ka usoro ndabere si arụ ọrụ na nchekwa data anyị yana ma enwere nsogbu ọ bụla sitere na ọrụ ha.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Mgbe anyị lere anya n'ebe a na-enyocha ihe, anyị kwesịrị icheta na ebe a na-enyocha ihe na-ekpochapụ ibe ndị ruru unyi site n'ebe nchekwa ihe na diski, wee mepụta ebe nlele. Enwere ike iji ebe nlele a dị ka ebe mgbake ma ọ bụrụ na akwụsị PostgreSQL na mberede na mberede.

N'ihi ya, iji wụnye ibe niile "unyi" na diski, ịkwesịrị ịme ụfọdụ ederede. Na, dị ka a na-achị, na usoro ndị nwere nnukwu ebe nchekwa, nke a bụ ọtụtụ. Ma ọ bụrụ na anyị na-eme ebe nlele ọtụtụ oge na obere oge, mgbe ahụ arụmọrụ diski ga-adaba nke ukwuu. Na arịrịọ ndị ahịa ga-ata ahụhụ site na enweghị ihe onwunwe. Ha ga-asọ mpi maka akụrụngwa na enweghị nrụpụta.

N'ihi nke a, site na pg_stat_bgwriter na-eji mpaghara akọwapụtara, anyị nwere ike nyochaa ọnụọgụ nlele na-eme. Ma ọ bụrụ na anyị nwere ọtụtụ ihe nlele n'ime oge ụfọdụ (na 10-15-20 nkeji, na ọkara elekere), dịka ọmụmaatụ, 3-4-5, mgbe ahụ, nke a nwere ike ịbụ nsogbu. Na ị ga-achọrịrị ileba anya na nchekwa data, lelee nhazi, ihe na-akpata ọtụtụ ebe nlele. Ikekwe enwere ụdị nnukwu ndekọ na-eme. Anyị nwere ike nyochaa ibu ọrụ, n'ihi na anyị etinyelarị eserese ọrụ. Anyị nwere ike tweak ebe nlele ma hụ na ha anaghị emetụta arụmọrụ ajụjụ.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

M na-alaghachi na autovacuum ọzọ n'ihi na ọ bụ ihe dị otú ahụ, dị ka m kwuru, nke nwere ike ịgbakwunye ngwa ngwa ma diski na arụ ọrụ ajụjụ, ya mere ọ dị mkpa mgbe niile ịtụle ego nke autovacuum.

Ọnụọgụ ndị ọrụ akpaaka na nchekwa data nwere oke. Site na ndabara, e nwere atọ n'ime ha, ya mere, ọ bụrụ na anyị na-enwekarị ndị ọrụ atọ na-arụ ọrụ na nchekwa data, nke a pụtara na anyị autovacuum adịghị ahazi, anyị kwesịrị ibuli oke, gbanwee ntọala autovacuum wee banye na nhazi.
Ọ dị mkpa ịtụle ndị ọrụ na-ekpo ọkụ anyị nwere. Ma ọ bụ n'aka onye ọrụ malitere ya, DBA bịara wee jiri aka ya malite ụdị agụụ, nke a kere ibu. Anyị nwere ụdị nsogbu. Ma ọ bụ nke a bụ ọnụ ọgụgụ nke oghere na-ekpughere counter azụmahịa. Maka ụfọdụ ụdị PostgreSQL ndị a bụ oghere dị arọ nke ukwuu. Na ha nwere ike ịgbakwunye arụmọrụ n'ụzọ dị mfe n'ihi na ha na-agụ tebụl dum, nyochaa ihe mgbochi niile dị na tebụl ahụ.

Na, n'ezie, oge nke agụụ. Ọ bụrụ na anyị nwere oghere na-adịte aka nke na-agba ọsọ ogologo oge, mgbe ahụ nke a pụtara na anyị kwesịrị ịṅa ntị na nhazi nhazi na ikekwe chegharịa ntọala ya. N'ihi na ọnọdụ nwere ike ibilite mgbe oghere ahụ na-arụ ọrụ na tebụl ruo ogologo oge (awa 3-4), ma n'oge oge na-arụ ọrụ na-arụ ọrụ, ọnụ ọgụgụ buru ibu nke ahịrị nwụrụ anwụ jisiri ike gbakọta na tebụl ọzọ. Na ozugbo oghere ahụ gwụchara, ọ ga-achọkwa imeghe tebụl a ọzọ. Anyị na-abịakwa n'ọnọdụ - oghere na-adịghị agwụ agwụ. Na na nke a, oghere adịghị anabata ọrụ ya, na tebụl na-amalite nwayọọ nwayọọ na-amụba na nha, ọ bụ ezie na olu data bara uru na ya ka dị otu. Ya mere, n'oge ogologo oghere, anyị na-eleba anya na nhazi ahụ mgbe niile ma gbalịa ịkwalite ya, ma n'otu oge ahụ ka arụmọrụ nke arịrịọ ndị ahịa ghara ịta ahụhụ.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

N'oge a, ọ nweghị ihe nrụnye PostgreSQL nke na-enweghị mmegharị nkwanye ugwu. Ntugharị bụ usoro ibugharị data site na nna ukwu gaa na oyiri.

A na-eme mmegharị na PostgreSQL site na ndekọ azụmahịa. Ọkachamara na-ewepụta ndekọ azụmahịa. Ndekọ azụmahịa ahụ na-agafe njikọ netwọkụ na oyiri, wee megharịa ya na oyiri. Ọ dị mfe.

N'ihi nke a, a na-eji nlele pg_stat_replication iji nyochaa lag mbigharị. Ma ọ bụghị ihe niile dị mfe na ya. Na mbipute 10, echiche ahụ emeela ọtụtụ mgbanwe. Nke mbụ, aha ụfọdụ ngalaba aha. E tinyekwala ubi ụfọdụ. Na mbipute 10, ubi pụtara na-enye gị ohere ịtụle nkwụghachi ngbanwe n'ime sekọnd. Ọ dị mma nke ukwuu. Tupu mbipute 10, ọ ga-ekwe omume ịtụle ngbanwe ngbanwe na bytes. Nhọrọ a ka dị na ụdị 10, i.e. ị nwere ike ịhọrọ ihe ga-adabara gị mma - tụlee lag in bytes ma ọ bụ tụlee nkwụsị na sekọnd. Ọtụtụ ndị na-eme ha abụọ.

Mana ka o sina dị, iji nyochaa lag repplication, ị kwesịrị ịma ọnọdụ nke log na azụmahịa ahụ. Ọkwa ndekọ azụmahịa ndị a dị kpọmkwem na nlele pg_stat_replication. N'ikwu okwu n'otu n'otu, anyị nwere ike were isi ihe abụọ na ndekọ azụmahịa site na iji ọrụ pg_xlog_location_diff(). Gbakọọ delta dị n'etiti ha wee nweta lag mbigharị na bytes. Ọ dị nnọọ mfe ma dị mfe.

Na ụdị 10, a kpọgharịrị ọrụ a ka ọ bụrụ pg_wal_lsn_diff(). N'ozuzu, na ọrụ niile, echiche, na akụrụngwa ebe okwu "xlog" pụtara, ejiri uru "wal" dochie ya. Nke a na-emetụta ma echiche na ọrụ. Nke a bụ ihe ọhụrụ ọhụrụ.

Na mgbakwunye, na ụdị 10, agbakwunyere ahịrị ndị na-egosi adịghị ike. Ndị a bụ ide lag, flush lag, replay lag. Ya bụ, ọ dị mkpa iji nyochaa ihe ndị a. Ọ bụrụ na anyị na-ahụ na anyị nwere replication lag, mgbe ahụ anyị kwesịrị inyocha ihe mere o ji pụta, ebe o si bịa na idozi nsogbu.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ihe fọrọ nke nta ka ọ bụrụ ihe niile dị n'usoro na metrik sistemụ. Mgbe nlebanya ọ bụla malitere, ọ na-amalite site na metrik usoro. Nke a bụ mkpofu nke processors, ebe nchekwa, swap, netwọk na diski. Agbanyeghị, ọtụtụ parampat adịghị ebe ahụ na ndabara.

Ọ bụrụ na ihe niile dị n'usoro na usoro ịmegharị ihe, mgbe ahụ enwere nsogbu na ịmegharị diski. Dịka iwu, ndị mmepe nlekota na-agbakwunye ozi gbasara ntinye. Ọ nwere ike ịbụ na iops ma ọ bụ bytes. Ma ha na-echefu banyere latency na itinye n'ọrụ nke diski ngwaọrụ. Ihe ndị a bụ paramita dị mkpa karịa nke na-enye anyị ohere inyocha ka diski anyị si na-ebu na otú ha si dị ngwa ngwa. Ọ bụrụ na anyị nwere nnukwu latency, nke a pụtara na enwere ụfọdụ nsogbu na diski. Ọ bụrụ na anyị nwere oke itinye n'ọrụ, ọ pụtara na diski anaghị anabata ya. Ndị a bụ njirimara ka mma karịa ntinye.

Ọzọkwa, enwere ike nweta ọnụ ọgụgụ ndị a site na sistemụ faịlụ / proc, dịka a na-eme maka ndị na-emegharị ihe. Amaghị m ihe kpatara na anaghị etinye ozi a na nlekota oru. Mana ka o sina dị, ọ dị mkpa ịnweta nke a na nlekota gị.

Otu ihe ahụ na-emetụta oghere netwọkụ. Enwere ozi gbasara ntinye netwọkụ na ngwugwu, na bytes, mana agbanyeghị, ọ nweghị ozi gbasara latency na enweghị ozi gbasara itinye n'ọrụ, ọ bụ ezie na nke a bụkwa ozi bara uru.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Nleba anya ọ bụla nwere ihe ndọghachi azụ. Na n'agbanyeghị ụdị nlebanya ị na-ewere, ọ gaghị emezu ụfọdụ njirisi. Mana ka o sina dị, ha na-etolite, a na-agbakwunye atụmatụ ọhụrụ na ihe ọhụrụ, yabụ họrọ ihe ma mechaa ya.

Na iji mechaa, ị ga-enwerịrị echiche nke ihe ndekọ ọnụ ọgụgụ enyere pụtara yana otu ị ga-esi jiri ha dozie nsogbu.

Na isi ihe ole na ole:

  • Ị kwesịrị ị na-enyocha nnweta mgbe niile ma nwee dashboards ka ị nwee ike nyochaa ngwa ngwa na ihe niile dị n'usoro na nchekwa data.
  • Ịkwesịrị inwe echiche nke ihe ndị ahịa na-arụ ọrụ na nchekwa data gị iji kpochapụ ndị ahịa ọjọọ wee gbapụ ha.
  • Ọ dị mkpa ịtụle ka ndị ahịa a si arụ ọrụ na data. Ịkwesịrị inwe echiche gbasara oke ọrụ gị.
  • Ọ dị mkpa iji nyochaa otu esi arụ ọrụ a, site n'enyemaka nke ajụjụ ndị a. Ị nwere ike nyochaa ajụjụ, ị nwere ike ịkwalite ha, megharịa ha, wuo ha indexes. Ọ dị ezigbo mkpa.
  • Usoro ndabere nwere ike imetụta arịrịọ ndị ahịa na-adịghị mma, yabụ ọ dị mkpa inyocha na ha anaghị eji ọtụtụ akụrụngwa eme ihe.
  • Sistemu metrics na-enye gị ohere ịme atụmatụ maka ịchacha na ịbawanye ikike nke sava gị, yabụ ọ dị mkpa iji soro ma nyochaa ha.

Ihe ndabere nke nlekota PostgreSQL. Alexei Lesovsky

Ọ bụrụ na ị nwere mmasị na isiokwu a, ị nwere ike soro njikọ ndị a.
http://bit.do/stats_collector - nke a bụ akwụkwọ gọọmentị sitere n'aka onye nchịkọta ọnụ ọgụgụ. Enwere nkọwa nke echiche ọnụ ọgụgụ niile yana nkọwa nke mpaghara niile. Ị nwere ike ịgụ, ghọta na nyochaa ha. Na dabere na ha, wuo eserese gị wee tinye ha na nlebanya gị.

Arịrịọ ihe atụ:
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

Nke a bụ ebe nchekwa ụlọ ọrụ anyị na nke m. Ha nwere ajụjụ atụ. Enweghị ajụjụ sitere na họrọ* site na usoro ebe ahụ. Enweelarị ajụjụ ndị emeberela na njikọta, na-eji ọrụ ndị na-atọ ụtọ na-enye gị ohere ịtụgharị nọmba raw ka ọ bụrụ ụkpụrụ enwere ike ịgụ, dabara adaba, ya bụ, ndị a bụ bytes, oge. Ị nwere ike iburu ha, lelee ha, nyochaa ha, tinye ha na nlekota gị, wulite nlekota gị dabere na ha.

Ajụjụ gị

Ajụjụ: I kwuru na ị gaghị akpọsa ụdịrị, mana ọ ka na-achọsi m ike - kedu ụdị dashboards ị na-eji na ọrụ gị?
Azịza: Ọ dị iche. Ọ na-eme na anyị na-abịakwute onye ahịa na o nwere nlekota nke ya. Na anyị na-adụ ndị ahịa ọdụ na ihe kwesịrị ịgbakwunye na nlekota ha. Ọnọdụ kachasị njọ bụ Zabbix. N'ihi na ọ nweghị ike ịrụ TopN graphs. Anyị onwe anyị na-eji Okemeter, n'ihi na anyị na ndị a na-agba izu na nlekota oru. Ha na-enyocha PostgreSQL dabere na nkọwa nka anyị. Ana m ede ihe ngo nke m, nke na-anakọta data site na Prometheus wee webata ya Grafana. Ọrụ m bụ imepụta onye na-ebupụ onwe m na Prometheus wee nyeghachi ihe niile dị na Grafana.

Ajụjụ: Enwere analogues nke akụkọ AWR ma ọ bụ... mkpokọta? Ị maara ihe dị ka nke a?
Azịza: Ee, amaara m ihe AWR bụ, ọ bụ ihe dị mma. N'oge a enwere igwe igwe dị iche iche na-arụ ọrụ dịka ihe nlereanya a. N'oge ụfọdụ, a na-ede ụfọdụ ntọala n'otu PostgreSQL ma ọ bụ na nchekwa dị iche. Ị nwere ike google ha na ịntanetị, ha nọ ebe ahụ. Otu n'ime ndị mmepe nke ihe dị otú ahụ na-anọdụ ala na sql.ru forum na PostgreSQL eri. Ị nwere ike ijide ya ebe ahụ. Ee, enwere ihe ndị dị otú ahụ, enwere ike iji ha mee ihe. Plus na ya pgCenter Ana m edekwa ihe ga-enye gị ohere ime otu ihe ahụ.

PS1 Ọ bụrụ na ị na-eji postgres_exporter, kedu dashboard ị na-eji? E nwere ọtụtụ n'ime ha. Ha emebela ihe mgbe ochie. Ma eleghị anya, ndị obodo ga-emepụta template emelitere?

PS2 wepụrụ pganalyze n'ihi na ọ bụ onyinye SaaS nke na-elekwasị anya na nleba anya arụmọrụ yana aro nlegharị anya akpaaka.

Naanị ndị ọrụ edebanyere aha nwere ike isonye na nyocha a. banye, Biko.

Kedu nlekota postgresql nke kwadoro onwe ya (ya na dashboard) ị na-atụle nke kacha mma?

  • 30,0%Zabbix + mgbakwunye sitere na Alexey Lesovsky ma ọ bụ zabbix 4.4 ma ọ bụ 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 bụ SaaS nke nwe ya - enweghị m ike ihichapụ ya1

  • 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

Ndị ọrụ 10 tụrụ vootu. Ndị ọrụ 26 anabataghị.

isi: www.habr.com

Tinye a comment