Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Tha mi a 'moladh gum bi thu eòlach air tar-sgrìobhadh na h-aithisg le Alexey Lesovsky bho Data Egret "Basics of PostgreSQL Monitoring"

Anns an aithisg seo, bruidhnidh Alexey Lesovsky mu phrìomh phuingean staitistig postgres, dè tha iad a 'ciallachadh, agus carson a bu chòir an toirt a-steach don sgrùdadh; mu dè na clàran a bu chòir a bhith ann an sgrùdadh, mar a chuireas tu iad ris agus ciamar a mhìnichear iad. Bidh an aithisg feumail do luchd-rianachd stòr-dàta, rianadairean siostam agus luchd-leasachaidh aig a bheil ùidh ann am fuasgladh cheistean Postgres.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Is e m ’ainm Alexey Lesovsky, tha mi a’ riochdachadh Data Egret.

Beagan fhaclan mum dheidhinn fhìn. Thòisich mi o chionn fhada mar rianadair siostam.

Bha mi a’ rianachd gach seòrsa Linux eadar-dhealaichte, rinn mi diofar rudan co-cheangailte ri Linux, ie virtualization, sgrùdadh, dh’ obraich mi le proxies, msaa. Chòrd e rium gu mòr. Agus aig àm air choreigin, thòisich mi a’ dèiligeadh ri PostgreSQL a’ mhòr-chuid den ùine obrach agam. Agus mar sin mean air mhean thàinig mi gu bhith na PostgreSQL DBA.

Agus fad mo chùrsa-beatha, bha ùidh agam a-riamh ann an cuspairean staitistig, sgrùdadh, telemetry. Agus nuair a bha mi nam rianadair siostam, bha mi ag obair gu cruaidh air Zabbix. Agus sgrìobh e seata beag de sgriobtaichean mar zabbix-leudachadh. Bha e gu math mòr-chòrdte san ùine aige. Agus an sin bha e comasach sùil a chumail air rudan cudromach gu math eadar-dhealaichte, chan e a-mhàin Linux, ach cuideachd diofar phàirtean.

A-nis tha mi mu thràth a’ dèanamh PostgreSQL. Tha mi mu thràth a’ sgrìobhadh rud eile a leigeas leat obrachadh le staitistig PostgreSQL. Canar pgIonad (artaigil air Habré - Postgres stat gun nerves agus teannachadh).

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Ro-ràdh beag. Dè na suidheachaidhean a th’ ann le ar teachdaichean, le ar teachdaichean? Tha seòrsa de thubaist co-cheangailte ris an stòr-dàta. Agus nuair a tha an stòr-dàta air ath-nuadhachadh mar-thà, thig ceannard na roinne no an ceannard leasachaidh agus thuirt e: “Caraidean, bu chòir dhuinn sùil a chumail air an stòr-dàta, oir thachair rudeigin dona agus feumar nach tachair seo san àm ri teachd.” Agus an seo tha am pròiseas inntinneach a’ tòiseachadh a thaobh taghadh siostam sgrùdaidh no atharrachadh siostam sgrùdaidh gnàthaichte gus an urrainn dhut sùil a chumail air an stòr-dàta agad - PostgreSQL, MySQL no cuid eile. Agus tha co-obraichean a’ tòiseachadh a’ tabhann: “Chuala mi gu bheil leithid de stòr-dàta ann. Cleachdamaid e." Bidh co-obraichean a 'tòiseachadh ag argamaid ri chèile. Agus aig a ’cheann thall, tha e a’ tionndadh a-mach gu bheil sinn a ’taghadh stòr-dàta de sheòrsa air choreigin, ach tha sgrùdadh PostgreSQL caran dona air a riochdachadh ann agus feumaidh sinn an-còmhnaidh rudeigin a chrìochnachadh. Gabh cuid de thasgaidhean bho GitHub, clone iad, atharraich sgriobtaichean, dòigh air choireigin gleus iad. Agus aig a 'cheann thall bidh e a' tuiteam a-mach gu seòrsa de dh 'obair làimhe.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Mar sin, san aithisg seo, feuchaidh mi ri beagan eòlais a thoirt dhut air mar a roghnaicheas tu sgrùdadh chan ann a-mhàin airson PostgreSQL, ach cuideachd airson an stòr-dàta. Agus gus an eòlas a thoirt seachad a leigeas leat do sgrùdadh a chrìochnachadh gus beagan buannachd fhaighinn às, gus an urrainn dhut sùil a chumail air an stòr-dàta agad le buannachd gus casg a chuir air suidheachaidhean èiginneach sam bith a dh’ fhaodadh èirigh ann an ùine.

Agus na beachdan sin a bhios san aithisg seo, faodar an atharrachadh gu dìreach gu stòr-dàta sam bith, ge bith an e DBMS no noSQL a th’ ann. Mar sin, chan e a-mhàin PostgreSQL an seo, ach bidh mòran reasabaidhean ann air mar a nì thu seo ann am PostgreSQL. Bidh eisimpleirean de cheistean ann, eisimpleirean de bhuidhnean a tha aig PostgreSQL airson sgrùdadh. Agus ma tha na h-aon rudan aig an DBMS agad a leigeas leat an cur ann an sgrùdadh, faodaidh tu cuideachd an atharrachadh, cuir ris agus bidh e ceart gu leòr.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei LesovskyCha toir mi cunntas
bruidhinn air mar a lìbhrigeas agus a stòradh metrics. Cha bhith mi ag ràdh dad mu dheidhinn dàta iar-ghiollachd agus ga thoirt don neach-cleachdaidh. Agus chan abair mi dad mu dheidhinn rabhadh.
Ach ann an cùrsa na sgeòil, seallaidh mi diofar dhealbhan-sgrìn de na sgrùdaidhean a th’ ann mar-thà, dòigh air choireigin nì mi càineadh orra. Ach a dh’ aindeoin sin, feuchaidh mi gun a bhith ag ainmeachadh suaicheantasan gus nach cruthaich mi sanasachd no an-aghaidh sanasachd airson na toraidhean sin. Mar sin, tha a h-uile co-thuiteamas air thuaiream agus fuirich air do mhac-meanmna.
Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky
An toiseach, tuigidh sinn dè a th’ ann an sgrùdadh. Tha sgrùdadh na rud glè chudromach a bhith agad. Tuigidh a h-uile duine seo. Ach aig an aon àm, chan eil sgrùdadh co-cheangailte ri toradh gnìomhachais agus chan eil e a’ toirt buaidh dhìreach air prothaidean a ’chompanaidh, agus mar sin thathas an-còmhnaidh a’ toirt seachad ùine airson sgrùdadh air stèidh iarmharach. Ma tha ùine againn, tha sinn an sàs ann an sgrùdadh, mura h-eil ùine ann, an uairsin ceart gu leòr, cuiridh sinn e san chùl-taic agus uaireigin tillidh sinn gu na gnìomhan sin.

Mar sin, bhon chleachdadh againn, nuair a thig sinn gu teachdaichean, gu tric chan eil sgrùdadh neo-leasaichte gu leòr agus chan eil rudan inntinneach ann a chuidicheadh ​​​​ sinn gus obair nas fheàrr a dhèanamh leis an stòr-dàta. Agus mar sin feumaidh an sgrùdadh a bhith deiseil an-còmhnaidh.

Tha stòran-dàta nan rudan cho iom-fhillte a dh'fheumas tu cuideachd sùil a chumail orra, oir tha stòran-dàta nan stòras fiosrachaidh. Agus tha am fiosrachadh glè chudromach don chompanaidh, chan fhaodar a chall ann an dòigh sam bith. Ach aig an aon àm, tha stòran-dàta nam pìosan bathar-bog gu math iom-fhillte. Tha iad air an dèanamh suas de iomadh co-phàirtean. Agus feumar sùil a chumail air mòran de na co-phàirtean sin.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei LesovskyMa tha sinn a 'bruidhinn gu sònraichte mu PostgreSQL, faodaidh e bhith air a riochdachadh mar sgeama, anns a bheil àireamh mhòr de phàirtean. Bidh na co-phàirtean sin ag eadar-obrachadh le chèile. Agus aig an aon àm, tha am fo-shiostam ris an canar Stats Collector aig PostgreSQL, a leigeas leat staitistig a chruinneachadh mu obrachadh nan fo-shiostaman sin agus eadar-aghaidh a thoirt don rianaire no don neach-cleachdaidh gus an urrainn dha na staitistig sin fhaicinn.

Tha an staitistig seo air a thaisbeanadh ann an cruth seata de ghnìomhan agus bheachdan (sealladh). Faodaidh iad cuideachd a bhith air an ainmeachadh bùird. Is e sin, le bhith a’ cleachdadh teachdaiche psql cunbhalach, faodaidh tu ceangal ris an stòr-dàta, na gnìomhan agus na beachdan sin a thaghadh, agus àireamhan sònraichte fhaighinn mu obrachadh fo-shiostaman PostgreSQL.

Faodaidh tu na h-àireamhan sin a chur ris an t-siostam sgrùdaidh as fheàrr leat, grafaichean a tharraing, feartan a chuir ris agus anailisean fhaighinn san fhad-ùine.

Ach san aithisg seo, cha bhith mi a’ còmhdach na gnìomhan sin gu lèir gun eisgeachd, oir faodaidh e latha slàn a ghabhail. Bheir mi iomradh gu litireil air dhà, trì no ceithir rudan agus innsidh mi dhut mar a chuidicheas iad le bhith a’ dèanamh sgrùdadh nas fheàrr.
Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky
Agus ma bhios sinn a 'bruidhinn mu bhith a' cumail sùil air an stòr-dàta, dè a dh'fheumar a sgrùdadh? An toiseach, feumaidh sinn sùil a chumail air na tha ri fhaighinn, oir is e seirbheis a th’ anns an stòr-dàta a bheir cothrom air dàta do luchd-dèiligidh agus feumaidh sinn sùil a chumail air na tha ri fhaighinn, agus cuideachd cuid de na feartan càileachdail is cainneachdail aige a thoirt seachad.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Feumaidh sinn cuideachd sùil a chumail air na teachdaichean a tha a’ ceangal ris an stòr-dàta againn, oir faodaidh iad a bhith nan teachdaichean àbhaisteach agus nan teachdaichean cronail a dh’ fhaodadh cron a dhèanamh air an stòr-dàta. Feumaidh iad cuideachd a bhith air an sgrùdadh agus air an lorg.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Nuair a bhios teachdaichean a’ ceangal ris an stòr-dàta, tha e follaiseach gun tòisich iad ag obair leis an dàta againn, agus mar sin feumaidh sinn sùil a chumail air mar a bhios teachdaichean ag obair le dàta: leis na clàran, gu ìre nas lugha leis na clàran-amais. Is e sin, feumaidh sinn measadh a dhèanamh air an eallach obrach a tha ar luchd-dèiligidh a’ cruthachadh.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Ach tha an t-uallach obrach cuideachd a 'gabhail a-steach, gu dearbh, iarrtasan. Bidh tagraidhean a’ ceangal ris an stòr-dàta, a’ faighinn cothrom air dàta le bhith a’ cleachdadh cheistean, agus mar sin tha e cudromach measadh a dhèanamh air na ceistean a th’ againn san stòr-dàta, sùil a chumail air cho iomchaidh ‘s a tha iad, nach eil iad cam, gum feumar cuid de roghainnean ath-sgrìobhadh agus a dhèanamh gus an obraich iad nas luaithe agus le coileanadh nas fheàrr.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Agus leis gu bheil sinn a’ bruidhinn mun stòr-dàta, tha an stòr-dàta an-còmhnaidh na phròiseas cùl-fhiosrachaidh. Bidh pròiseasan cùl-fhiosrachaidh a 'cumail coileanadh an stòr-dàta aig ìre mhath, agus mar sin feumaidh iad beagan ghoireasan airson iad fhèin a ruith. Agus aig an aon àm, faodaidh iad a dhol thairis air goireasan iarrtas teachdaiche, agus mar sin faodaidh obair sanntach pròiseasan cùl-fhiosrachaidh buaidh dhìreach a thoirt air coileanadh iarrtasan teachdaiche. Mar sin, feumar sùil a chumail orra cuideachd agus sùil a chumail orra gus nach bi saobhadh sam bith ann a thaobh pròiseasan cùl-fhiosrachaidh.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Agus tha sin uile a thaobh sgrùdadh stòr-dàta fhathast ann am meatrach an t-siostaim. Ach leis gu bheil ar bun-structar gu lèir sa mhòr-chuid a’ dol gu na sgòthan, bidh metrics siostam aoigheachd fa-leth an-còmhnaidh a’ seargadh a-steach don chùl-raon. Ach ann an stòran-dàta, tha iad fhathast buntainneach agus, gu dearbh, tha e riatanach cuideachd sùil a chumail air siostam metrics.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Le meatrach siostam, tha a h-uile dad gu math ceart, tha a h-uile siostam sgrùdaidh ùr-nodha mar-thà a’ toirt taic do na meatrach sin, ach san fharsaingeachd, chan eil cuid de cho-phàirtean fhathast gu leòr agus feumar cuid de rudan a chur ris. Cuiridh mi fios orra cuideachd, bidh grunn shleamhnagan mun deidhinn.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky
Is e ruigsinneachd a’ chiad phuing den phlana. Dè a th’ ann an ruigsinneachd? Is e ruigsinneachd nam thuigse comas a ’bhunait airson ceanglaichean a fhrithealadh, is e sin, tha am bonn air a thogail, tha e, mar sheirbheis, a’ gabhail ri ceanglaichean bho luchd-dèiligidh. Agus faodar an ruigsinneachd seo a mheasadh le cuid de fheartan. Tha na feartan sin gu math goireasach airson an taisbeanadh air deas-bhòrd.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky
Tha fios aig a h-uile duine dè a th’ ann an clàran. Seo nuair a thug thu aon sùil air an sgrion, a thug geàrr-chunntas air an fhiosrachadh riatanach. Agus faodaidh tu mar-thà dearbhadh sa bhad a bheil duilgheadas san stòr-dàta no nach eil.
Mar sin, bu chòir cothrom air an stòr-dàta agus prìomh fheartan eile a bhith air an cur air deas-bhòrd an-còmhnaidh gus am bi am fiosrachadh seo ri làimh, an-còmhnaidh còmhla riut. Cuid de mhion-fhiosrachadh a bharrachd a tha mar-thà a’ cuideachadh le bhith a’ sgrùdadh thachartasan, ann a bhith a’ sgrùdadh cuid de shuidheachaidhean èiginneach, feumaidh iad mar-thà a bhith air an cur air deas-bhòrdan àrd-sgoile, no air am falach ann an ceanglaichean drile a tha a’ leantainn gu siostaman sgrùdaidh treas-phàrtaidh.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Eisimpleir de aon siostam sgrùdaidh aithnichte. Is e siostam sgrùdaidh fìor fhionnar a tha seo. Bidh e a’ cruinneachadh tòrr dàta, ach bho mo bheachd-sa, tha bun-bheachd neònach aige air clàran-dannsa. Tha ceangal ann "Cruthaich Dashboard". Ach nuair a chruthaicheas tu deas-bhòrd, cruthaichidh tu liosta dà-cholbh, liosta de chlàran. Agus nuair a dh'fheumas tu coimhead air rudeigin, tòisichidh tu a 'briogadh, a' scrolladh, a 'coimhead airson a' chairt a tha thu ag iarraidh leis an luchag. Agus bheir seo ùine, i.e. chan eil clàran-làimhe ann mar sin. Chan eil ann ach liostaichean de chlàran.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Dè bu chòir a chur ris na clàran-amais seo? Faodaidh tu tòiseachadh le leithid de fheart mar ùine freagairt. Tha an sealladh pg_stat_statements aig PostgreSQL. Tha e ciorramach gu bunaiteach, ach is e seo aon de na seallaidhean siostam cudromach a bu chòir a bhith air a chomasachadh agus a chleachdadh an-còmhnaidh. Bidh e a’ stòradh fiosrachadh mu gach ceist ruith a chaidh a chuir gu bàs san stòr-dàta.

A rèir sin, is urrainn dhuinn tòiseachadh bhon fhìrinn gun urrainn dhuinn an ùine cur gu bàs iomlan de gach iarrtas a ghabhail agus a roinn leis an àireamh de dh’ iarrtasan a ’cleachdadh na raointean gu h-àrd. Ach is e seo teòthachd cho cuibheasach san ospadal. Is urrainn dhuinn togail air raointean eile - an ùine cur an gnìomh as ìsle, an ìre as àirde agus am meadhan. Agus is urrainn dhuinn eadhon ceudadan a thogail, tha na gnìomhan co-fhreagarrach aig PostgreSQL airson seo. Agus gheibh sinn cuid de dh’ àireamhan a tha a’ comharrachadh ùine freagairt an stòr-dàta againn airson iarrtasan a chaidh a chrìochnachadh mar-thà, ie cha bhith sinn a’ cur an gnìomh an iarrtas meallta ‘tagh 1’ agus a’ coimhead air an ùine freagairt, ach bidh sinn a’ dèanamh mion-sgrùdadh air an ùine freagairt airson iarrtasan a chaidh a chrìochnachadh mu thràth agus a’ tarraing an dàrna cuid. figear air leth, no togaidh sinn graf stèidhichte air.

Tha e cuideachd cudromach sùil a chumail air an àireamh de mhearachdan a tha an siostam a’ gineadh an-dràsta. Agus airson seo faodaidh tu an sealladh pg_stat_database a chleachdadh. Tha sinn ag amas air an raon xact_rollback. Tha an raon seo chan ann a-mhàin a’ sealltainn an àireamh de rolladh air ais a tha a’ tachairt san stòr-dàta, ach bidh e cuideachd a’ toirt aire don àireamh mhearachdan. An ìre mhath a’ bruidhinn, is urrainn dhuinn am figear seo a thaisbeanadh air an deas-bhòrd againn agus faicinn cia mheud mearachd a th’ againn an-dràsta. Ma tha tòrr mhearachdan ann, tha seo mar-thà na adhbhar math airson coimhead a-steach do na logaichean agus faicinn dè an seòrsa mearachdan a th ’annta agus carson a tha iad a’ tachairt, agus an uairsin tasgadh agus fuasgladh fhaighinn orra.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Faodaidh tu a leithid de rud a chur ris mar tachometer. Is iad sin an àireamh de ghnothaichean gach diog agus an àireamh de dh’ iarrtasan gach diog. An ìre mhath a’ bruidhinn, faodaidh tu na h-àireamhan sin a chleachdadh mar choileanadh gnàthach an stòr-dàta agad agus faicinn a bheil stùcan ann an iarrtasan, stùcan ann an gnothaichean, no, air an làimh eile, gu bheil an stòr-dàta fo-luchdaichte leis gun do thuit cùl-taic de sheòrsa air choreigin. Tha e cudromach an-còmhnaidh coimhead air an fhigear seo agus cuimhnich gu bheil coileanadh mar seo àbhaisteach airson ar pròiseact, agus gu bheil na luachan gu h-àrd agus gu h-ìosal mar sheòrsa de dhuilgheadas agus do-thuigsinn, a tha a’ ciallachadh gum feum sinn coimhead air carson a tha àireamhan mar sin. .

Gus tuairmse a dhèanamh air an àireamh de ghnothaichean, is urrainn dhuinn a-rithist iomradh a thoirt air sealladh pg_stat_database. Faodaidh sinn an àireamh de gheallaidhean agus an àireamh de rolladh air ais a chur ris gus an àireamh de ghnothaichean gach diog fhaighinn.

Tha a h-uile duine a 'tuigsinn gum faod grunn iarrtasan a bhith a' freagairt air aon ghnothach? Mar sin tha TPS agus QPS beagan eadar-dhealaichte.

Gheibhear an àireamh de dh’ iarrtasan gach diog bho pg_stat_statements agus dìreach obraich a-mach suim gach iarrtas a chaidh a chuir gu bàs. Tha e soilleir gu bheil sinn a 'dèanamh coimeas eadar an luach làithreach leis an fhear roimhe, thoir air falbh, faigh an delta, faigh an t-suim.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Faodaidh tu meatrach a bharrachd a chur ris ma thogras tu, a chuidicheas tu cuideachd gus measadh a dhèanamh air na tha ri fhaighinn den stòr-dàta againn agus lorg an robh ùine downt ann.

Is e aon de na slatan-tomhais sin uptime. Ach tha uptime ann am PostgreSQL beagan duilich. Innsidh mi dhut carson. Nuair a thòisicheas PostgreSQL, bidh e a’ tòiseachadh ag aithris uptime. Ach ma bha aig àm air choreigin, mar eisimpleir, gu robh cuid de dh ’obair a’ ruith air an oidhche, thàinig neach-marbhadh OOM agus chuir e crìoch air pròiseas pàiste PostgreSQL gu làidir, an uairsin anns a ’chùis seo bidh PostgreSQL a’ crìochnachadh ceangal a h-uile neach-dèiligidh, ag ath-shuidheachadh an raon cuimhne sharded agus a ’tòiseachadh air faighinn seachad air. am puing-seic mu dheireadh. Agus fhad ‘s a mhaireas an ath-bheothachadh seo bhon àite-seic, chan eil an stòr-dàta a’ gabhail ri ceanglaichean, is e sin, faodar an suidheachadh seo a mheasadh mar ùine downt. Ach cha dèan seo ath-shuidheachadh air a’ chunntair uptime, oir tha e a’ toirt aire don ùine a thòisich am maighstir-puist bhon chiad mhionaid. Mar sin, faodar suidheachaidhean mar sin a sheachnadh.

Bu chòir dhut cuideachd sùil a chumail air an àireamh de luchd-obrach falamh. Tha fios aig a h-uile duine dè a th’ ann an autovacuum ann am PostgreSQL? Is e fo-shiostam inntinneach a tha seo ann am PostgreSQL. Chaidh mòran artaigilean a sgrìobhadh mu dheidhinn, chaidh mòran aithisgean a dhèanamh. Tòrr còmhraidh mu dheidhinn falamh, mar a bu chòir dha obrachadh. Tha mòran den bheachd gu bheil e na olc riatanach. Ach tha e. Is e seo seòrsa de neach-cruinneachaidh sgudail a bhios a’ glanadh dreachan seann-fhasanta de shreathan nach eil feumach air gin de na gnothaichean agus a’ saoradh àite ann an clàran agus clàran-amais airson sreathan ùra.

Carson a bu chòir sùil a chumail air? Leis gu bheil am falamh uaireannan a’ goirteachadh mòran. Bidh e a 'caitheamh mòran ghoireasan agus bidh iarrtasan luchd-cleachdaidh a' tòiseachadh a 'fulang le seo.

Agus bu chòir sùil a chumail air tron ​​​​t-sealladh pg_stat_activity, air am bruidhinn mi san ath earrann. Tha an sealladh seo a' sealltainn gnìomhachd làithreach san stòr-dàta. Agus tron ​​ghnìomhachd seo, is urrainn dhuinn sùil a chumail air an àireamh de fhalamhaichean a tha ag obair an-dràsta. Is urrainn dhuinn sùil a chumail air vacuums agus faicinn ma tha sinn air a dhol thairis air a’ chrìoch, gur e àm a tha seo airson coimhead a-steach do na roghainnean PostgreSQL agus dòigh air choireigin obrachadh a’ bheàrn a bharrachadh.

Is e feart eile de PostgreSQL gu bheil PostgreSQL gu math tinn le gnothaichean fada. Gu sònraichte, bho ghnothaichean a tha a 'crochadh airson ùine mhòr agus gun dad a dhèanamh. Is iad seo na rudan ris an canar stat idle-in-transaction. Bidh malairt mar seo a’ cumail ghlasan, tha e a’ cur casg air a’ bheàrn bho bhith ag obair. Agus mar thoradh air an sin - bidh na clàran a 'dol suas, bidh iad a' meudachadh ann am meud. Agus ceistean a bhios ag obair leis na clàran seo, bidh iad a 'tòiseachadh ag obair nas slaodaiche, oir feumaidh tu na seann dreachan de shreathan a shlaodadh bho chuimhne gu diosg agus air ais. Mar sin, feumar sùil a chumail cuideachd air an ùine, fad nan gnothaichean as fhaide, na h-iarrtasan falamh as fhaide. Agus ma chì sinn cuid de phròiseasan a tha air a bhith a’ ruith airson ùine mhòr, airson barrachd air 10-20-30 mionaid airson luchd OLTP, feumaidh sinn aire a thoirt dhaibh agus toirt orra crìochnachadh, no an tagradh a bharrachadh gus am bi chan eil iad air an gairm agus chan eil iad a 'crochadh cho fada. Airson luchdan anailis, tha 10-20-30 mionaid àbhaisteach, tha feadhainn nas fhaide ann cuideachd.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky
An ath rud tha an roghainn againn le teachdaichean ceangailte. Nuair a tha sinn air deas-bhòrd a chruthachadh mu thràth, air prìomh mheatrics ruigsinneachd a chuir air, is urrainn dhuinn cuideachd fiosrachadh a bharrachd a chuir ris mu luchd-dèiligidh ceangailte an sin.

Tha am fiosrachadh mu luchd-dèiligidh ceangailte cudromach oir, bho shealladh PostgreSQL, tha diofar sheòrsaichean de luchd-dèiligidh ann. Tha luchd-dèiligidh math ann agus tha droch luchd-dèiligidh ann.

Eisimpleir shìmplidh. Le teachdaiche, tha mi a’ ciallachadh an tagradh. Tha an tagradh air ceangal ris an stòr-dàta agus sa bhad tòisichidh e a ’cur a h-iarrtasan an sin, bidh an stòr-dàta a’ pròiseasadh agus gan cur an gnìomh, agus a ’tilleadh na toraidhean chun neach-dèiligidh. Tha iad sin nan teachdaichean math agus ceart.

Tha suidheachaidhean ann gu bheil an neach-dèiligidh ceangailte, bidh e a 'cumail a' cheangail, ach chan eil e a 'dèanamh dad. Tha e ann an staid leisg.

Ach tha droch luchd-dèiligidh ann. Mar eisimpleir, cheangail an aon neach-dèiligidh, dh’ fhosgail e gnothach, rinn e rudeigin san stòr-dàta, agus an uairsin chaidh e a-steach don chòd, mar eisimpleir, gus faighinn gu stòr taobh a-muigh no gus an dàta a fhuaireadh a phròiseasadh an sin. Ach aig an aon àm, cha do dhùin e an gnothach. Agus tha an gnothach a 'crochadh anns an stòr-dàta agus a' cumail a 'ghlais air an loidhne. Is e droch staid a tha seo. Agus ma tha an tagradh an àiteigin a-staigh gu h-obann a’ tuiteam le eisgeachd (Eisimpleir), faodaidh an gnothach fuireach fosgailte airson ùine mhòr. Agus bheir seo buaidh dhìreach air coileanadh PostgreSQL. Ruithidh PostgreSQL nas slaodaiche. Mar sin, tha e cudromach sùil a chumail air teachdaichean mar sin ann an ùine agus crìoch a chuir air an obair aca gu làidir. Agus feumaidh tu an tagradh agad a bharrachadh gus nach bi suidheachaidhean mar sin ann.

Tha droch luchd-dèiligidh eile a 'feitheamh ri luchd-dèiligidh. Ach bidh iad a 'fàs dona air sgàth suidheachaidhean. Mar eisimpleir, gnìomh sìmplidh leisg: faodaidh e malairt fhosgladh, glasan a ghabhail air cuid de loidhnichean, an uairsin tuitidh e an àiteigin sa chòd, a ’fàgail malairt crochte. Thig neach-dèiligidh eile, iarr an aon dàta, ach thig e tarsainn air glas, oir tha an gnothach crochte sin mu thràth a ’cumail glasan air cuid de shreathan riatanach. Agus bidh dùil ris an dàrna gnothach nuair a bhios a’ chiad ghnothach deiseil no nuair a dhùineas an rianadair e gu làidir. Mar sin, faodaidh gnothaichean ri thighinn cruinneachadh agus cur thairis air crìoch ceangail an stòr-dàta. Agus nuair a tha a’ chrìoch làn, chan urrainn don tagradh obrachadh leis an stòr-dàta tuilleadh. Tha seo mar-thà na shuidheachadh èiginneach don phròiseact. Mar sin, feumar sùil a chumail air droch luchd-ceannach agus freagairt ann an deagh àm.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Eisimpleir eile de sgrùdadh. Agus an seo tha deas-bhòrd iomchaidh. Tha fiosrachadh mu cheanglaichean bho shuas. Ceangal DB - 8 pìosan. Agus tha e uile. Chan eil fiosrachadh sam bith againn mu dè na teachdaichean a tha gnìomhach, dè na teachdaichean a tha dìreach leisg, gun dad a dhèanamh. Chan eil fiosrachadh sam bith ann mu ghnothaichean crochte agus ceanglaichean ri thighinn, is e sin figear mar seo a sheallas an àireamh de cheanglaichean agus sin e. Agus an uairsin dèan tomhas dhut fhèin.
Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky
Mar sin, gus am fiosrachadh seo a chur ri sgrùdadh, feumaidh tu iomradh a thoirt air sealladh siostam pg_stat_activity. Ma chaitheas tu tòrr ùine ann am PostgreSQL, is e sealladh fìor mhath a tha seo a bu chòir a bhith nad charaid dhut, oir tha e a’ sealltainn na gnìomhachd làithreach ann am PostgreSQL, ie dè tha a’ tachairt ann. Tha loidhne air leth ann airson gach pròiseas a sheallas fiosrachadh mun phròiseas seo: bhon aoigh a chaidh an ceangal a dhèanamh, fo dè an neach-cleachdaidh, fo dè an t-ainm, nuair a thòisich an gnothach, dè an t-iarrtas a tha ga chur an gnìomh an-dràsta, dè an t-iarrtas a chaidh a chur gu bàs mu dheireadh. Agus, a rèir sin, is urrainn dhuinn staid an neach-dèiligidh a mheasadh leis an raon stat. An ìre mhath a 'bruidhinn, is urrainn dhuinn a bhith còmhla ris an raon seo agus na stats sin a tha a-nis san stòr-dàta fhaighinn agus an àireamh de cheanglaichean a tha leis an stat seo san stòr-dàta. Agus is urrainn dhuinn na h-àireamhan a fhuaireadh mar-thà a chuir chun sgrùdadh againn agus grafaichean a tharraing orra.
Tha e cuideachd cudromach measadh a dhèanamh air fad a’ ghnothaich. Tha mi air a ràdh mar-thà gu bheil e cudromach measadh a dhèanamh air fad falamh, ach tha gnothaichean cuideachd air am measadh san aon dòigh. Tha raointean xact_start agus query_start ann. Bidh iad, an ìre mhath a 'bruidhinn, a' sealltainn àm tòiseachaidh a 'ghnothaich agus àm tòiseachaidh an iarrtais. Gabhaidh sinn an gnìomh now(), a sheallas an clàr-ama làithreach, agus thoir air falbh a’ ghnothach agus a dh’ iarras clàran-ama. Agus gheibh sinn fad a’ ghnothaich, fad an iarrtais.

Ma chì sinn gnothaichean fada, bu chòir dhuinn an crìochnachadh mu thràth. Airson luchd OLTP, tha gnothaichean fada mu thràth nas fhaide na 1-2-3 mionaidean. Airson luchd OLAP, tha gnothaichean fada àbhaisteach, ach ma ruitheas iad airson barrachd air dà uair a thìde, tha seo cuideachd na chomharra gu bheil skew againn an àiteigin.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky
Aon uair ‘s gu bheil an luchd-dèiligidh air ceangal a dhèanamh ris an stòr-dàta, tòisichidh iad ag obair leis an dàta againn. Bidh iad a’ faighinn cothrom air bùird, bidh iad a’ faighinn cothrom air clàran-amais gus dàta fhaighinn bho bhòrd. Agus tha e cudromach measadh a dhèanamh air mar a bhios luchd-ceannach ag obair leis an dàta seo.

Tha seo riatanach gus ar n-eallach obrach a mheasadh agus gus tuigse fhaighinn air dè na bùird anns a bheil an “as teotha”. Mar eisimpleir, tha seo riatanach ann an suidheachaidhean far a bheil sinn airson bùird “teth” a chuir air seòrsa de stòradh SSD luath. Mar eisimpleir, faodar cuid de chlàran tasglann nach do chleachd sinn airson ùine fhada a ghluasad gu seòrsa de thasglann “fuar”, gu diosgan SATA agus leigeil leotha fuireach ann, gheibhear thuca mar a dh ’fheumar.

Tha e feumail cuideachd airson neo-riaghailteachdan a lorg às deidh sgaoilidhean agus cleachdadh sam bith. Canaidh sinn gun do chuir am pròiseact feart ùr a-mach. Mar eisimpleir, chuir sinn gnìomh ùr ris airson a bhith ag obair leis an stòr-dàta. Agus ma thogas sinn grafaichean airson clàran a chleachdadh, is urrainn dhuinn na neo-riaghailteachdan sin a lorg gu furasta air na grafaichean sin. Mar eisimpleir, ùraich bursts no cuir às do spreadhaidhean. Bidh e gu math follaiseach.

Tha e comasach cuideachd neo-riaghailteachdan de staitistig “floated” a lorg. Dè a tha e a’ ciallachadh? Tha dealbhaiche ceiste fìor làidir agus fìor mhath aig PostgreSQL. Agus bidh an luchd-leasachaidh a 'caitheamh mòran ùine airson a leasachadh. Ciamar a tha e ag obair? Gus planaichean math a thogail, bidh PostgreSQL a’ tional staitistig mu sgaoileadh dàta ann an clàran le ùine sònraichte, le beagan ùine. Is iad seo na luachan as trice: an àireamh de luachan sònraichte, fiosrachadh mu NULL sa chlàr, tòrr fiosrachaidh.

Stèidhichte air na staitistig seo, bidh an dealbhaiche a’ togail grunn cheistean, a’ taghadh am fear as fheàrr, agus a’ cleachdadh a’ phlana ceiste seo gus a’ cheist fhèin a chuir an gnìomh agus dàta a thilleadh.

Agus tha e a 'tachairt gu bheil na staitistig "a' seòladh". Dh'atharraich an dàta càileachd is meud dòigh air choireigin sa chlàr, ach cha deach na staitistig a chruinneachadh. Agus is dòcha nach bi na planaichean a chaidh a chruthachadh cho math. Agus ma thionndaidheas na planaichean againn gu bhith suboptimal a thaobh an sgrùdaidh a thathar a’ cruinneachadh, a rèir nan clàran, chì sinn na neo-riaghailteachdan sin. Mar eisimpleir, an àiteigin dh’ atharraich an dàta gu càileachdail agus an àite a’ chlàr-amais, thòisichear a’ cleachdadh pas sreathach tron ​​chlàr, i.e. mura feum a’ cheist ach 100 sreath a thilleadh (tha crìoch de 100 ann), thèid àireamhachd iomlan a dhèanamh airson a’ cheist seo. Agus tha seo an-còmhnaidh a 'toirt fìor dhroch bhuaidh air coileanadh.

Agus chì sinn e ann an sgrùdadh. Agus mar-thà thoir sùil air a’ cheist seo, dèan mìneachadh air a shon, cruinnich staitistig, tog clàr-amais ùr a bharrachd. Agus mar-thà a 'freagairt na trioblaid seo. Mar sin tha e cudromach.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Eisimpleir eile de sgrùdadh. Tha mi a’ smaoineachadh gu bheil tòrr dhaoine ga aithneachadh leis gu bheil fèill mhòr air. Cò a chleachdas anns na pròiseactan aca Prometheus? Agus cò a chleachdas an toradh seo ann an co-bhonn ri Prometheus? Is e an fhìrinn gu bheil deas-bhòrd ann an stòr àbhaisteach an sgrùdaidh seo airson a bhith ag obair le PostgreSQL - postgres_exporter Prometheus. Ach tha aon droch mhion-fhiosrachadh an seo.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Tha grunn chlàran ann. Agus tha bytes air an sònrachadh mar aonachd, i.e. tha 5 grafaichean ann. Is iad sin cuir a-steach dàta, Ùraich dàta, cuir às do dhàta, Faigh dàta agus dàta Tilleadh. Tha bytes air an sònrachadh mar meud an aonaid. Ach is e an fhìrinn gu bheil staitistig ann am PostgreSQL a ’tilleadh dàta ann an tuple (sreathan). Agus, a rèir sin, tha na grafaichean sin nan dòigh fìor mhath air an eallach obrach agad a dhì-meas grunn thursan, grunn thursan, leis nach e byte a th ’ann an tuple, is e sreang a th’ ann an tuple, is e tòrr bytes a th ’ann agus tha e an-còmhnaidh de dh’ fhaid caochlaideach. Is e sin, is e obair neo-phractaigeach no gu math duilich a th’ ann a bhith a’ tomhas an eallach obrach ann am bytes a’ cleachdadh tuples. Mar sin, nuair a chleachdas tu deas-bhòrd no sgrùdadh togte, tha e an-còmhnaidh cudromach tuigsinn gu bheil e ag obair gu ceart agus gun till e dàta air a mheasadh gu ceart thugad.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Ciamar a gheibh thu staitistig air na clàran seo? Gus seo a dhèanamh, tha teaghlach de bheachdan aig PostgreSQL. Agus tha am prìomh shealladh pg_stat_user_tables. User_tables - tha seo a 'ciallachadh gu bheil na clàran air an cruthachadh às leth an neach-cleachdaidh. An coimeas ri sin, tha seallaidhean siostam ann, a bhios PostgreSQL fhèin a’ cleachdadh. Agus tha clàr geàrr-chunntas Alltables, a tha a 'gabhail a-steach an dà chuid siostam agus neach-cleachdaidh. Faodaidh tu tòiseachadh bho gin dhiubh as fheàrr leat.

Faodar na raointean gu h-àrd a chleachdadh gus tuairmse a dhèanamh air an àireamh de chuir a-steach, ùrachadh agus sguabadh às. Bidh an deas-bhòrd eisimpleir a chleachd mi a’ cleachdadh nan raointean sin gus feartan an eallach obrach a mheasadh. Mar sin, is urrainn dhuinn togail orra cuideachd. Ach is fhiach cuimhneachadh gur e tuples a tha seo, chan e bytes, agus mar sin chan urrainn dhuinn a thoirt agus a dhèanamh bytes.

Stèidhichte air an dàta seo, is urrainn dhuinn na clàran TopN ris an canar a thogail. Mar eisimpleir, Top-5, Top-10. Agus faodaidh tu sùil a chumail air na bùird teth sin a thathas a’ cleachdadh barrachd na feadhainn eile. Mar eisimpleir, 5 bùird "teth" airson cuir a-steach. Agus a rèir nan TopN-clàran sin, bidh sinn a’ measadh ar n-eallach obrach agus is urrainn dhuinn eallach obrach a mheasadh às deidh fiosan is ùrachadh sam bith, agus cleachdadh.

Tha e cuideachd cudromach measadh a dhèanamh air meud a’ bhùird, oir uaireannan bidh luchd-leasachaidh a’ sgaoileadh feart ùr, agus bidh na bùird againn a’ tòiseachadh a’ dol suas anns na meudan mòra aca, oir chuir iad romhpa àireamh a bharrachd de dhàta a chur ris, ach cha do rinn iad ro-innse ciamar a dhèanadh seo. toirt buaidh air meud an stòr-dàta. Bidh cùisean mar seo cuideachd nan iongnadh dhuinn.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Agus a-nis beagan ceist dhut. Dè a’ cheist nuair a mhothaicheas tu an luchd air frithealaiche an stòr-dàta? Dè an ath cheist a th’ agad?

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Ach tha an fhìor cheist mar a leanas. Dè na h-iarrtasan a tha an luchd ag adhbhrachadh? Is e sin, chan eil e inntinneach coimhead air na pròiseasan a tha an luchd ag adhbhrachadh. Tha e soilleir ma tha an neach-aoigheachd le stòr-dàta, gu bheil an stòr-dàta a’ ruith an sin agus tha e soilleir nach tèid ach stòran-dàta a chuir às an sin. Ma dh’ fhosglas sinn Top, chì sinn an sin liosta de phròiseasan PostgreSQL a tha a’ dèanamh rudeigin. Bho Top cha bhi e soilleir dè tha iad a 'dèanamh.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Mar sin, feumaidh tu na ceistean sin a lorg a dh ’adhbhraicheas an luchd as motha, oir tha gleusadh ceiste, mar riaghailt, a’ toirt barrachd prothaid na rèiteachadh PostgreSQL no gleusadh siostam obrachaidh, no eadhon gleusadh bathar-cruaidh. A rèir mo thuairmse, tha seo mu 80-85-90%. Agus tha seo air a dhèanamh mòran nas luaithe. Tha e nas luaithe an t-iarrtas a cheartachadh na bhith a’ ceartachadh an rèiteachaidh, cuir air dòigh ath-thòiseachadh, gu sònraichte mura gabh an stòr-dàta ath-thòiseachadh no bathar-cruaidh a chur ris. Tha e nas fhasa a’ cheist ath-sgrìobhadh an àiteigin no clàr-amais a chur ris gus toradh nas fheàrr fhaighinn bhon cheist seo.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky
Mar sin, tha e riatanach sùil a chumail air iarrtasan agus iomchaidheachd. Gabhamaid eisimpleir eile de sgrùdadh. Agus an seo, cuideachd, tha e coltach gur e deagh sgrùdadh a th’ ann. Tha fiosrachadh ann mu ath-riochdachadh, tha fiosrachadh ann mu thionndadh, bacadh, cleachdadh ghoireasan. Tha a h-uile dad gu math, ach chan eil fiosrachadh sam bith ann mu iarrtasan. Chan eil e soilleir dè na ceistean a tha a’ ruith san stòr-dàta againn, dè cho fada ‘s a ruitheas iad, cia mheud de na ceistean sin. Feumaidh am fiosrachadh seo a bhith againn an-còmhnaidh ann an sgrùdadh.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Agus airson am fiosrachadh seo fhaighinn, is urrainn dhuinn am modal pg_stat_statements a chleachdadh. Air a bhunait, faodaidh tu measgachadh de ghrafaigean a thogail. Mar eisimpleir, gheibh thu fiosrachadh mu na h-iarrtasan as trice, is e sin, air na h-iarrtasan sin a thèid a choileanadh as trice. Tha, às deidh cleachdadh tha e cuideachd glè fheumail coimhead air agus tuigsinn a bheil àrdachadh sam bith ann an iarrtasan.

Faodaidh tu sùil a chumail air na ceistean as fhaide, i.e. na ceistean sin as fhaide. Bidh iad a’ ruith air a’ phròiseasar, bidh iad ag ithe I/O. Is urrainn dhuinn seo a mheasadh cuideachd leis na raointean total_time, mean_time, blk_write_time agus blk_read_time.

Is urrainn dhuinn na h-iarrtasan as truime a mheasadh agus a sgrùdadh a thaobh cleachdadh ghoireasan, an fheadhainn a leughas bho diosc, an fheadhainn a bhios ag obair le cuimhne, no, air an làimh eile, a chruthaicheas eallach sgrìobhaidh air choireigin.

Is urrainn dhuinn na h-iarrtasan as fialaidh a mheasadh. Is iad seo na ceistean a thilleas àireamh mhòr de shreathan. Mar eisimpleir, dh’ fhaodadh gur e iarrtas de sheòrsa air choreigin a th’ ann far an do dhìochuimhnich iad crìoch a shuidheachadh. Agus bidh e dìreach a’ tilleadh susbaint iomlan a’ bhùird no a’ cheist air na bùird a chaidh iarraidh.

Agus faodaidh tu cuideachd sùil a chumail air ceistean a chleachdas faidhlichean sealach no clàran sealach.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky
Agus tha pròiseasan cùl-fhiosrachaidh againn fhathast. Is e puingean-seicidh a th’ ann am pròiseasan cùl-fhiosrachaidh no canar puingean-seic riutha cuideachd, is iad sin autovacuum agus ath-riochdachadh.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Eisimpleir eile de sgrùdadh. Tha taba Glèidhidh air an taobh chlì, theirig thuige agus an dòchas gum faic thu rudeigin feumail. Ach an seo, dìreach àm falamh agus cruinneachadh staitistig, gun dad eile. Is e fìor dhroch fhiosrachadh a tha seo, agus mar sin feumaidh tu an-còmhnaidh fiosrachadh a bhith agad mu mar a bhios pròiseasan cùl-fhiosrachaidh ag obair san stòr-dàta againn agus a bheil duilgheadasan sam bith bhon obair aca.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Nuair a choimheadas sinn air puingean-seic, bu chòir cuimhneachadh gu bheil na puingean-seic againn a’ sruthadh duilleagan “salach” bhon raon cuimhne sharded gu diosc, agus an uairsin cruthaich àite-seic. Agus faodar an t-àite-seic seo a chleachdadh mar àite aig àm faighinn seachad air, ma chaidh PostgreSQL a thoirt gu crìch gu h-obann ann an èiginn.

Mar sin, gus na duilleagan “salach” gu lèir a shruthladh gu diosc, feumaidh tu beagan sgrìobhaidh a dhèanamh. Agus, mar riaghailt, air siostaman le tòrr cuimhne, tha seo tòrr. Agus ma nì sinn puingean-seic gu math tric ann an ùine ghoirid, bidh coileanadh diosc a’ dol sìos gu mòr. Agus bidh iarrtasan luchd-cleachdaidh a 'fulang le gainnead ghoireasan. Bidh iad a’ farpais airson goireasan agus bidh dìth cinneasachd aca.

Mar sin, tro pg_stat_bwriter air na raointean ainmichte, is urrainn dhuinn sùil a chumail air an àireamh de phuingean-seic a bhios a’ tachairt. Agus ma tha tòrr phuingean-seic againn airson ùine shònraichte (airson 10-15-20 mionaidean, airson leth uair a thìde), mar eisimpleir, 3-4-5, faodaidh seo a bhith na dhuilgheadas mar-thà. Agus feumaidh tu mar-thà coimhead anns an stòr-dàta, coimhead anns an rèiteachadh, dè a tha ag adhbhrachadh pailteas de phuingean-seic. Is dòcha gu bheil clàr mòr air tighinn. Faodaidh sinn an t-uallach obrach a mheasadh mu thràth, oir tha sinn air clàran eallach obrach a chuir ris mu thràth. Is urrainn dhuinn mar-thà na paramadairean briseadh-dùil tweak agus dèanamh cinnteach nach toir iad buaidh mhòr air coileanadh ceist.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Tha mi a’ dol air ais gu autovacuum a-rithist oir is e seo an seòrsa rud, mar a thuirt mi, a dh’ fhaodas coileanadh diosc agus ceist a chuir suas gu furasta, agus mar sin tha e an-còmhnaidh cudromach tomhas a dhèanamh air an ìre de autovacuum.

Tha an àireamh de luchd-obrach autovacuum anns an stòr-dàta cuingealaichte. Gu gnàthach, tha trì dhiubh ann, mar sin ma tha triùir luchd-obrach againn ag obair san stòr-dàta fad na h-ùine, tha seo a’ ciallachadh gu bheil an autovacuum againn neo-ullaichte, feumaidh sinn na crìochan àrdachadh, na roghainnean autovacuum ath-sgrùdadh agus streap a-steach don rèiteachadh mu thràth.
Tha e cudromach measadh a dhèanamh air dè an luchd-obrach falamh a bhios ag obair dhuinn. An dàrna cuid chaidh a chuir air bhog bhon neach-cleachdaidh, thàinig an DBA a-steach agus chuir e air bhog seòrsa de fhalamh le a làmhan, agus chruthaich seo luchd. Tha beagan trioblaid againn. No is e seo an àireamh de fhalamhaichean a tha a’ toirt a-mach a’ chunntair malairt. Airson cuid de dhreachan de PostgreSQL, tha iad sin nan vacuums trom. Agus is urrainn dhaibh coileanadh a chuir ris gu furasta leis gu bheil iad a’ toirt air falbh a ’chlàr gu lèir, a’ sganadh a h-uile bloc sa chlàr seo.

Agus, gu dearbh, fad vacuums. Ma tha vacuums fada againn a bhios a ’ruith airson ùine mhòr, tha seo a’ ciallachadh gum bu chòir dhuinn a-rithist aire a thoirt do rèiteachadh a ’bhac agus is dòcha ath-bheachdachadh air na roghainnean aige. Leis gum faodadh suidheachadh èirigh nuair a bhios am falamh ag obair air a ’bhòrd airson ùine mhòr (3-4 uairean), ach rè na h-ùine a bha am falamh ag obair, chaidh àireamh mhòr de shreathan marbh a chruinneachadh a-rithist air a’ bhòrd. Agus cho luath ‘s a bhios am falamh seachad, feumaidh e am bòrd seo fhalamhachadh a-rithist. Agus thig sinn gu suidheachadh - falamh gun chrìoch. Agus anns a 'chùis seo, chan eil am bàn a' dèiligeadh ris an obair aige, agus bidh na clàran a 'tòiseachadh a' dol suas mean air mhean ann am meud, ged a tha an àireamh de dhàta feumail ann fhathast mar a tha e. Mar sin, ann an vacuums fada, bidh sinn an-còmhnaidh a 'coimhead air an rèiteachadh agus a' feuchainn ris an fheum as fheàrr a dhèanamh dheth, ach aig an aon àm, gus nach bi coileanadh iarrtasan luchd-cleachdaidh a 'fulang.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

A-nis cha mhòr nach eil stàladh PostgreSQL ann far nach robh ath-riochdachadh sruthadh ann. Is e ath-riochdachadh am pròiseas airson dàta a ghluasad bho mhaighstir gu mac-samhail.

Tha ath-riochdachadh ann am PostgreSQL air a rèiteachadh tro log malairt. Bidh am maighstir a’ gineadh log malairt. Bidh an log malairt air a’ cheangal lìonra a ’dol chun mhac-samhail, agus an uairsin air ath-riochdachadh air a’ mhac-samhail. Tha a h-uile dad sìmplidh.

Mar sin, tha an sealladh pg_stat_replication air a chleachdadh gus sùil a chumail air an dàil ath-riochdachadh. Ach chan eil e furasta dhi. Ann an dreach 10, chaidh grunn atharrachaidhean a dhèanamh air an t-sealladh. An toiseach, chaidh cuid de na raointean ath-ainmeachadh. Agus chaidh cuid de na raointean a chuir ris. Anns an 10mh dreach, nochd raointean a leigeas leat measadh a dhèanamh air an dàil ath-riochdachadh ann an diogan. Tha e gu math comhfhurtail. Ro dhreach 10, bha e comasach tuairmse a dhèanamh air an dàil ath-riochdachadh ann am bytes. Dh’ fhan am feart seo anns an 10mh dreach, i.e. faodaidh tu taghadh dè a tha nas freagarraiche dhut - dèan measadh air an dàil ann am bytes no dèan measadh air an dàil ann an diogan. Bidh mòran a’ dèanamh an dà chuid.

Ach, gus measadh a dhèanamh air an dàil ath-riochdachadh, feumaidh fios a bhith agad air suidheachadh an loga sa ghnothach. Agus tha na dreuchdan sin den log malairt dìreach anns an t-sealladh pg_stat_replication. An ìre mhath a’ bruidhinn, is urrainn dhuinn an gnìomh pg_xlog_location_diff() a chleachdadh gus dà phuing a ghabhail anns an loga malairt. Obraich a-mach an delta eatarra agus faigh an dàil ath-riochdachadh ann am bytes. Tha e gu math goireasach agus sìmplidh.

Ann an dreach 10 chaidh an gnìomh seo ath-ainmeachadh gu pg_wal_lsn_diff(). San fharsaingeachd, anns a h-uile gnìomh, seallaidhean, goireasan, far an do thachair am facal "xlog", chaidh an luach "wal" a chuir na àite. Tha seo an dà chuid ann an seallaidhean agus ann an gnìomhan. Is e leithid de ùr-ghnàthachadh a tha seo.

A bharrachd air an sin, anns an 10mh dreach, chaidh loidhnichean a chuir ris a tha gu sònraichte a’ nochdadh an dàil. Is iad sin lag sgrìobhadh, dàil sruthadh, dàil ath-chluich. Is e sin, tha e cudromach sùil a chumail air na rudan sin. Ma chì sinn gu bheil dàil ath-riochdachadh againn, feumaidh sinn sgrùdadh a dhèanamh air carson a nochd e, cò às a thàinig e agus an duilgheadas a cheartachadh.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Le metrics siostam, tha cha mhòr a h-uile dad ann an òrdugh. Nuair a thèid sgrùdadh sam bith a bhreith, bidh e a’ tòiseachadh le meatrach siostam. Is e seo cleachdadh pròiseasairean, cuimhne, suaip, lìonra agus diosc. Ach a dh’ aindeoin sin, chan eil mòran pharaimearan ann gu bunaiteach.

Ma tha a h-uile càil ann an òrdugh le bhith a 'faighinn cuidhteas a' phròiseis, tha duilgheadasan ann le faighinn cuidhteas an diosg. Mar riaghailt, bidh luchd-leasachaidh sgrùdaidh a’ cur fiosrachadh leud-bann ris. Faodaidh e a bhith ann an iops no bytes. Ach bidh iad a’ dìochuimhneachadh mu latency agus cleachdadh innealan diosc. Tha iad sin nam paramadairean nas cudromaiche a leigeas leinn measadh a dhèanamh air dè cho luchdaichte sa tha na diosgan againn agus dè cho slaodach sa tha iad. Ma tha latency àrd againn, tha seo a’ ciallachadh gu bheil cuid de dhuilgheadasan ann leis na diosgan. Ma tha cleachdadh àrd againn, tha seo a’ ciallachadh nach urrainn dha na diosgan dèiligeadh. Tha iad sin nam feartan càileachdail nas àirde na leud-bann.

Ach, gheibhear na staitistig seo cuideachd bhon t-siostam faidhle / proc, mar a thathar a’ dèanamh airson ath-chuairteachadh pròiseasar. Carson nach eil am fiosrachadh seo air a chur ris an sgrùdadh, chan eil fhios agam. Ach tha e fhathast cudromach gum bi e san sgrùdadh agad.

Tha an aon rud fìor airson eadar-aghaidh lìonra. Tha fiosrachadh mu leud-bann lìonra ann am pacaidean, ann am bytes, ach a dh’ aindeoin sin chan eil fiosrachadh sam bith ann mu latency agus chan eil fiosrachadh sam bith ann mu chleachdadh, ged a tha seo cuideachd na fhiosrachadh feumail.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Tha eas-bhuannachdan aig sgrùdadh sam bith. Agus ge bith dè an seòrsa sgrùdaidh a nì thu, cha bhith e an-còmhnaidh a’ coinneachadh ri slatan-tomhais sònraichte. Ach a dh’ aindeoin sin, bidh iad a’ leasachadh, tha feartan ùra gan cur ris, rudan ùra, mar sin tagh rudeigin agus cuir crìoch air.

Agus gus crìochnachadh, feumaidh tu an-còmhnaidh beachd a bhith agad dè tha na staitistigean a chaidh a thoirt seachad a’ ciallachadh agus mar as urrainn dhut duilgheadasan fhuasgladh leis.

Agus beagan phrìomh phuingean:

  • Feumaidh tu an-còmhnaidh sùil a chumail air na tha ri fhaighinn, clàran-bùird a bhith agad gus an urrainn dhut measadh luath a dhèanamh gu bheil a h-uile dad ann an òrdugh leis a’ bhunait.
  • Feumaidh tu an-còmhnaidh beachd a bhith agad air dè na teachdaichean a tha ag obair leis an stòr-dàta agad gus droch luchd-dèiligidh a sgrios agus an losgadh.
  • Tha e cudromach measadh a dhèanamh air mar a tha an luchd-dèiligidh sin ag obair le dàta. Feumaidh beachd a bhith agad mun uallach obrach agad.
  • Tha e cudromach measadh a dhèanamh air mar a tha an t-uallach obrach seo air a chruthachadh, le cuideachadh bho na ceistean. 'S urrainn dhut ceistean a mheasadh, 's urrainn dhut an fheum as fheàrr a dhèanamh dhiubh, an ath-leasachadh, clàran-amais a thogail dhaibh. Tha e glè chudromach.
  • Faodaidh pròiseasan cùl-fhiosrachaidh droch bhuaidh a thoirt air iarrtasan luchd-cleachdaidh, agus mar sin tha e cudromach dèanamh cinnteach nach cleachd iad cus ghoireasan.
  • Leigidh metrics an t-siostaim dhut planaichean a dhèanamh airson sgèileadh, airson comas do luchd-frithealaidh àrdachadh, agus mar sin tha e cudromach an lorg agus an luachadh cuideachd.

Bun-bheachdan sgrùdaidh PostgreSQL. Alexei Lesovsky

Ma tha ùidh agad sa chuspair seo, faodaidh tu na ceanglaichean sin a leantainn.
http://bit.do/stats_collector na sgrìobhainnean oifigeil bhon neach-cruinneachaidh staitistig. Tha tuairisgeul ann air a h-uile sealladh staitistigeil agus tuairisgeul air a h-uile raon. Faodaidh tu an leughadh, an tuigsinn agus an sgrùdadh. Agus air an stèidh aca, tog na clàran agad fhèin, cuir ris an sgrùdadh agad.

Iarr eisimpleirean:
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

Is e seo an stòr corporra againn agus an tè agam fhìn. Tha iarrtasan sampall aca. Chan eil ceistean sam bith bhon taghadh * bhon t-sreath, rudeigin an sin. Tha iarrtasan deiseil ann mu thràth le ceanglaichean, a’ cleachdadh gnìomhan inntinneach a leigeas leat luachan a ghabhas leughadh, goireasach a dhèanamh bho àireamhan amh, is e sin, is iad sin bytes, ùine. Faodaidh tu an taghadh, coimhead orra, an sgrùdadh, an cur ris na sgrùdaidhean agad, na sgrùdaidhean agad fhèin a thogail stèidhichte orra.

Do cheistean

Ceist: Thuirt thu nach biodh tu a’ sanasachadh suaicheantasan, ach tha mi fhathast a’ faighneachd - dè an seòrsa clàran-dash a bhios tu a’ cleachdadh anns na pròiseactan agad?
Freagairt: Ann an diofar dhòighean. Bidh e a’ tachairt gun tig sinn chun neach-ceannach agus tha an sgrùdadh aige fhèin aige mu thràth. Agus tha sinn a 'toirt comhairle don neach-cleachdaidh air na dh'fheumar a chur ris an sgrùdadh aige. Tha an suidheachadh as miosa le Zabbix. Leis nach eil an comas aige TopN-grafaigean a thogail. Bidh sinn fhìn gan cleachdadh Okmeteroir chuir sinn comhairle ris na daoine sin mu sgrùdadh. Rinn iad sgrùdadh PostgreSQL stèidhichte air an TOR againn. Tha mi a’ sgrìobhadh mo phròiseact peata fhìn, a bhios a’ cruinneachadh dàta tro Prometheus agus ga tharraing a-steach grafana. Is e an obair agam an t-às-mhalairt agam fhìn a dhèanamh ann am Prometheus agus an uairsin a h-uile càil a tharraing ann an Grafana.

Ceist: A bheil analogues sam bith de aithisgean AWR no ... cruinneachaidhean? A bheil thu mothachail air rudeigin mar seo?
Freagairt: Tha, tha fios agam dè a th’ ann an AWR, is e rud fionnar a th’ ann. Aig an àm seo, tha measgachadh de bhaidhsagalan ann a bhios a’ cur an gnìomh timcheall air a’ mhodail a leanas. Aig àm air choreigin, tha cuid de bhun-loidhnichean air an sgrìobhadh chun aon PostgreSQL no gu stòr air leth. Faodaidh tu google iad air an eadar-lìn, tha iad. Tha aon de luchd-leasachaidh a leithid na shuidhe air an fhòram sql.ru anns an t-snàthainn PostgreSQL. Faodaidh tu a ghlacadh an sin. Tha, tha rudan mar sin ann, faodar an cleachdadh. a bharrachd anns a pgIonad Bidh mi cuideachd a’ sgrìobhadh rud a leigeas leat an aon rud a dhèanamh.

PS1 Ma tha thu a’ cleachdadh postgres_exporter, dè an deas-bhòrd a tha thu a’ cleachdadh? Tha grunn dhiubh ann. Tha iad mar-thà seann-fhasanta. An urrainn dhan choimhearsnachd teamplaid ùraichte a chruthachadh?

PS2 Pganalyze air a thoirt air falbh leis gur e tairgse SaaS seilbh a th’ ann a tha ag amas air sgrùdadh dèanadais agus molaidhean gleusaidh fèin-ghluasadach.

Chan fhaod ach luchd-cleachdaidh clàraichte pàirt a ghabhail san sgrùdadh. Soidhnig a-steach, mas e do thoil e.

Dè an sgrùdadh postgresql fèin-aoigheachd (le deas-bhòrd) a tha thu a’ smaoineachadh a tha nas fheàrr?

  • 30,0%Zabbix + cur-ris bho Alexey Lesovsky no zabbix 4.4 no 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%tha pganalyze na SaaS seilbhe - chan urrainn sguab às1

  • 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

Bhòt 10 neach-cleachdaidh. Sheall 26 neach-cleachdaidh.

Source: www.habr.com

Cuir beachd ann