Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Tha mi a 'moladh an tar-sgrìobhadh den aithisg aig toiseach 2016 le Andrey Salnikov a leughadh "Mearachdan àbhaisteach ann an tagraidhean a tha a' leantainn gu bloat ann am postgresql"

Anns an aithisg seo, nì mi mion-sgrùdadh air na prìomh mhearachdan ann an tagraidhean a tha a’ nochdadh aig ìre dealbhadh agus sgrìobhadh còd tagraidh. Agus cha ghabh mi ach na mearachdan sin a tha a’ leantainn gu bloat ann am Postgresql. Mar riaghailt, is e seo toiseach deireadh coileanadh an t-siostaim agad gu h-iomlan, ged nach fhacas ro-ghoireasan sam bith airson seo an toiseach.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Toilichte fàilte a chuir air a h-uile duine! Chan eil an aithisg seo cho teicnigeach ris an fhear roimhe bho mo cho-obraiche. Tha an òraid seo ag amas air luchd-leasachaidh siostam cùil sa mhòr-chuid air sgàth gu bheil àireamh meadhanach mòr de luchd-dèiligidh againn. Agus bidh iad uile a’ dèanamh na h-aon mhearachdan. Innsidh mi dhut mun deidhinn. Mìnichidh mi dè a tha marbhtach agus dona a tha na mearachdan sin a’ leantainn.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Carson a tha mearachdan gan dèanamh? Tha iad air an coileanadh airson dà adhbhar: air thuaiream, is dòcha gun obraich e a-mach à aineolas air cuid de dhòighean-obrach a tha a ’tachairt aig an ìre eadar a’ bhunait agus an tagradh, a bharrachd air a ’bhunait fhèin.

Bheir mi trì eisimpleirean dhut le dealbhan uabhasach air mar a dh’fhàs cùisean dona. Bheir mi cunntas goirid air an uidheamachd a tha a’ tachairt an sin. Agus mar a dhèiligeas tu riutha, nuair a thachair iad, agus dè na dòighean dìon a bu chòir a chleachdadh gus mearachdan a sheachnadh. Innsidh mi dhut mu innealan taice agus bheir mi ceanglaichean feumail.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Chleachd mi stòr-dàta deuchainn far an robh dà chlàr agam. Aon chlàr le cunntasan teachdaiche, am fear eile le gnìomhachd air na cunntasan sin. Agus le beagan ùine, bidh sinn ag ùrachadh a’ chothromachadh air na cunntasan sin.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Tha a 'chiad dàta truinnsear: tha e gu math beag, 2 MB. Tha an ùine freagairt airson an stòr-dàta agus gu sònraichte airson a’ phlàta fìor mhath cuideachd. Agus eallach meadhanach math - 2 gnìomhachd gach diog air a’ phlàta.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Agus tron ​​aithisg seo, seallaidh mi grafaichean dhut gus am bi e soilleir dè tha a’ tachairt. Bidh an-còmhnaidh 2 shleamhnag le grafaichean. Is e a’ chiad shleamhnag a thachras san fharsaingeachd air an fhrithealaiche.

Agus anns an t-suidheachadh seo, chì sinn gu bheil truinnsear beag againn dha-rìribh. Tha an clàr-amais beag aig 2 MB. Seo a’ chiad chlàr air an taobh chlì.

Tha an ùine freagairt cuibheasach thar an fhrithealaiche cuideachd seasmhach, beag. Is e seo an graf gu h-àrd air an làimh dheis.

Is e an graf gu h-ìosal air an taobh chlì na gnothaichean as fhaide. Chì sinn gu bheil gnothaichean gan crìochnachadh gu sgiobalta. Agus chan eil an autovacuum ag obair an seo fhathast, oir - b 'e deuchainn tòiseachaidh a bh' ann. An uairsin obraichidh e agus bidh e feumail dhuinn.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Bidh an dàrna sleamhnag an-còmhnaidh coisrigte don truinnsear deuchainn. Anns an t-suidheachadh seo, bidh sinn an-còmhnaidh ag ùrachadh cothromachadh cunntas an neach-dèiligidh. Agus chì sinn gu bheil an ùine freagairt cuibheasach airson an obair ùrachaidh gu math, nas lugha na millisecond. Chì sinn gu bheil na goireasan pròiseasar (is e seo an graf gu h-àrd air an làimh dheis) cuideachd gan ithe gu cothromach agus gu math beag.

Tha an graf gu h-ìosal air an làimh dheis a’ sealltainn na tha de chuimhne obrachaidh is diosc a’ dol troimhe a’ lorg na loidhne a tha sinn ag iarraidh mus ùraich sinn i. Agus tha an àireamh de ghnìomhachd air a’ phlàta 2 gach diog, mar a thuirt mi aig an toiseach.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Agus a-nis tha bròn-chluich againn. Airson adhbhar air choireigin, bidh malairt a dhìochuimhnich o chionn fhada a’ tachairt. Mar as trice tha na h-adhbharan uile banal:

  • Is e aon den fheadhainn as cumanta gun do thòisich sinn a’ faighinn cothrom air seirbheis a-muigh anns a’ chòd tagraidh. Agus chan eil an t-seirbheis seo a 'freagairt dhuinn. Is e sin, dh’ fhosgail sinn malairt, rinn sinn atharrachadh air an stòr-dàta agus chaidh sinn bhon tagradh gu post a leughadh no gu seirbheis eile taobh a-staigh ar bun-structair, agus airson adhbhar air choireigin chan eil e gar freagairt. Agus bha ar seisean crochte ann an staid - chan eil fios cuin a thèid a rèiteachadh.
  • Is e an dàrna suidheachadh nuair a thachair eisgeachd anns a’ chòd againn airson adhbhar air choireigin. Agus cha do làimhsich sinn dùnadh a’ ghnothaich ach a-mhàin. Agus fhuair sinn seisean crochte le malairt fosgailte.
  • Agus tha an tè mu dheireadh cuideachd gu math cumanta. Is e còd droch chàileachd a tha seo. Bidh cuid de fhrèaman a 'fosgladh malairt. Tha e crochte, agus is dòcha nach eil fios agad san tagradh gu bheil e crochte ort.

Càite a bheil na rudan sin a 'stiùireadh?

Leis gu bheil na bùird agus na clàran-amais againn a’ tòiseachadh a’ dol suas gu mòr. Is e seo dìreach an aon bhuaidh bloat. Airson an stòr-dàta, thèid seo a chuir an cèill leis gum bi àrdachadh geur againn ann an ùine freagairt an stòr-dàta, meudaichidh an luchd air frithealaiche an stòr-dàta. Agus mar thoradh air an sin, bidh an tagradh againn a’ fulang. Oir ma chaith thu sa chòd agad 10 milliseconds air iarrtas chun stòr-dàta, 10 milliseconds air an loidsig agad, dh’ obraich an gnìomh agad a-mach 20 milliseconds. Agus a-nis bidh do shuidheachadh gu math brònach.

Agus chì sinn dè thachras. Tha an graf gu h-ìosal air an taobh chlì a 'sealltainn gu bheil malairt fada fada againn. Agus ma choimheadas sinn air a’ ghraf gu h-àrd air an taobh chlì, chì sinn gun do leum meud a’ bhùird bho dhà megabytes gu 300 megabytes. Aig an aon àm, chan eil an àireamh de dhàta anns a 'chlàr air atharrachadh, is e sin, tha tòrr sgudail ann.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Tha an suidheachadh iomlan a thaobh ùine freagairt cuibheasach an fhrithealaiche cuideachd air atharrachadh le grunn òrdughan meudachd. Is e sin, thòisich a h-uile iarrtas air an fhrithealaiche a 'dol gu tur. Agus aig an aon àm, chaidh pròiseasan Postgres a-staigh an aghaidh autovacuum a chuir air bhog, a tha a ’feuchainn ri rudeigin a dhèanamh agus goireasan ithe.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Dè thachras don chlàr againn? An t-aon rud. Leum an ùine freagairt cuibheasach air a’ chlàr suas grunn òrdughan meudachd. Ma tha e gu sònraichte a thaobh goireasan caitheamh, chì sinn gu bheil an luchd air a’ phròiseasar air a dhol suas gu mòr. Is e seo an graf gu h-àrd air an làimh dheis. Agus tha e air a dhol suas leis gu feum am pròiseasar a dhol tro ghrunn loidhnichean gun fheum a’ lorg an tè a tha a dhìth ort. Is e seo an graf gu h-ìosal air an làimh dheis. Agus mar thoradh air an sin, thòisich an àireamh de ghlaodhan gach diog a 'tuiteam gu mòr, oir chan eil ùine aig an stòr-dàta an aon àireamh de dh' iarrtasan a phròiseasadh.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Feumaidh sinn faighinn air ais gu beatha. Bidh sinn a’ dìreadh a-steach don eadar-lìn agus a ’faighinn a-mach gu bheil gnothaichean fada a’ leantainn gu duilgheadas. Bidh sinn a’ lorg agus a’ marbhadh a’ ghnothaich seo. Agus tha a h-uile càil a’ dol gu math dhuinn. Bidh a h-uile dad ag obair mar bu chòir.

Rinn sinn socrachadh, ach an ceann greiseag tòisichidh sinn a’ mothachadh nach obraich an tagradh mar a rinn e ron èiginn. Bidh iarrtasan air an làimhseachadh mar an ceudna nas slaodaiche, agus mòran nas slaodaiche. Uair gu leth gu dà uair nas slaodaiche gu sònraichte nam eisimpleir. Tha an luchd air an fhrithealaiche cuideachd nas àirde na bha e ron tubaist.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Agus a 'cheist: "Dè thachras don ionad aig an àm seo?". Agus le bunait tha suidheachadh a leanas. Air a 'chlàr malairt, chì thu gu bheil e air stad agus nach eil gnothaichean fad-ùine ann. Ach dh'fhàs tomhasan a 'phlàta rè an tubaist gu math marbhtach. Agus chan eil e air a dhol sìos bhon uairsin. Tha an ùine chuibheasach air a’ bhunait air socrachadh. Agus tha e coltach gu bheil na freagairtean a’ dol gu leòr le astar iomchaidh dhuinn. Dh'fhàs Autovacuum nas gnìomhaiche agus thòisich e air rudeigin a dhèanamh leis a 'chlàr, oir feumaidh e barrachd dàta a shluasaid.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Gu sònraichte, air clàr-sgòr na deuchainn, far am bi sinn ag atharrachadh na cothromachadh: tha e coltach gu bheil an ùine freagairt airson an iarrtais air tilleadh gu àbhaisteach. Ach gu dearbh tha e aon uair gu leth nas àirde.

Agus leis an luchd air a ’phròiseasar, chì sinn nach do thill an luchd air a’ phròiseasar chun luach a bhathas ag iarraidh ron tubaist. Agus tha na h-adhbharan dìreach anns a 'ghraf gu h-ìosal air an làimh dheis. Chithear gu bheilear a' rannsachadh beagan de chuimhne. Is e sin, gus an loidhne a tha thu ag iarraidh a lorg, bidh sinn a’ caitheamh goireasan frithealaiche an stòr-dàta nuair a bhios sinn a’ rèiteach tro dhàta gun fheum. Tha an àireamh de ghnothaichean gach diog air socrachadh.

San fharsaingeachd, math, ach tha an suidheachadh nas miosa na bha e. Milleadh follaiseach air an stòr-dàta mar thoradh air an tagradh againn a tha ag obair leis an stòr-dàta seo.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Agus gus tuigsinn dè a tha a 'tachairt an sin, mura robh thu aig an aithisg roimhe, an uairsin a-nis beagan teòiridh. Teòiridh mun phròiseas taobh a-staigh. Carson a tha autovacuum agus dè a nì e?

Gu litireil ann an ùine ghoirid airson tuigse. Aig àm air choreigin tha bòrd againn. Tha sreathan againn sa chlàr. Faodaidh na loidhnichean sin a bhith gnìomhach, beò, feumaidh sinn a-nis. Tha iad air an comharrachadh le uaine san dealbh. Agus tha loidhnichean marbh ann a tha air obrachadh a-mach mar-thà, air an ùrachadh, tha inntrigidhean ùra air nochdadh orra. Agus tha iad air an comharrachadh nach eil iad inntinneach don stòr-dàta tuilleadh. Ach tha iad nan laighe air a 'bhòrd air sgàth cho sònraichte' sa tha Postgres.

Carson a tha feum agad air autovacuum? Bidh Autovacuum a’ tighinn aig àm air choreigin, a’ gairm an stòr-dàta agus a’ faighneachd dheth: “Feuch an toir thu dhomh id a’ ghnothaich as sine a tha fosgailte san stòr-dàta an-dràsta." Tillidh an stòr-dàta an id seo. Agus bidh an autovacuum, an urra ris, a 'dol tro na loidhnichean sa chlàr. Agus ma chì e gu bheil cuid de loidhnichean air an atharrachadh le gnothaichean fada nas sine, tha còir aige an comharrachadh mar loidhnichean as urrainn dhuinn ath-chleachdadh san àm ri teachd le bhith a’ sgrìobhadh dàta ùr an sin. Is e pròiseas cùl-fhiosrachaidh a tha seo.

Aig an àm seo, tha sinn a 'leantainn oirnn ag obair leis an stòr-dàta, tha sinn a' leantainn oirnn a 'dèanamh beagan atharrachaidhean anns a' chlàr. Agus air na loidhnichean sin, as urrainn dhuinn ath-chleachdadh, bidh sinn a’ sgrìobhadh dàta ùr. Agus mar seo gheibh sinn cearcall, is e sin, bidh cuid de sheann loidhnichean marbh a’ nochdadh ann fad na h-ùine, an àite sin bidh sinn a’ sgrìobhadh sìos loidhnichean ùra a dh’ fheumas sinn. Agus is e seo an staid àbhaisteach airson PostgreSQL a bhith ag obair.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Dè thachair tron ​​tubaist? Ciamar a thachair am pròiseas seo?

Bha truinnsear againn ann an staid air choreigin, cuid beò, cuid de loidhnichean marbh. Tha an autovacuum air ruighinn. Dh'fhaighnich e dhan stòr-dàta dè an gnothach as sine a th' againn, dè an id a th' ann. Fhuair mi an id seo, a dh’ fhaodadh a bhith grunn uairean a thìde a dh’aois, is dòcha deich mionaidean a dh’aois. Tha e an urra ri dè cho trom sa tha an luchd air an stòr-dàta. Agus chaidh e a choimhead airson loidhnichean as urrainn dha a chomharrachadh mar ath-chleachdadh. Agus cha do lorg mi loidhnichean mar sin nar clàr.

Ach aig an àm seo tha sinn a 'leantainn oirnn ag obair leis a' bhòrd. Bidh sinn a’ dèanamh rudeigin ann, ga ùrachadh, ag atharrachadh an dàta. Dè bu chòir don stòr-dàta a dhèanamh aig an àm seo? Chan eil roghainn aice ach loidhnichean ùra a chur ri deireadh a’ chlàir a th’ ann mar-thà. Agus mar sin leinn tha meud a 'bhùird a' tòiseachadh a 'fàs nas àirde.

Tha sinn dha-rìribh feumach air loidhnichean uaine airson obrachadh. Ach rè a leithid de dhuilgheadas, tha e a 'tionndadh a-mach gu bheil an àireamh sa cheud de uaine loidhnichean gu math ìosal ann an àireamh iomlan a' chlàr.

Agus nuair a nì sinn ceist, feumaidh an stòr-dàta a dhol tro na loidhnichean gu lèir, an dà chuid dearg is uaine, gus an loidhne cheart a lorg. Agus is e “bloat” a chanar ris a’ bhuaidh a th’ aig a bhith ag àrdachadh a’ bhùird le dàta gun fheum, a bhios cuideachd ag ithe suas ar n-àite diosc. Cuimhnich, b 'e 2 MB a bh' ann, a-nis is e 300 MB a th 'ann? A-nis atharraich megabytes gu gigabytes agus caillidh tu na goireasan diosc agad gu math luath.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Dè na buaidhean a th’ ann dhuinne?

  • Anns an eisimpleir agam, tha an clàr agus an clàr-amais air fàs 150 uair. Tha cùisean nas marbhtach air a bhith aig cuid den luchd-dèiligidh againn nuair a thòisich àite diosc dìreach a’ ruith a-mach.
  • Cha chrìon bùird gu bràth leotha fhèin. Faodaidh Autovacuum ann an cuid de chùisean earball a 'bhùird a ghearradh dheth mura h-eil ann ach loidhnichean marbh. Ach leis gu bheil cuairteachadh cunbhalach ann, faodaidh aon loidhne uaine a bhith crochte aig an deireadh agus gun a bhith air ùrachadh, agus thèid an còrr gu lèir an àiteigin aig toiseach a ’phlàta a chlàradh. Ach is e tachartas cho eu-coltach a tha seo gum bi am bòrd agad fhèin a’ dol sìos ann am meud, agus mar sin cha bu chòir dhut a bhith an dòchas.
  • Feumaidh an stòr-dàta a bhith a 'rèiteach an sreath iomlan de loidhnichean gun fheum. Agus tha sinn a’ caitheamh goireasan diosc, a’ caitheamh goireasan pròiseasar agus dealan.
  • Agus tha seo a’ toirt buaidh dhìreach air ar tagradh, oir ma chaith sinn aig an toiseach 10 milliseconds air iarrtas, 10 milliseconds air a’ chòd againn, an uairsin rè an tubaist thòisich sinn air diog a chaitheamh air iarrtas agus 10 milliseconds air còd, ie, òrdugh de lùghdaich meud coileanadh tagraidh. Agus nuair a chaidh an tubaist fhuasgladh, thòisich sinn air 20 milliseconds a chosg gach iarrtas, 10 milliseconds gach còd. Tha seo a’ ciallachadh gun deach sinn fhathast fodha uair gu leth a thaobh coileanadh. Agus tha seo uile mar thoradh air aon ghnothach a bha crochte, agus, is dòcha, tro ar coire.
  • Agus a’ cheist: “Ciamar a gheibh mi a h-uile càil air ais?” Gus am bi a h-uile càil ceart gu leòr leinn agus iarrtasan a’ ruith cho luath ‘s a bha iad ron tubaist.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Airson seo, tha cearcall obrach sònraichte ga dhèanamh.

An toiseach feumaidh sinn na clàran trioblaideach a lorg a tha air fàs. Tha sinn a’ tuigsinn gu bheil cuid de chlàran a’ clàradh nas gnìomhaiche, cuid nach eil cho gnìomhach. Agus airson seo cleachdaidh sinn an leudachadh pg reachd. Le bhith a’ stàladh an leudachain seo, faodaidh tu ceistean a sgrìobhadh a chuidicheas tu gus clàran a lorg a tha fo bhlàth gu leòr.

Aon uair ‘s gu bheil thu air na clàran sin a lorg, feumaidh iad a bhith air an teannachadh. Tha innealan ann mu thràth airson seo. Anns a 'chompanaidh againn, bidh sinn a' cleachdadh trì innealan. Is e a’ chiad fhear am VACUUM LÀN togte. Tha e an-iochdmhor, cruaidh agus gun tròcair, ach uaireannan tha e glè fheumail. pg_repack и pgcompacttable nan goireasan treas-phàrtaidh airson bùird teannachaidh. Agus tha iad nas faiceallach mun stòr-dàta.

Bidh iad air an cleachdadh a rèir dè a tha nas freagarraiche dhut. Ach bruidhnidh mi mu dheidhinn seo aig an deireadh. Is e am prìomh rud gu bheil trì innealan ann. Tha gu leòr ann airson taghadh.

Às deidh dhuinn a h-uile càil a cheartachadh, a ’dèanamh cinnteach gu bheil a h-uile dad gu math, bu chòir fios a bhith againn ciamar a chuireas sinn casg air an t-suidheachadh seo san àm ri teachd:

  • Tha e gu math furasta casg a chuir air. Feumaidh tu sùil a chumail air fad nan seiseanan air a’ phrìomh fhrithealaiche. Seiseanan gu sònraichte cunnartach ann an suidheachadh leisg. Is iad sin an fheadhainn a tha dìreach air malairt fhosgladh, a rinn rudeigin agus a dh ’fhalbh, no dìreach a chrochadh, air chall sa chòd.
  • Agus dhutsa, mar luchd-leasachaidh, tha e cudromach an còd a dhearbhadh aig an àm a dh'èireas na suidheachaidhean sin. Chan eil e doirbh a dhèanamh. Bidh seo na sgrùdadh feumail. Bidh thu a 'seachnadh tòrr "leanabh" duilgheadasan co-cheangailte ri gnothaichean fada.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Air na grafaichean sin, bha mi airson sealltainn dhut mar a dh’ atharraich clàr agus giùlan an stòr-dàta às deidh dhomh a dhol seachad air VACUUM FULL air a’ bhòrd sa chùis seo. Chan e seo an riochdachadh agam.

Thill meud a’ bhùird sa bhad chun staid obrach àbhaisteach aige de dhà megabytes. Cha tug seo buaidh mhòr air an ùine freagairt cuibheasach thar an fhrithealaiche.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Ach gu sònraichte anns a’ chlàr deuchainn againn, far an do dh’ ùraich sinn cothromachadh a’ chunntais, tha sinn a’ faicinn gun deach an ùine freagairt cuibheasach do dh’ iarrtas airson an dàta ùrachadh anns a’ chlàr a lùghdachadh chun na h-ìre ro-thubaist. Thuit na goireasan a chleachd am pròiseasar gus an t-iarrtas seo a chuir an gnìomh gu ìrean ro-thubaist cuideachd. Agus tha an graf gu h-ìosal air an làimh dheis a’ sealltainn gu bheil sinn a-nis a’ lorg dìreach an loidhne a dh’ fheumas sinn anns a’ bhad, gun a bhith a’ dol tron ​​​​chrann de loidhnichean marbh a bha mus deach am bòrd a dhlùthadh. Agus dh'fhuirich an ùine ceisteachaidh cuibheasach timcheall air an aon ìre. Ach an seo tha agam, an àite, mearachd a’ bhathar-cruaidh agam.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Seo far a bheil a’ chiad sgeulachd a’ tighinn gu crìch. Is i an tè as cumanta. Agus bidh e a 'tachairt don a h-uile duine, ge bith dè an eòlas a th' aig an neach-dèiligidh, dè cho math 'sa tha luchd-prògramaidh. Luath no mall bidh e a’ tachairt.

An dàrna sgeulachd, anns am bi sinn a’ cuairteachadh an luchd agus a’ dèanamh an fheum as fheàrr de ghoireasan frithealaiche

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

  • Tha sinn air fàs suas agus air fàs gu bhith nan daoine trom. Agus tha sinn a’ tuigsinn gu bheil mac-samhail againn, agus gum bu mhath dhuinn an t-eallach a chothromachadh: sgrìobh chun a’ Mhaighistir, agus leugh bhon mhac-samhail. Agus mar as trice bidh an suidheachadh seo ag èirigh nuair a tha sinn airson seòrsa de dh’ aithisgean no ETL ullachadh. Agus tha gnìomhachas glè thoilichte mu dheidhinn. Tha e dha-rìribh ag iarraidh grunn aithisgean le dòrlach de anailisean iom-fhillte.
  • Mairidh aithisgean airson grunn uairean a thìde, oir chan urrainnear mion-sgrùdadh iom-fhillte a thomhas ann am milleanan-tomhais. Bidh sinne, mar ghillean gaisgeil, a’ sgrìobhadh còd. Bidh sinn a’ dèanamh anns an tagradh cuir a-steach a bhios sinn a ’clàradh air a’ Mhaighstir, bidh sinn a ’dèanamh aithisgean air a’ mhac-samhail.
  • Bidh sinn a 'sgaoileadh an luchd.
  • Bidh a h-uile dad ag obair gu foirfe. Tha sinn air leth math.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Agus cò ris a tha an suidheachadh seo coltach? Gu sònraichte, air na clàran sin, chuir mi cuideachd fad nan gnothaichean bhon mhac-samhail fad beatha a’ ghnothaich. Chan eil a h-uile graf eile a’ toirt iomradh ach air am Prìomh Fhrithealaiche.

Mun àm seo, bha am bòrd aithris agam air fàs. Tha barrachd dhiubh ann. Chì sinn gu bheil an ùine freagairt cuibheasach frithealaiche seasmhach. Chì sinn gu bheil malairt fhada againn air a’ mhac-samhail a mhaireas 2 uair. Chì sinn obair shàmhach an autovacuum, a bhios a ’giullachd loidhnichean marbh. Agus tha sinn uile math.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Gu sònraichte, a rèir a’ chlàr deuchainn, tha sinn a’ cumail oirnn ag ùrachadh nan cothromachadh air na cunntasan an sin. Agus tha ùine freagairt seasmhach againn cuideachd ma thèid iarraidh, caitheamh stòrais seasmhach. Tha a h-uile dad gu math leinn.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Tha a h-uile dad ceart gu leòr gus an àm nuair a thòisicheas na h-aithisgean sin a’ losgadh air ais oirnn air còmhstri le ath-riochdachadh. Agus bidh iad a 'losgadh air ais gu cunbhalach.

Bidh sinn a’ dol air-loidhne agus a’ tòiseachadh a’ leughadh carson a tha seo a’ tachairt. Agus lorg sinn fuasgladh.

Is e a’ chiad fhuasgladh an latency mac-samhail a mheudachadh. Tha fios againn gu bheil an aithisg againn a’ ruith airson 3 uairean. Suidhich an dàil ath-riochdachadh gu 3 uairean. Bidh sinn a’ tòiseachadh a h-uile càil, ach tha duilgheadasan againn fhathast leis gu bheil aithisgean uaireannan air an losgadh air ais.

Tha sinn airson gum bi a h-uile dad foirfe. Rachamaid nas fhaide. Agus lorg sinn suidheachadh fionnar air an eadar-lìn - hot_standby_feedback. Bidh sinn ga tionndadh. Leigidh Hot_standby_feedback leinn an autovacuum a chumail a’ ruith air a’ Mhaighstir. Mar sin, bidh sinn gu tur a’ faighinn cuidhteas còmhstri mac-samhail. Agus tha sinn uile ag obair gu math le aithisgean.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Agus dè tha a’ tachairt leis a’ phrìomh fhrithealaiche aig an àm seo? Agus leis a’ phrìomh fhrithealaiche, tha mòr-thubaist iomlan againn. Tha sinn a-nis a’ faicinn chlàran leis an dà shuidheachadh sin air an tionndadh. Agus chì sinn gun do thòisich an seisean air mac-samhail dòigh air choireigin air buaidh a thoirt air an t-suidheachadh air a’ phrìomh fhrithealaiche. Bheir e buaidh leis gu bheil e air stad a chuir air an autovacuum a ghlanas na loidhnichean marbh. Tha meud a’ bhùird againn air a dhol suas a-rithist. Chaidh an ùine tagraidh cuibheasach thairis air an stòr-dàta gu lèir suas cuideachd. Chaidh na h-auto-vacuums suas beagan.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Gu sònraichte, air an truinnsear againn, chì sinn gun do leum an ùrachadh dàta air a-steach do na speuran. Tha caitheamh ghoireasan pròiseasar air a dhol suas gu mòr san aon dòigh. Bidh sinn a-rithist ag aithris thairis air àireamh mhòr de loidhnichean marbh gun fheum. Agus an ùine freagairt air a 'chlàr seo, tha an àireamh de ghnothaichean air tuiteam.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Cò ris a bhios e coltach mura h-eil fios againn dè air an robh mi a’ bruidhinn roimhe?

  • Bidh sinn a 'tòiseachadh a' coimhead airson duilgheadasan. Ma choinnich sinn ri duilgheadasan anns a 'chiad phàirt, tha fios againn gur dòcha gur e seo an adhbhar airson malairt fhada agus streap sinn air a' Mhaighstir. Tha an duilgheadas leis a’ Mhaighstir. Isbeanan dha. Tha e a' blàthachadh, tha cuibheas luchdaidh aige fo cheud.
  • Bidh iarrtasan a’ slaodadh sìos an sin, ach chan eil sinn a’ faicinn gnothaichean fad-ùine an sin. Agus chan eil sinn a 'tuigsinn dè a tha a' dol. Chan eil fios againn càite am faic sinn.
  • A’ sgrùdadh bathar-cruaidh frithealaiche. Is dòcha gu bheil an ionnsaigh againn air tuiteam. Is dòcha gun loisg sinn a-mach am bàr cuimhne. Tha, faodaidh rud sam bith a bhith. Ach chan e, tha na frithealaichean ùra, tha a h-uile dad ag obair gu math.
  • Bidh a h-uile duine a 'ruith: luchd-rianachd, luchd-leasachaidh agus an stiùiriche. Chan eil dad na chuideachadh.
  • Agus aig àm air choreigin, bidh a h-uile dad gu h-obann a’ tòiseachadh ga cheartachadh fhèin.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Air mac-samhail, aig an àm sin, dh'obraich an t-iarrtas agus dh'fhalbh e. Tha sinn air aithisg fhaighinn. Tha an gnìomhachas fhathast toilichte. Mar a chì thu, tha an clàr againn air fàs a-rithist agus chan eil e a’ dol a dhol sìos. Air a’ chairt le seiseanan, dh’ fhàg mi pìos den ghnothach fhada seo bhon mhac-samhail, gus an urrainn dhut measadh a dhèanamh air dè cho fada ‘s a bheir e gus an seas an suidheachadh.

Tha an seisean air falbh. Agus dìreach às deidh beagan ùine thig am frithealaiche barrachd no nas lugha ann an òrdugh. Agus bidh an ùine freagairt cuibheasach airson iarrtasan air a’ phrìomh fhrithealaiche a’ tilleadh gu àbhaisteach. Air sgàth, mu dheireadh, fhuair an autovacuum an cothrom glanadh, comharraich na loidhnichean marbh sin. Agus thòisich e air an obair aige a dhèanamh. Agus dè cho luath 'sa nì e e, cho luath bidh sinn ann an òrdugh.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Air a’ chlàr deuchainn, far am bi sinn ag ùrachadh cothromachadh a’ chunntais, chì sinn dìreach an aon dealbh. Tha an ùine ùrachadh cunntais cuibheasach cuideachd a’ gnàthachadh mean air mhean. Tha na goireasan a bhios am pròiseasar ag ithe cuideachd air an lughdachadh. Agus tha an àireamh de ghnothaichean gach diog air ais gu àbhaisteach. Ach a-rithist, air ais gu àbhaisteach, chan ann mar a bha sinn ron tubaist.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Ann an suidheachadh sam bith, gheibh sinn tarraing sìos ann an coileanadh, mar anns a 'chiad chùis, aon gu leth gu dà uair, agus uaireannan eadhon barrachd.

Tha e coltach gu bheil sinn air a h-uile càil a dhèanamh ceart. Roinn an t-uallach. Chan eil an uidheamachd leisg. A rèir na h-inntinn, bhris iad na h-iarrtasan, ach fhathast thionndaidh a h-uile dad gu dona.

  • Nach cuir thu à comas hot_standby_feedback? Tha, chan eilear a 'moladh a thionndadh air gun adhbharan sònraichte làidir. Leis gu bheil an tionndadh seo a’ toirt buaidh dhìreach air an Master Server agus a’ cuir stad air obair an autovacuum an sin. Le bhith ga thionndadh air mac-samhail agus a’ dìochuimhneachadh mu dheidhinn, faodaidh tu am Maighstir a mharbhadh agus duilgheadasan mòra fhaighinn leis an tagradh.
  • Meudaich max_standby_streaming_delay? Tha, tha e airson aithisgean. Ma tha aithisg trì uairean a thìde agad agus nach eil thu airson gun tuit i air sgàth còmhstri ath-riochdachadh, dìreach cuir ris an dàil. Chan fheum aithisg fhada a-riamh dàta a chaidh a-steach don stòr-dàta an-dràsta. Ma tha e agad airson trì uairean a thìde, tha thu ga ruith airson cuid de sheann ùine dàta. Agus thusa, trì uairean de dhàil, sia uairean de dhàil - cha bhith pàirt sam bith agad, ach gheibh thu aithisgean gu cunbhalach agus chan eil fios agad air na duilgheadasan leis an tuiteam aca.
  • Gu nàdarra, feumaidh tu smachd a chumail air seiseanan fada air mac-samhail, gu sònraichte ma cho-dhùnas tu hot_standby_feedback a chomasachadh air mac-samhail. Leis gum faodadh e a bhith na rud sam bith. Thug sinn am beachd seo don leasaiche gus an dèanadh e deuchainn air na h-iarrtasan. Sgrìobh e iarrtas seòlta. Thòisich e 'us chaidh e air tì òl, 's fhuair sinn am Maighstir shuidhichte. No chuir sinn air bhog an tagradh ceàrr an sin. Tha na suidheachaidhean eadar-dhealaichte. Feumar smachd a chumail air seiseanan air mac-samhail cho faiceallach ’s a th’ aig a’ Mhaighstir.
  • Agus ma tha ceistean luath is fada agad air mac-samhail, an uairsin sa chùis seo tha e nas fheàrr an sgaradh gus an luchd a sgaoileadh. Seo ceangal gu streaming_delay. Airson luath airson aon mhac-samhail a bhith agad le dàil bheag air ath-riochdachadh. Airson iarrtasan aithris fad-ùine, bi mac-samhail agad a dh’ fhaodadh a bhith air dheireadh 6 uairean, gach latha. Is e suidheachadh gu tur àbhaisteach a tha seo.

Bidh sinn a 'toirt air falbh na buaidhean san aon dòigh:

  • Lorgaidh sinn bùird bloated.
  • Agus bidh sinn a’ teannachadh leis an inneal as freagarraiche a tha iomchaidh dhuinn.

Tha an dàrna sgeulachd a’ crìochnachadh an seo. Gluaisidh sinn air adhart chun treas sgeulachd.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Cuideachd gu math cumanta dhuinn, anns a bheil sinn a 'dèanamh an imrich.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

  • Bidh toradh bathar-bog sam bith a 'fàs. Tha riatanasan ag atharrachadh. Ann an suidheachadh sam bith, tha sinn airson a leasachadh. Agus tha e a’ tachairt gum feum sinn an dàta sa chlàr ùrachadh, is e sin an t-ùrachadh a ruith a thaobh ar n-imrich chun ghnìomhachd ùr a tha sinn a’ cur an gnìomh mar phàirt den leasachadh againn.
  • Chan eil an seann cruth dàta a’ freagairt. Canaidh sinn gun tionndaidh sinn a-nis chun an dàrna clàr, far a bheil gnìomhachd agam air na cunntasan sin. Agus, canaidh sinn gu robh iad ann an rubles, agus chuir sinn romhainn an cruinneas a mheudachadh agus a dhèanamh ann an kopecks. Agus airson seo feumaidh sinn ùrachadh a dhèanamh: iomadaich an raon le meud an obrachaidh le ceud.
  • Ann an saoghal an latha an-diugh, bidh sinn a’ cleachdadh innealan tionndaidh stòr-dàta fèin-ghluasadach. Canaidh sinn Liquibase. Bidh sinn a’ clàradh ar n-imrich an sin. Bidh sinn ga dhearbhadh air ar bunait deuchainn. Tha a h-uile dad gu math. Tha an t-ùrachadh a’ ruith. Bidh blocaichean ag obair airson greis, ach gheibh sinn dàta ùraichte. Agus is urrainn dhuinn comas-gnìomh ùr a chuir air bhog air seo. A h-uile deuchainn agus sgrùdadh. Uile air a dhearbhadh.
  • Rinn i obair dealbhaichte, rinn i imrich.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Seo an imrich leis an ùrachadh air a thaisbeanadh air do bheulaibh. Leis gu bheil gnìomhachd agam air cunntasan, bha an truinnsear 15 GB. Agus leis gu bheil sinn ag ùrachadh a h-uile loidhne, tha sinn air an truinnsear a dhùblachadh leis an ùrachadh, oir tha sinn air a h-uile loidhne ath-sgrìobhadh.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Rè an imrich, cha b’ urrainn dhuinn dad a dhèanamh leis an leubail seo, oir chaidh a h-uile iarrtas air a shon agus bha sinn a’ feitheamh gus an tigeadh an ùrachadh seo gu crìch. Ach an seo tha mi airson d’ aire a tharraing gu na h-àireamhan a tha air an axis dhìreach. Is e sin, tha ùine tagraidh cuibheasach againn mus tèid imrich timcheall air 5 milliseconds agus luchd air a’ phròiseasar, tha an àireamh de ghnìomhachd bloc airson cuimhne diosc leughaidh nas lugha na 7,5.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Rinn sinn imrich agus fhuair sinn duilgheadasan a-rithist.

Bha an imrich soirbheachail, ach:

  • Thòisich an t-seann ghnìomhachd a 'ruith nas fhaide.
  • Tha an clàr air fàs ann am meud a-rithist.
  • Tha an luchd air an fhrithealaiche a-rithist air fàs nas motha na bha e.
  • Agus, gu dearbh, tha sinn fhathast a’ fìdhlearachd leis a’ ghnìomhachd a dh’ obraich gu math, leasaich sinn e beagan.

Agus is e seo a-rithist bloat, a tha a-rithist a’ milleadh ar beatha.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

An seo tha mi a’ sealltainn nach eil an clàr, mar an dà chùis roimhe, a’ dol a thilleadh chun na meudan a bh’ ann roimhe. Tha e coltach gu bheil an luchd cuibheasach air an fhrithealaiche iomchaidh.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Agus ma thionndaidheas sinn chun bhòrd le cunntasan, chì sinn gu bheil an ùine iarrtais cuibheasach air dùblachadh airson a’ chlàr seo. Leum an luchd air a’ phròiseasar agus an àireamh de loidhnichean a bha ri rèiteach mar chuimhneachan os cionn 7,5, ach bha e na b’ ìsle. Agus leum sinn ann an cùis pròiseasairean 2 uair, a thaobh gnìomhachd bloc 1,5 uair, ie fhuair sinn ìsleachadh ann an coileanadh an fhrithealaiche. Agus mar thoradh air - crìonadh ann an coileanadh ar tagradh. Aig an aon àm, bha an àireamh de ghairmean fhathast timcheall air an aon ìre.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Agus an seo is e am prìomh rud tuigsinn mar a nì thu imrich mar sin gu ceart. Agus feumaidh iad a bhith air a dhèanamh. Bidh sinn a’ dèanamh nan imrich sin gu math tric.

  • Chan eil imrich cho mòr air an dèanamh gu fèin-ghluasadach. Feumaidh iad an-còmhnaidh a bhith fo smachd.
  • Feum air stiùireadh bho neach eòlach. Ma tha DBA agad air an sgioba, leig leis an DBA a dhèanamh. Is e an obair aige. Mura h-eil, leig leis an neach as eòlaiche a dhèanamh, aig a bheil fios mar a dh'obraicheas e le stòran-dàta.
  • An sgeama stòr-dàta ùr, eadhon ged a dh’ ùraicheas sinn aon cholbh, bidh sinn an-còmhnaidh ag ullachadh ann an ìrean, i.e. ro-làimh mus tèid an dreach ùr den tagradh a sgaoileadh:
  • Tha raointean ùra gan cur ris anns am bi sinn a’ sgrìobhadh dìreach an dàta ùraichte.
  • Bidh sinn a’ gluasad dàta bhon t-seann raon chun raon ùr ann am pàirtean beaga. Carson a tha sinn a’ dèanamh seo? An toiseach, bidh sinn an-còmhnaidh a 'cumail smachd air a' phròiseas seo. Tha fios againn gu bheil sinn air na h-uimhir de bhaidsean a ghluasad mu thràth agus gu bheil uimhir againn air fhàgail.
  • Agus is e an dàrna deagh bhuaidh gum bi sinn a’ dùnadh malairt eadar gach baidse mar sin, a’ fosgladh fear ùr, agus tha seo ga dhèanamh comasach don autovacuum obrachadh a rèir a’ phlàta, gus loidhnichean marbh a chomharrachadh airson ath-chleachdadh.
  • Airson na loidhnichean a nochdas rè obrachadh an tagraidh (tha an seann aplacaid againn fhathast), cuiridh sinn inneal-brosnachaidh ris a sgrìobhas luachan ùra gu raointean ùra. Anns a 'chùis againn, is e seo iomadachadh le ceud den t-seann luach.
  • Ma tha sinn gu tur stòlda agus ag iarraidh an aon raon, an uairsin nuair a bhios sinn a’ crìochnachadh a h-uile imrich agus mus cuir sinn an dreach ùr den tagradh air adhart, bidh sinn dìreach ag ath-ainmeachadh nan raointean. Bidh na seann fheadhainn gu bhith nan ainm innleachdach, agus bidh sinn ag ath-ainmeachadh nan raointean ùra gu na seann fheadhainn.
  • Agus dìreach às deidh sin bidh sinn a’ cur air bhog dreach ùr den tagradh.

Agus aig an aon àm, chan fhaigh sinn bloat agus cha bhith sinn a’ sag ann an coileanadh.

Seo deireadh an treas sgeulachd.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

https://github.com/dataegret/pg-utils/blob/master/sql/table_bloat.sql

https://github.com/dataegret/pg-utils/blob/master/sql/table_bloat_approx.sql

Agus a-nis beagan a bharrachd mu na h-innealan air an tug mi iomradh sa chiad sgeulachd.

Mus coimhead thu airson bloat, feumaidh tu an leudachadh a stàladh pg reachd.

Gus nach cruthaich thu iarrtasan, tha sinn mu thràth air na h-iarrtasan sin a sgrìobhadh nar n-obair. Faodaidh tu an cleachdadh. Tha dà iarrtas an seo.

  • Bheir a 'chiad fhear ùine gu math fada, ach seallaidh e dhut na dearbh luachan bloat a rèir a' chlàr.
  • Bidh an dàrna fear ag obair nas luaithe agus tha e gu math èifeachdach nuair a dh'fheumas tu measadh luath a dhèanamh a bheil bloat anns a 'chlàr no nach eil. Agus bu chòir dhut cuideachd tuigsinn gu bheil an-còmhnaidh bloat ann am bòrd Postgres. Tha seo na fheart den mhodail MVCC aige.
  • Agus tha bloat 20% ceart gu leòr airson bùird sa mhòr-chuid de chùisean. Is e sin, cha bu chòir dhut dragh a ghabhail agus an clàr seo a dhlùthadh.

Dh’ obraich sinn a-mach ciamar a dh’ aithnicheas sinn clàran a tha swollen leinn, a bharrachd air an sin, nuair a tha iad air an gluasad le dàta gun fheum.

A-nis mu mar a chuireas tu bloat air dòigh:

  • Ma tha truinnsear beag againn agus diosgan math, ie air truinnsear suas gu gigabyte, tha e gu math comasach VACUUM LÀN a chleachdadh. Bheir e glas sònraichte bhuat airson beagan dhiog, agus ceart gu leòr, ach nì e a h-uile dad gu sgiobalta agus gu cruaidh. Dè a bhios VACUUM FULL a’ dèanamh? Bidh e a’ toirt glas sònraichte air a’ bhòrd agus ag ath-sgrìobhadh na sreathan beò bho na seann chlàran chun chlàr ùr. Agus aig an deireadh tha e gan cur nan àite. Sguab às seann fhaidhlichean, cuir feadhainn ùra an àite seann fheadhainn. Ach fad a h-obrach, bidh e a 'toirt glas sònraichte air a' bhòrd. Tha so a' ciallachadh nach urrainn thu ni sam bith a dhean- amh leis a' bhòrd so : na sgrìobh thuige, ni mò a leughas tu a stigh e, agus na atharraich e. Agus feumaidh VACUUM FULL àite diosc a bharrachd airson dàta a sgrìobhadh.
  • An ath Inneal pg_repack. Leis a 'phrionnsapal aige, tha e glè choltach ri VACUUM FULL, oir tha e cuideachd a' sgrìobhadh thairis air dàta bho sheann fhaidhlichean gu feadhainn ùra agus gan cur nan àite sa chlàr. Ach aig an aon àm, chan eil e a 'toirt glas sònraichte air a' bhòrd aig fìor thoiseach na h-obrach aige, ach chan eil e ga thoirt ach aig an àm a tha dàta deiseil ann gus na faidhlichean a chur an àite. Tha na h-aon riatanasan stòrais diosc aige ri VACUUM FULL. Feumaidh tu àite diosc a bharrachd, agus tha seo uaireannan deatamach ma tha bùird terabyte agad. Agus tha e gu math gluttonous a thaobh pròiseasar, oir tha e gu gnìomhach ag obair le I / O.
  • Tha an treas goireasachd pgcompacttable. Bidh e a’ làimhseachadh ghoireasan nas faiceallach, leis gu bheil e ag obair air prionnsapalan beagan eadar-dhealaichte. Is e prìomh bhrìgh pgcompacttable gu bheil e a’ gluasad a h-uile sreath beò gu toiseach a’ chlàir le ùrachaidhean sa chlàr. Agus an uairsin bidh e a’ tòiseachadh am falamh air a’ bhòrd seo, oir tha fios againn gu bheil sreathan beò againn aig an toiseach agus sreathan marbh aig an deireadh. Agus bidh am falamh fhèin a’ gearradh dheth an earball seo, is e sin, chan eil feum air mòran àite diosc a bharrachd. Agus aig an aon àm, faodaidh e fhathast a bhith air a bhrùthadh le goireasan.

A h-uile càil le innealan.

Mearachdan tagraidh àbhaisteach a tha a’ leantainn gu bloat ann am postgresql. Andrey Salnikov

Ma tha cuspair bloat inntinneach dhut a thaobh a bhith a’ cladhach nas fhaide a-staigh, seo cuid de cheanglaichean feumail dhut:

An seo dh’ fheuch mi ri sgeulachd uamhasach a nochdadh do luchd-leasachaidh, oir tha iad nan teachdaichean dìreach de stòran-dàta againn agus feumaidh iad tuigsinn dè agus dè na gnìomhan a tha ag adhbhrachadh. Tha mi an dòchas gun do shoirbhich leam. Tapadh leibh airson an aire agad!

Do cheistean

Tapadh leibh airson an aithris! Bhruidhinn thu air mar a dh’fhaodar duilgheadasan aithneachadh. Ciamar a gheibh iad rabhadh? Is e sin, bha suidheachadh agam far an robh iarrtasan a 'crochadh chan ann a-mhàin air sgàth' s gun do thionndaidh iad gu cuid de sheirbheisean bhon taobh a-muigh. Cha robh ann ach cuid de cheangail fhiadhaich. Bha cuid de dh’ iarrtasan beaga bìodach gun chron a’ crochadh mun cuairt airson latha, agus an uairsin thòisich iad a’ dèanamh neòinean de sheòrsa air choreigin. Is e sin, tha e glè choltach ris na tha thu a’ mìneachadh. Ciamar a lorgar e? Suidh is amhairc daonnan, ciod an t-iarrtas a tha steigte ? Ciamar a ghabhas seo a chasg?

Anns a 'chùis seo, is e obair a tha seo do luchd-rianachd a' chompanaidh agad, chan ann gu riatanach airson an DBA.

Tha mi nam rianadair.

Tha sealladh aig PostgreSQL ris an canar pg_stat_activity a sheallas ceistean ri thighinn. Agus chì thu dè cho fada 'sa tha e a' crochadh an sin.

Feumaidh mi tighinn a-steach a h-uile 5 mionaidean agus coimhead?

Suidhich cron agus thoir sùil. Ma tha iarrtas fada agad, sgrìobh litir agus sin agad e. Is e sin, chan fheum thu coimhead le do shùilean, faodaidh seo a bhith fèin-ghluasadach. Gheibh thu litir, freagraidh tu i. No faodaidh tu losgadh gu fèin-ghluasadach.

A bheil adhbharan soilleir ann carson a tha seo a’ tachairt?

Tha mi air cuid a liostadh. Eisimpleirean eile nas iom-fhillte. Agus faodaidh còmhradh fada a bhith ann.

Tapadh leibh airson an aithris! Bha mi airson soilleireachadh mun ghoireas pg_repack. Mura gabh e glas sònraichte, an uairsin ...

Bidh i a’ dèanamh glas air leth.

... an uairsin dh’ fhaodadh mi dàta a chall. Nach bu chòir don aplacaid agam a bhith a’ clàradh dad aig an àm seo?

Chan e, bidh e ag obair gu sàmhach leis a’ bhòrd, ie bidh pg_repack an-toiseach a’ gluasad a h-uile loidhne beò a tha ann. Gu nàdarra, tha seòrsa de chlàr anns a 'chlàr a' dol air adhart. Tha e dìreach a 'tilgeil a' ponytail seo.

Is e sin, a bheil e fhathast ga dhèanamh aig an deireadh?

Aig a’ cheann thall, bheir e glas sònraichte air na faidhlichean sin atharrachadh.

Am bi e nas luaithe na VACUUM FULL?

VACUUM LÀN, mar a thòisich e, ghabh e glas sònraichte sa bhad. Agus gus an dèan e a h-uile càil, cha leig e air falbh i. Agus bidh pg_repack a’ gabhail glas sònraichte a-mhàin aig àm ath-chuir faidhlichean. Aig an ìre seo, cha bhith thu a’ sgrìobhadh an sin, ach cha tèid an dàta a chall, bidh a h-uile dad ann an òrdugh.

Halò! Bhruidhinn thu mu obair autovacuum. Bha graf ann le ceallan dearga, buidhe is uaine den chlàr. Is e sin, feadhainn buidhe - chomharraich e iad mar a chaidh a dhubhadh às. Agus mar thoradh air an sin, faodaidh tu rudeigin ùr a sgrìobhadh annta?

Tha. Cha bhith Postgres a’ toirt air falbh sreathan. Tha a leithid de shònrachas aige. Ma dh’ ùraich sinn an loidhne, chomharraich sinn an t-seann fhear mar a chaidh a dhubhadh às. Bidh an id malairt a dh’ atharraich an loidhne seo ag èirigh an sin, agus bidh sinn a’ sgrìobhadh loidhne ùr. Agus tha seiseanan againn a dh’ fhaodadh an leughadh. Aig àm air choreigin, bidh iad gu math sean. Agus is e brìgh an autovacuum gu bheil e a 'ruith tro na loidhnichean sin agus gan comharrachadh mar neo-riatanach. Agus an sin faodaidh tu ath-sgrìobhadh an dàta.

Tha mi a’ tuigsinn. Ach chan ann mu dheidhinn sin a tha a’ cheist. Cha do dh'aontaich mi. Canaidh sinn gu bheil bòrd againn. Tha raointean meud caochlaideach aige. Agus ma dh’ fheuchas mi ri rudeigin ùr a chuir a-steach, is dòcha nach bi e dìreach a’ freagairt air an t-seann chill.

Chan e, ann an suidheachadh sam bith tha an loidhne gu lèir air ùrachadh. Tha dà mhodail stòraidh aig Postgres. Bidh e a’ taghadh bhon t-seòrsa dàta. Tha dàta ann a tha air a stòradh gu dìreach sa chlàr, agus tha dàta tos ann cuideachd. Is e seo meudan mòra de dhàta: teacsa, json. Tha iad air an stòradh ann an clàran fa leth. Agus a rèir nan clàran sin, tha an aon sgeulachd le bloat a 'tachairt, is e sin, tha a h-uile dad mar an ceudna. Tha iad dìreach air an liostadh air leth.

Tapadh leibh airson an aithris! Dè cho iomchaidh ‘s a tha e iarrtasan ùine aithris a chleachdadh gus an ùine a chuingealachadh?

Gu math iomchaidh. Bidh sinn ga chleachdadh anns a h-uile àite. Agus leis nach eil na seirbheisean againn fhèin, bidh sinn a’ toirt seachad taic iomallach, tha measgachadh math de luchd-dèiligidh ann. Agus tha a h-uile duine gu math riaraichte le seo. Is e sin, tha obraichean againn ann an cron a nì sgrùdadh. Is e dìreach gu bheil fad nan seiseanan air a cho-rèiteachadh leis an neach-dèiligidh, agus cha bhith sinn a’ tàirneadh roimhe sin. Dh’ fhaodadh e a bhith na mhionaid, dh’ fhaodadh e a bhith 10 mionaidean. Tha e an urra ris an luchd air a’ bhunait agus an adhbhar. Ach bidh sinn uile a’ cleachdadh pg_stat_activity.

Tapadh leibh airson an aithris! Tha mi a’ feuchainn ris an aithisg agad airson na tagraidhean agam. Agus tha e coltach gu bheil sinn a 'tòiseachadh air malairt anns a h-uile àite, agus bidh sinn ga chrìochnachadh gu soilleir anns a h-uile àite. Ma tha eisgeachd ann, bidh an aon ro-aithris a’ tachairt. Agus an uairsin smaoinich mi. Às deidh na h-uile, chan urrainn don ghnothach tòiseachadh gu soilleir. Seo beachd don nighean, tha mi creidsinn. Ma nì mi dìreach ùrachadh clàraidh, an tòisich an gnothach ann am PostgreSQL agus nach tig e gu crìch ach nuair a thèid an ceangal a dhì-cheangal?

Ma tha thu a ’bruidhinn a-nis mu ìre an tagraidh, bidh e an urra ris an draibhear a tha thu a’ cleachdadh, air an ORM a thathas a ’cleachdadh. Tha tòrr shuidheachaidhean ann an sin. Ma tha gealltanas fèin-ghluasadach agad air a chomasachadh, tòisichidh malairt an sin agus dùinidh e sa bhad.

Is e sin, bidh e a’ dùnadh dìreach às deidh an ùrachadh?

Tha e an urra ris na roghainnean. Dh'ainmich mi aon suidheachadh. Is e gealltanas fèin-ghluasadach a tha seo. Tha i gu math cumanta. Ma tha e comasach, chaidh an gnothach fhosgladh agus a dhùnadh. Mura h-eil thu ag ràdh gu soilleir “tòisich malairt” agus “crìoch air malairt”, ach dìreach chuir thu iarrtas a-steach don t-seisean.

Halò! Tapadh leibh airson an aithris! Smaoinich gu bheil stòr-dàta againn a bhios ag èirigh agus a’ dol suas agus an uairsin ruithidh am frithealaiche a-mach à àite. A bheil innealan ann airson an suidheachadh seo a cheartachadh?

Feumar sùil a chumail air an àite air an fhrithealaiche ann an dòigh mhath.

Mar eisimpleir, chaidh DBA a dh'òl tì, bha e aig ionad-turasachd, msaa.

Nuair a thèid siostam faidhle a chruthachadh, thèid co-dhiù beagan àite glèidhte a chruthachadh far nach eil dàta sgrìobhte.

Dè ma tha e gu tur neoni?

An sin canar àite glèidhte ris, is e sin, faodar a shaoradh, agus a rèir dè cho mòr sa chaidh a chruthachadh, fhuair thu àite an-asgaidh. Gu gnàthach, chan eil fhios agam cia mheud a tha ann. Agus ann an cùis eile, lìbhrig diosgan gus am bi àite agad airson obair ath-bheothachaidh a dhèanamh. Faodaidh tu clàr air choreigin a sguabadh às a tha thu cinnteach nach fheum thu.

Nach eil innealan eile ann?

Tha e an-còmhnaidh air a dhèanamh le làimh. Agus anns an àite tha e air fhoillseachadh dè a tha nas fheàrr a dhèanamh an sin, leis gu bheil dàta ann a tha deatamach, tha neo-èiginneach ann. Agus airson gach stòr-dàta agus tagradh a tha ag obair leis, tha e an urra ris a’ ghnìomhachas. Tha e an-còmhnaidh air a cho-dhùnadh san spot.

Tapadh leibh airson an aithris! Tha dà cheist agam. An toiseach, sheall thu sleamhnagan far an deach a shealltainn, a thaobh gnothaichean crochte, gum fàs an dà chuid na tha de rùm bùird agus meud a ’chlàr-amais. Agus nas fhaide air adhart air an aithisg bha dòrlach de ghoireasan ann a bhios a’ pacadh a’ chlàr. Agus dè mu dheidhinn an clàr-amais?

Bidh iad gam pacadh cuideachd.

Ach chan eil am falamh a 'toirt buaidh air a' chlàr-amais?

Bidh cuid ag obair le clàr-amais. Mar eisimpleir pg_rapack, pgcompacttable. Vacuum ath-chruthachadh clàran-amais, a 'toirt buaidh orra. Tha brìgh aig VACUUM FULL a bhith ag ath-sgrìobhadh a h-uile càil, i.e. bidh e ag obair leis a h-uile duine.

Agus an dàrna ceist. Cha do thuig mi carson a tha aithisgean air mac-samhail an urra cho mòr ri ath-riochdachadh fhèin. Bha e coltach rium gu bheil aithisgean gan leughadh, agus ath-riochdachadh a’ sgrìobhadh.

Dè a tha ag adhbhrachadh còmhstri ath-riochdachadh? Tha Maighstir againn air am bi pròiseasan a’ gabhail àite. Tha autovacuum againn. Autovacuum gu dearbh, dè a nì e? Bidh e a’ gearradh a-mach cuid de sheann loidhnichean. Ma tha iarrtas againn aig an àm seo air a’ mhac-samhail a leughas na seann loidhnichean sin, agus air a’ Mhaighstir bha suidheachadh ann gun robh an autovacuum a’ comharrachadh nan loidhnichean sin cho comasach airson ath-sgrìobhadh, an uairsin chuir sinn thairis orra. Agus fhuair sinn pasgan dàta, nuair a dh’ fheumas sinn na loidhnichean a dh’ fheumas an t-iarrtas ath-sgrìobhadh air a’ mhac-samhail, fuirichidh am pròiseas mac-samhail airson an ùine-ama a shuidhich thu. Agus an uairsin co-dhùinidh PostgreSQL dè a tha nas cudromaiche dha. Agus tha ath-riochdachadh nas cudromaiche dha na iarrtas, agus tilgidh e an t-iarrtas airson na h-atharrachaidhean sin a dhèanamh air a’ mhac-samhail.

Anndra, tha ceist agam. Na grafaigean iongantach sin a sheall thu tron ​​​​taisbeanadh, an e seo toradh cuid de dh ’obair air do ghoireas? Ciamar a chaidh na clàran a dhèanamh?

Is e seirbheis a tha seo Okmeter.

An e toradh malairteach a tha seo?

Tha. Is e toradh malairteach a tha seo.

Source: www.habr.com

Cuir beachd ann