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