Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Molaim duit athscríbhinn na tuarascála ó thús na bliana 2016 le Andrey Salnikov a léamh “Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql”

Sa tuarascáil seo, déanfaidh mé anailís ar na príomhearráidí in iarratais a thagann chun cinn ag céim deartha agus scríofa an chóid iarratais. Agus ní ghlacfaidh mé ach na hearráidí sin as a dtagann bloat i Postgresql. De ghnáth, is é seo tús deireadh fheidhmíocht do chórais ina iomláine, cé nach raibh aon réamhriachtanais le feiceáil ar dtús.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Sásta fáilte a chur roimh chách! Níl an tuarascáil seo chomh teicniúil leis an gceann roimhe sin ó mo chomhghleacaí. Tá an tuarascáil seo dírithe go príomha ar fhorbróirí córais inneall mar go bhfuil líon measartha mór cliant againn. Agus déanann siad go léir na botúin chéanna. Inseoidh mé duit mar gheall orthu. Míneoidh mé cad iad na rudaí marfach agus na rudaí dona a eascraíonn as na botúin seo.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Cén fáth a ndéantar botúin? Déantar iad ar dhá chúis: go randamach, b'fhéidir go n-oibreoidh sé amach agus mar gheall ar aineolas ar roinnt meicníochtaí a tharlaíonn ar an leibhéal idir an bunachar sonraí agus an t-iarratas, chomh maith leis an mbunachar sonraí féin.

Tabharfaidh mé trí shampla duit le pictiúir uafásacha ar cé chomh dona a d'éirigh le rudaí. Inseoidh mé duit go hachomair faoin meicníocht a tharlaíonn ansin. Agus conas déileáil leo, nuair a tharla siad, agus cad iad na modhanna coisctheacha atá le húsáid chun botúin a chosc. Inseoidh mé duit faoi na huirlisí cúnta agus cuirfidh mé naisc úsáideacha ar fáil.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Bhain mé úsáid as bunachar tástála ina raibh dhá tábla agam. Pláta amháin le cuntais chustaiméirí, an ceann eile le hidirbhearta ar na cuntais seo. Agus go minic déanaimid iarmhéideanna na gcuntas seo a nuashonrú.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Sonraí tosaigh an phláta: tá sé sách beag, 2 MB. Tá an t-am freagartha don bhunachar sonraí agus go sonrach don chomhartha an-mhaith freisin. Agus ualach measartha maith - 2 oibríocht in aghaidh an tsoicind de réir an phláta.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Agus tríd an tuarascáil seo taispeánfaidh mé graif duit ionas gur féidir leat a thuiscint go soiléir cad atá ag tarlú. Beidh 2 shleamhnán ann i gcónaí le graif. Is é an chéad sleamhnán cad a tharlaíonn go ginearálta ar an bhfreastalaí.

Agus sa chás seo, feicimid go bhfuil comhartha beag againn i ndáiríre. Tá an t-innéacs beag ag 2 MB. Seo é an chéad ghraf ar chlé.

Tá an meán-am freagartha ar an bhfreastalaí cobhsaí agus gearr freisin. Seo é an graf ag barr ar dheis.

Taispeánann an graf ag bun na láimhe clé na hidirbhearta is faide. Feicimid go gcuirtear idirbhearta i gcrích go tapa. Agus níl an autovacuum ag obair anseo go fóill, toisc gur tástáil tosaigh a bhí ann. Leanfaidh sé ag obair agus beidh sé úsáideach dúinn.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Beidh an dara sleamhnán tiomanta i gcónaí don phláta atá á thástáil. Sa chás seo, déanaimid iarmhéideanna cuntais an chliaint a nuashonrú i gcónaí. Agus feicimid go bhfuil an meán-am freagartha le haghaidh oibríocht nuashonraithe sách maith, níos lú ná milleasoicind. Feicimid go ndéantar acmhainní próiseálaí (is é seo an graf uachtarach ar dheis) a chaitheamh go cothrom agus beag go leor freisin.

Taispeánann an graf íochtair ar dheis cé mhéad cuimhne oibriúcháin agus diosca a théannimid tríd sa tóir ar an líne atá ag teastáil uainn sula ndéantar é a nuashonrú. Agus is é líon na n-oibríochtaí de réir an chomhartha ná 2 in aghaidh an tsoicind, mar a dúirt mé ag an tús.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Agus anois tá tragóid againn. Ar chúis éigin tá idirbheart fada dearmadta. Is gnách go mbíonn na cúiseanna go léir banal:

  • Ceann de na cinn is coitianta ná gur thosaigh muid ag rochtain a fháil ar sheirbhís sheachtrach sa chód iarratais. Agus ní fhreagraíonn an tseirbhís seo dúinn. Is é sin, d’oscail muid idirbheart, rinneamar athrú ar an mbunachar sonraí agus chuaigh muid ón bhfeidhmchlár chun post a léamh nó chuig seirbhís eile laistigh dár mbonneagar, agus ar chúis éigin ní fhreagraíonn sé dúinn. Agus tá ár seisiún i bhfostú i riocht nach fios cathain a réiteofar é.
  • Is é an dara cás nuair a tharla eisceacht inár gcód ar chúis éigin. Agus san eisceacht níor phróiseáileamar dúnadh an idirbhirt. Agus chríochnaigh muid suas le seisiún crochta le hidirbheart oscailte.
  • Agus is cás measartha coitianta é an ceann deireanach freisin. Is cód cáilíochta íseal é seo. Osclaíonn roinnt creataí idirbheart. Tá sé ar crochadh, agus b'fhéidir nach mbeadh a fhios agat san fheidhmchlár go bhfuil sé ar crochadh agat.

Cá dtagann rudaí mar seo?

Go dtí an pointe go dtosaíonn ár dtáblaí agus ár n-innéacsanna ag méadú go suntasach. Is é seo go díreach an éifeacht bloat céanna. Maidir leis an mbunachar sonraí, ciallóidh sé seo go méadóidh an t-am freagartha bunachar sonraí go géar agus go dtiocfaidh méadú ar an ualach ar an bhfreastalaí bunachar sonraí. Agus mar thoradh air sin, beidh ár n-iarratas ag fulaingt. Mar má chaith tú 10 milleasoicindí i do chód ar iarratas chuig an mbunachar sonraí, 10 milleasoicindí ar do loighic, thóg sé 20 milleasoicind le comhlánú d'fheidhm. Agus anois beidh do chás an-brónach.

Agus a ligean ar a fheiceáil cad a tharlaíonn. Léiríonn an graf ag bun ar chlé go bhfuil idirbheart fada fada againn. Agus má fhéachaimid ar an ngraf uachtarach ar chlé, feicimid go bhfuil méid ár tábla tar éis ardú go tobann ó dhá mheigibheart go 300 meigeavata. Ag an am céanna, níl aon athrú ar an méid sonraí sa tábla, i.e. tá líon measartha mór de truflais ann.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Tá an staid ghinearálta maidir le meán-am freagartha an fhreastalaí athraithe freisin de réir roinnt orduithe méide. Is é sin, thosaigh gach iarratas ar an bhfreastalaí ag titim go hiomlán. Agus ag an am céanna, seoladh próisis inmheánacha Postgres i bhfoirm autovacuum, atá ag iarraidh rud éigin a dhéanamh agus acmhainní a chaitheamh.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Cad atá ar siúl lenár gcomhartha? Mar an gcéanna. Tá ár meán-am freagartha, de réir an chomhartha, tar éis ardú ar roinnt orduithe méide. Go sonrach maidir le hacmhainní a chaitear, feicimid go bhfuil méadú mór tagtha ar an ualach ar an bpróiseálaí. Seo é an graf ag barr ar dheis. Agus tá méadú tagtha air toisc go gcaithfidh an próiseálaí sraith de línte useless a shórtáil sa tóir ar an gceann atá ag teastáil. Seo é an graf ag bun ar dheis. Agus mar thoradh air sin, thosaigh ár líon glaonna in aghaidh an tsoicind ag titim go suntasach, toisc nach raibh am ag an mbunachar sonraí an líon céanna iarratas a phróiseáil.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Caithfimid filleadh ar an saol. Téann muid ar líne agus faigheann muid amach go mbíonn fadhb mar thoradh ar idirbhearta fada. Faighimid agus maraíonn muid an t-idirbheart seo. Agus tá gach rud ag éirí gnáth dúinn. Oibríonn gach rud mar ba chóir.

Socair muid síos, ach tar éis tamaill tosaímid ag tabhairt faoi deara nach n-oibríonn an t-iarratas ar an mbealach céanna agus a bhí roimh an éigeandáil. Déantar iarratais a phróiseáil níos moille fós, agus i bhfad níos moille. Uair go leith nó dhá uair níos moille go sonrach i mo shampla. Tá an t-ualach ar an bhfreastalaí níos airde freisin ná mar a bhí sé roimh an timpiste.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Agus an cheist: "Cad atá ag tarlú don bhonn faoi láthair?" Agus tarlaíonn an staid seo a leanas leis an mbonn. Ar an gcairt idirbheart is féidir leat a fheiceáil go bhfuil sé stoptha agus nach bhfuil aon idirbhearta fadtéarmacha i ndáiríre. Ach mhéadaigh méid an chomhartha go marfach le linn na timpiste. Agus ó shin i leith nach bhfuil siad laghdú. Tá an meán-am ar an mbonn cobhsaithe. Agus is cosúil go bhfuil na freagraí ag teacht go leordhóthanach ar luas atá inghlactha dúinn. Tháinig an autovacuum níos gníomhaí agus thosaigh sé ag déanamh rud éigin leis an gcomhartha, mar ní mór é a scagadh trí níos mó sonraí.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Go sonrach, de réir an phláta tástála le cuntais, áit a n-athraímid iarmhéideanna: is cosúil go bhfuil an t-am freagartha ar iarratas ar ais ina gnáthriocht. Ach i ndáiríre tá sé uair go leith níos airde.

Agus ón ualach ar an bpróiseálaí, feicimid nach bhfuil an t-ualach ar an bpróiseálaí tar éis filleadh ar an luach riachtanach roimh an timpiste. Agus tá na cúiseanna go beacht sa ghraf íochtair ar dheis. Is féidir a fheiceáil go bhfuil méid áirithe cuimhne á chuardach ann. Is é sin, chun an líne riachtanach a aimsiú, cuirimid amú acmhainní an fhreastalaí bunachar sonraí agus muid ag sórtáil trí shonraí gan úsáid. Tá líon na n-idirbheart in aghaidh an tsoicind cobhsaithe.

Ar an iomlán go maith, ach tá an scéal níos measa ná mar a bhí. Glan díghrádú bunachar sonraí mar thoradh ar ár bhfeidhmchlár a oibríonn leis an mbunachar sonraí seo.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Agus chun tuiscint a fháil ar cad atá ar siúl ansin, mura raibh tú ag an tuarascáil roimhe seo, faighfimid teoiric bheag anois. Teoiric mar gheall ar an bpróiseas inmheánach saor in aisce,. Cén fáth folús carr agus cad a dhéanann sé?

Go hachomair go litriúil le haghaidh tuisceana. Ag am éigin tá tábla againn. Tá sraitheanna againn sa tábla. Is féidir leis na línte seo a bheith gníomhach, beo, agus mar a theastaíonn uainn anois. Tá siad marcáilte le glas sa phictiúr. Agus tá línte marbha ann a oibríodh amach cheana féin, a nuashonraíodh, agus tá iontrálacha nua le feiceáil orthu. Agus tá siad marcáilte nach bhfuil siad suimiúil don bhunachar sonraí a thuilleadh. Ach tá siad sa tábla mar gheall ar ghné Postgres.

Cén fáth a bhfuil gá agat le folús carr? Ag am éigin, tagann an autovacuum, rochtain a fháil ar an mbunachar sonraí agus fiafraíonn sé: “Tabhair dom aitheantas an idirbhirt is sine atá ar oscailt faoi láthair sa bhunachar sonraí.” Tugann an bunachar sonraí an t-aitheantas seo ar ais. Agus déanann an autovacuum, ag brath air, a shórtáil trí na línte sa tábla. Agus má fheiceann sé gur athraigh idirbhearta i bhfad níos sine roinnt línte, ansin tá sé de cheart aige iad a mharcáil mar línte ar féidir linn a athúsáid sa todhchaí trí shonraí nua a scríobh ann. Is próiseas cúlra é seo.

Ag an am seo, leanaimid ag obair leis an mbunachar sonraí agus leanaimid ar aghaidh ag déanamh roinnt athruithe ar an tábla. Agus ar na línte seo, ar féidir linn a athúsáid, scríobhaimid sonraí nua. Agus mar sin faigheann muid timthriall, i.e. an t-am ar fad a thagann roinnt seanlínte marbha le feiceáil ann, ina ionad sin scríobhaimid síos línte nua a theastaíonn uainn. Agus is gnáthstát é seo do PostgreSQL a bheith ag obair.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Cad a tharla le linn na timpiste? Conas a tharla an próiseas seo ansin?

Bhí comhartha againn i riocht éigin, roinnt beo, roinnt línte marbh. Tá folús an ghluaisteáin tagtha. D'iarr sé ar an mbunachar sonraí cad é an t-idirbheart is sine atá againn agus cad é an t-aitheantas atá aige. Fuair ​​​​mé an t-aitheantas seo, a d'fhéadfadh a bheith ann go leor uaireanta ó shin, b'fhéidir deich nóiméad ó shin. Braitheann sé ar cé chomh trom agus atá an t-ualach atá agat ar do bhunachar sonraí. Agus chuaigh sé ag lorg línte a d'fhéadfadh sé a mharcáil mar athúsáidte. Agus ní bhfuair mé línte den sórt sin inár tábla.

Ach ag an am seo leanaimid orainn ag obair leis an tábla. Déanaimid rud éigin ann, déanaimid é a nuashonrú, athraigh na sonraí. Cad ba cheart don bhunachar sonraí a dhéanamh ag an am seo? Níl aon rogha aici ach línte nua a chur le deireadh an tábla reatha. Agus mar sin tosaíonn ár méid tábla ag dul in olcas.

I ndáiríre, ní mór dúinn línte glasa a oibriú. Ach le linn fadhb den sórt sin, tharlaíonn sé go bhfuil an céatadán de línte glasa thar a bheith íseal ar fud an tábla ar fad.

Agus nuair a dhéanaimid ceist, ní mór don bhunachar sonraí dul tríd na línte go léir: dearg agus glas araon, chun an líne atá ag teastáil a fháil. Agus tugtar “bloat” ar an éifeacht a bhaineann le tábla a bloating le sonraí gan úsáid, a itheann ár spás diosca freisin. Cuimhnigh, bhí sé 2 MB, bhí sé 300 MB? Anois athraigh meigibheart go ghigibheart agus caillfidh tú do chuid acmhainní diosca go léir go tapa.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Cad iad na hiarmhairtí a d’fhéadfadh a bheith ann dúinn?

  • I mo shampla, d'fhás an tábla agus an t-innéacs 150 uair. Bhí cásanna níos marfach ag cuid dár gcliaint nuair a thosaigh siad ag rith amach as spás diosca.
  • Ní bheidh laghdú choíche ar mhéid na dtáblaí féin. Is féidir le Autovacuum i gcásanna áirithe eireaball an tábla a ghearradh amach mura bhfuil ach línte marbh ann. Ach ós rud é go bhfuil rothlú leanúnach ann, féadfaidh líne glas amháin reoite ag an deireadh agus gan a nuashonrú, agus déanfar na cinn eile go léir a scríobh síos áit éigin ag tús an phláta. Ach is ócáid ​​​​dhóchúil é seo go laghdóidh do bhord féin i méid, mar sin níor cheart duit a bheith ag súil leis.
  • Ní mór an bunachar sonraí a shórtáil trí bunch iomlán de línte useless. Agus cuirimid acmhainní diosca amú, cuirimid acmhainní próiseálaí agus leictreachais amú.
  • Agus bíonn tionchar díreach aige seo ar ár n-iarratas, mar má chaitheamar ag an tús 10 milleasoicindí ar an iarratas, 10 milleasoicindí ar ár gcód, ansin le linn na timpiste thosaigh muid ag caitheamh soicind ar an iarratas agus 10 milleasoicindí ar an gcód, i.e. ordú de tháinig laghdú ar mhéid na feidhmíochta iarratais. Agus nuair a réitíodh an timpiste, thosaigh muid ag caitheamh 20 milleasoicind ar iarratas, 10 milleasoicindí ar chód. Ciallaíonn sé seo gur thiteamar fós uair go leith sa táirgiúlacht. Agus tá sé seo go léir mar gheall ar idirbheart amháin a froze, b'fhéidir tríd ár locht.
  • Agus an cheist: “Conas is féidir linn gach rud a fháil ar ais?” ionas go mbeidh gach rud go breá linn agus go dtagann iarratais isteach chomh tapa agus a tháinig roimh an timpiste.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Chun na críche seo tá timthriall áirithe oibre a dhéantar.

Ar dtús ní mór dúinn na táblaí fadhbacha atá bloated a fháil. Tuigimid go bhfuil an taifeadadh níos gníomhaí i roinnt táblaí, agus i gcásanna eile nach bhfuil chomh gníomhach. Agus le haghaidh seo úsáidimid an síneadh pgstattuple. Trí an síneadh seo a shuiteáil, is féidir leat ceisteanna a scríobh a chabhróidh leat teacht ar tháblaí atá faoi bhláth go leor.

Nuair a bheidh na táblaí seo aimsithe agat, ní mór duit iad a chomhbhrú. Tá uirlisí chuige seo cheana féin. Inár gcuideachta úsáidimid trí uirlisí. Is é an chéad cheann a tógadh i bhfolús IOMLÁN. Tá sé éadrócaireach, harsh agus merciless, ach uaireanta tá sé an-úsáideach. Pg_athphacáil и pgcompacttable - Is fóntais tríú páirtí iad seo chun táblaí a chomhbhrú. Agus déileálann siad leis an mbunachar sonraí ar bhealach níos cúramach.

Úsáidtear iad ag brath ar cad atá níos áisiúla duit. Ach inseoidh mé duit faoi seo ag an deireadh. Is é an rud is mó ná go bhfuil trí uirlisí ann. Tá neart le roghnú as.

Tar éis dúinn gach rud a cheartú agus a chinntiú go bhfuil gach rud ceart go leor, ní mór dúinn a fhios conas an cás seo a chosc sa todhchaí:

  • Is féidir é a chosc go héasca. Ní mór duit monatóireacht a dhéanamh ar fhad na seisiún ar an Máistirfhreastalaí. Go háirithe contúirteacha seisiúin i díomhaoin i stát idirbheart. Is iad seo na cinn a d'oscail idirbheart díreach, a rinne rud éigin agus a d'fhág, nó go simplí crochadh, caillte sa chód.
  • Agus duitse, mar fhorbróirí, tá sé tábhachtach do chód a thástáil nuair a thagann na cásanna seo chun cinn. Níl sé deacair a dhéanamh. Seiceáil úsáideach a bheidh anseo. Seachnóidh tú líon mór fadhbanna “leanbhacha” a bhaineann le hidirbhearta fada.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Sna graif seo, bhí mé ag iarraidh a thaispeáint duit conas a d'athraigh comhartha agus iompar an bhunachair sonraí tar éis dom dul tríd an gcomhartha le VACUUM FULL sa chás seo. Ní táirgeadh é seo domsa.

D'fhill méid an tábla láithreach go dtí a ghnáthstaid oibriúcháin de chúpla meigibheart. Níor chuir sé seo isteach go mór ar an meán-am freagartha don fhreastalaí.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Ach go sonrach dár gcomhartha tástála, inar nuashonraíomar iarmhéideanna cuntais, feicimid gur laghdaíodh an meán-am freagartha d'iarratas ar shonraí sa chomhartha a nuashonrú go leibhéil réamh-éigeandála. Thit na hacmhainní a d'úsáid an próiseálaí chun an t-iarratas seo a chur i gcrích go leibhéil réamhthimpiste freisin. Agus léiríonn an graf íochtair ar dheis go bhfaighimid anois go díreach an líne a theastaíonn uainn ar an bpointe boise, gan dul tríd na chairn de línte marbha a bhí ann sular comhbhrúite an tábla. Agus d'fhan an meán-am iarratais ag thart ar an leibhéal céanna. Ach anseo tá mé, in áit, earráid i mo crua-earraí.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Seo an áit a gcríochnaíonn an chéad scéal. Is é an ceann is coitianta. Agus tarlaíonn sé do gach duine, beag beann ar thaithí an chliaint agus cé chomh cáilithe atá na ríomhchláraitheoirí. Luath nó mall a tharlaíonn sé seo.

An dara scéal, ina ndéanaimid an t-ualach a dháileadh agus acmhainní freastalaí a bharrfheabhsú

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

  • Táimid tar éis fás suas cheana féin agus a bheith guys dáiríre. Agus tuigimid go bhfuil macasamhail againn agus gur mhaith an rud dúinn an t-ualach a chothromú: scríobh chun an Mháistir, agus léigh ón macasamhail. Agus is gnách go n-eascraíonn an cás seo nuair is mian linn roinnt tuarascálacha nó ETL a ullmhú. Agus tá gnó an-sásta faoi seo. Tá sé i ndáiríre ag iarraidh tuairiscí éagsúla le go leor anailísíochta casta.
  • Tógann tuarascálacha go leor uaireanta, mar ní féidir anailísíocht chasta a ríomh i milleasoicindí. Táimid, cosúil le guys cróga, scríobh cód. San iarratas isteach déanaimid an taifeadadh ar an Máistir, agus déanaimid na tuarascálacha ar an macasamhail.
  • An t-ualach a dháileadh.
  • Oibríonn gach rud go foirfe. Tá muid ar fheabhas.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Agus cén chuma atá ar an gcás seo? Go sonrach ar na graif seo, chuir mé fad na n-idirbheart ón macasamhail ar feadh ré an idirbhirt leis freisin. Ní thagraíonn gach graf eile ach don Phríomhfhreastalaí.

Faoin am seo, bhí méadú tagtha ar mo chlár tuairisce. Tá níos mó acu. Feicimid go bhfuil an meán-am freagartha freastalaí cobhsaí. Feicimid go bhfuil idirbheart fadtéarmach againn ar an macasamhail a ritheann ar feadh 2 uair an chloig. Feicimid oibriú ciúin an autovacuum, a phróiseálann línte marbh. Agus tá gach rud go breá linn.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Go sonrach, de réir an phláta tástálaithe, leanaimid ag nuashonrú iarmhéideanna cuntais ansin. Agus tá am freagartha cobhsaí againn freisin d'iarratais, tomhaltas acmhainní cobhsaí. Tá gach rud go breá linn.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Tá gach rud ceart go leor go dtí an nóiméad a thosaíonn na tuairiscí seo ag dul ar ais mar gheall ar choimhlint le macasamhlú. Agus tine siad ar ais go rialta.

Téann muid ar líne agus tosaímid ag léamh cén fáth a bhfuil sé seo ag tarlú. Agus faighimid réiteach.

Is é an chéad réiteach ná an latency macasamhlaithe a mhéadú. Tá a fhios againn go maireann ár dtuarascáil ar feadh 3 uair an chloig. Shocraigh muid an mhoill macasamhlaithe go 3 uair an chloig. Táimid ag seoladh gach rud, ach tá fadhbanna fós againn agus tuairiscí á gcealú uaireanta.

Ba mhaith linn go mbeidh gach rud foirfe. Táimid ag dreapadh níos faide. Agus fuaireamar suíomh fionnuar ar an Idirlíon - hot_standby_feedback. A ligean ar cas sé ar. Ligeann Hot_standby_feedback dúinn an t-uathfholús a choinneáil siar ar an Máistir. Mar sin, faighimid réidh go hiomlán le coinbhleachtaí macasamhlaithe. Agus oibríonn gach rud go maith dúinn le tuarascálacha.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Agus cad atá ag tarlú leis an bhfreastalaí Máistir ag an am seo? Agus táimid i dtrioblóid iomlán leis an bhfreastalaí Máistir. Anois táimid ag féachaint ar na graif nuair atá an dá shocrú seo cumasaithe agam. Agus feicimid gur thosaigh an seisiún ar ár macasamhail ar bhealach éigin tionchar a imirt ar an staid ar an bhfreastalaí Máistir. Tá éifeacht aici mar gur chuir sí stop leis an bhfolús, rud a ghlanann na marbhlínte. Tá ár méid tábla skyrocketed arís. Mhéadaigh an meán-am feidhmithe fiosrúcháin ar fud an bhunachair shonraí iomláin skyrocketed freisin. An autovacuums tightened suas beagán.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Go sonrach, ónár bpláta, feicimid gur léim an nuashonrú sonraí air go dtí an spéir freisin. Tá méadú mór tagtha ar thomhaltas LAP mar an gcéanna. Táimid ag dul trí líon mór de línte marbh, useless arís. Agus thit an t-am freagartha don chomhartha seo agus líon na n-idirbheart.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Conas a bheidh sé mura bhfuil a fhios againn cad a bhí mé ag caint faoi roimhe seo?

  • Tosaímid ag lorg fadhbanna. Má tháinig muid ar fhadhbanna sa chéad chuid, tá a fhios againn go bhféadfadh sé seo a bheith mar gheall ar idirbheart fada agus téigh go dtí an Máistir. Tá fadhb againn ar an Máistir. Ispíní dó. Hes sé suas, tá a Meán Luchtaigh thart ar céad.
  • Bíonn iarratais mall, ach ní fheicimid aon idirbhearta atá ar siúl le fada ann. Agus ní thuigimid cad atá i gceist. Ní thuigimid cá háit le breathnú.
  • Déanaimid seiceáil ar threalamh freastalaí. B’fhéidir gur thit ár ruathar. B'fhéidir go bhfuil ár bata cuimhne dóite amach. Sea, is féidir aon rud a tharlóidh. Ach níl, tá na freastalaithe nua, oibríonn gach rud go breá.
  • Tá gach duine ag rith: riarthóirí, forbróirí agus an stiúrthóir. Ní chabhraíonn aon rud.
  • Agus ag pointe éigin tosaíonn gach rud go tobann a cheartú féin.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Ag an am seo, próiseáladh an t-iarratas ar ár macasamhail agus fágadh é. Fuaireamar an tuairisc. Tá gnó fós sásta. Mar a fheiceann tú, tá méadú tagtha ar ár gcomhartha arís agus níl sé chun crapadh. Ar an ngraf le seisiúin, d'fhág mé píosa den idirbheart fada seo ó mhacasamhail ionas gur féidir leat a mheas cé chomh fada agus a thógann sé go dtí go gcobhsaíonn an scéal.

Tá an seisiún thart. Agus ach amháin tar éis roinnt ama a thagann an freastalaí níos mó nó níos lú in ord. Agus filleann an meán-am freagartha d'iarratais ar an Máistirfhreastalaí mar is gnách. Mar gheall ar, ar deireadh, tá an deis ag an autovacuum na línte marbha seo a ghlanadh agus a mharcáil. Agus thosaigh sé ag déanamh a chuid oibre. Agus cé chomh tapa agus a dhéanann sé é, mar sin go tapa beidh muid in ord.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

De réir an táibléad tástáladh, ina ndéanaimid iarmhéideanna cuntais a nuashonrú, feicimid go díreach an pictiúr céanna. Tá an meán-am nuashonraithe cuntais ag gnáthú de réir a chéile freisin. Laghdaítear na hacmhainní a úsáideann an próiseálaí freisin. Agus filleann líon na n-idirbheart in aghaidh an tsoicind ina gnáthriocht. Ach tá muid ar ais mar is gnách, ní mar a chéile agus a bhí againn roimh an timpiste.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

In aon chás, faigheann muid íostarraingt feidhmíochta, mar atá sa chéad chás, uair go leith go dhá uair, agus uaireanta níos mó.

Is cosúil go ndearnamar gach rud i gceart. Déan an t-ualach a dháileadh. Níl an trealamh díomhaoin. Roinneamar na hiarratais de réir ár n-intinn, ach fós d'éirigh gach rud go dona.

  • Ná cumasaigh hot_standby_feedback? Sea, ní mholtar é a chasadh air gan cúiseanna an-láidir. Toisc go dtéann an casadh seo i bhfeidhm go díreach ar an Máistirfhreastalaí agus go gcuireann sé oibriú an uathfholús ar fionraí ann. Trí é a chumasú ar roinnt macasamhail agus dearmad a dhéanamh air, is féidir leat an Máistir a mharú agus fadhbanna móra a fháil leis an iarratas.
  • Méadaigh max_standby_streaming_moill? Sea, tá sé seo fíor i gcás tuarascálacha. Má tá tuairisc trí huaire agat agus mura dteastaíonn uait go dtarlódh sé mar gheall ar choinbhleachtaí macasamhlaithe, ansin cuir leis an mhoill. Ní éilíonn tuarascáil fhadtéarmach sonraí a tháinig isteach sa bhunachar sonraí faoi láthair. Má tá sé agat ar feadh trí huaire, ansin tá tú ag rith é ar feadh roinnt tréimhse sonraí d'aois. Agus duitse, ní dhéanfaidh cibé an bhfuil moill trí huaire an chloig nó moill sé huaire an chloig aon difríocht, ach gheobhaidh tú tuairiscí go comhsheasmhach agus ní bheidh aon fhadhb agat agus iad ag titim.
  • Ar ndóigh, ní mór duit seisiúin fhada ar macasamhla a rialú, go háirithe má shocraíonn tú hot_standby_feedback a chumasú ar macasamhail. Toisc gur féidir aon rud a tharlóidh. Thugamar an macasamhail seo don fhorbróir ionas go bhféadfadh sé na ceisteanna a thástáil. Scríobh sé iarratas dÚsachtach. Sheol sé é agus chuaigh sé amach chun tae a ól, agus fuair muid an Máistir bunaithe. Nó b'fhéidir go gcuirfimid an t-iarratas mícheart isteach ann. Tá na cásanna éagsúil. Ní mór monatóireacht chomh cúramach céanna a dhéanamh ar sheisiúin ar mhacasamhla agus a dhéantar ar an Máistir.
  • Agus má tá ceisteanna tapa agus fada agat ar macasamhla, ansin sa chás seo is fearr iad a roinnt chun an t-ualach a dháileadh. Seo nasc chuig streaming_delay. Maidir le cinn thapa, bíodh macasamhail amháin agat agus moill bheag ar mhacasamhlú. Maidir le hiarratais tuairiscithe fadtréimhseacha, bíodh macasamhail agat a d’fhéadfadh a bheith moille 6 huaire an chloig nó in aghaidh an lae. Is gnáthchás é seo.

Cuirimid deireadh leis na hiarmhairtí ar an mbealach céanna:

  • Faighimid táblaí bloated.
  • Agus déanaimid é a chomhbhrú leis an uirlis is áisiúla a oireann dúinn.

Críochnaíonn an dara scéal anseo. Bogaimis ar aghaidh go dtí an tríú scéal.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Freisin coitianta go leor dúinne ina ndéanaimid imirce.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

  • Tá aon táirge bogearraí ag fás. Tá na ceanglais maidir leis ag athrú. In aon chás, ba mhaith linn a fhorbairt. Agus tarlaíonn sé go gcaithfimid na sonraí sa tábla a nuashonrú, is é sin nuashonrú a reáchtáil maidir lenár n-imirce don fheidhmiúlacht nua atá á tabhairt isteach againn mar chuid dár bhforbairt.
  • Níl an seanfhormáid sonraí sásúil. Ligean le rá casaimid anois chuig an dara tábla, áit a bhfuil idirbhearta agam ar na cuntais seo. Agus déanaimis a rá go raibh siad i rúbal, agus shocraigh muid an cruinneas a mhéadú agus é a dhéanamh i kopecks. Agus le haghaidh seo ní mór dúinn nuashonrú a dhéanamh: iolrú ar an réimse leis an méid idirbhirt faoi céad.
  • I saol an lae inniu, úsáidimid uirlisí rialaithe leagan bunachar sonraí uathoibrithe. Ligean le rá Liquibase. Cláraímid ár n-imirce ansin. Déanaimid é a thástáil ar ár mbonn tástála. Tá gach rud breá. Tá an nuashonrú ag dul tríd. Cuireann sé bac ar obair ar feadh tamaill, ach faigheann muid sonraí nuashonraithe. Agus is féidir linn feidhmiúlacht nua a sheoladh ar seo. Rinneadh gach rud a thástáil agus a sheiceáil. Deimhníodh gach rud.
  • Rinneamar obair phleanáilte agus rinneamar imirce.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Seo é an t-aistriú leis an nuashonrú a chuirtear i láthair os do chomhair. Ós rud é gurb iad seo idirbhearta mo chuntais, ba é 15 GB an pláta. Agus ós rud é go ndéanaimid gach líne a nuashonrú, rinneamar méid an tábla a dhúbailt leis an nuashonrú, mar gheall ar athscríobh muid gach líne.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Le linn an ascnaimh, níorbh fhéidir linn aon rud a dhéanamh leis an bpláta seo, mar bhí gach iarratas air a bheith ciúáilte agus ag fanacht go dtí go raibh an nuashonrú seo críochnaithe. Ach anseo ba mhaith liom d’aird a tharraingt ar na huimhreacha atá ar an ais ingearach. Is é sin, tá meán-am iarratais againn roimh imirce de thart ar 5 milleasoicind agus an t-ualach próiseálaí, tá líon na n-oibríochtaí bloc le haghaidh cuimhne diosca léitheoireachta níos lú ná 7,5.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Rinneamar an imirce agus fuaireamar fadhbanna arís.

D’éirigh leis an imirce, ach:

  • Tógann sé níos faide anois an seanfheidhmiúlacht a chur i gcrích.
  • D'fhás an tábla i méid arís.
  • D'éirigh an t-ualach ar an bhfreastalaí níos airde arís ná mar a bhí roimhe.
  • Agus, ar ndóigh, táimid fós ag tinkering leis an fheidhmiúlacht a d'oibrigh go maith, tá feabhas beag déanta againn air.

Agus is bloat é seo arís, rud a scriosann ár saol arís.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Léirím anseo nach bhfuil an tábla, cosúil leis an dá chás roimhe seo, chun filleadh ar na méideanna a bhí ann roimhe seo. Is cosúil go bhfuil an meán-ualach freastalaí leordhóthanach.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Agus má théimid ar an tábla le cuntais, feicfidh muid go bhfuil an meán-am iarratais méadaithe don tábla seo. Léim an t-ualach ar an bpróiseálaí agus líon na línte a réitíodh sa chuimhne os cionn 7,5, ach bhí sé níos ísle. Agus léim sé 2 uair i gcás próiseálaithe, 1,5 uair i gcás oibríochtaí bloc, ie fuaireamar díghrádú ar fheidhmíocht an fhreastalaí. Agus mar thoradh air sin - díghrádú ar fheidhmíocht ár n-iarratas. Ag an am céanna, d'fhan líon na nglaonna thart ar an leibhéal céanna.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Agus is é an rud is mó anseo a thuiscint conas a leithéid de imirce a dhéanamh i gceart. Agus ní mór iad a dhéanamh. Déanaimid na haistrithe seo go comhsheasmhach go leor.

  • Ní tharlaíonn ascnaimh mhóra den sórt sin go huathoibríoch. Caithfidh siad a bheith faoi smacht i gcónaí.
  • Teastaíonn maoirseacht ó dhuine eolach. Má tá DBA agat ar d’fhoireann, lig don DBA é a dhéanamh. Is é a phost. Mura bhfuil, ansin lig don duine is mó taithí é a dhéanamh, a bhfuil aithne aige conas oibriú le bunachair shonraí.
  • Scéimre bunachar sonraí nua, fiú má nuashonraímid colún amháin, ullmhaímid i gcéimeanna i gcónaí, i.e. roimh ré sula gcuirtear an leagan nua den fheidhmchlár i bhfeidhm:
  • Cuirtear réimsí nua leis ina dtaifeadfaimid na sonraí nuashonraithe.
  • Aistrímid sonraí ón sean-réimse go dtí an réimse nua i gcodanna beaga. Cén fáth a bhfuil sé seo á dhéanamh againn? Ar an gcéad dul síos, déanaimid rialú i gcónaí ar phróiseas an phróisis seo. Tá a fhios againn go bhfuil an oiread sin baisceanna aistrithe againn cheana féin agus go bhfuil an oiread sin fágtha againn.
  • Agus is é an dara éifeacht dhearfach ná go ndúnann muid an t-idirbheart idir gach baisc den sórt sin, osclaíonn sé ceann nua, agus ligeann sé seo don autovacuum oibriú de réir an phláta, marcáil línte marbh le haghaidh athúsáide.
  • Maidir leis na línte a thaispeánfar agus an feidhmchlár ag rith (tá an seanfheidhmchlár fós á rith againn), cuirimid truicear a scríobhann luachanna nua chuig réimsí nua. Is é ár gcás, is é seo iolrú faoi céad den luach d'aois.
  • Más rud é go bhfuilimid go hiomlán stubborn agus go dteastaíonn an réimse céanna uainn, ansin tar éis dúinn gach aistriú a chríochnú agus roimh leagan nua den fheidhmchlár a rolladh amach, níl le déanamh againn ach na réimsí a athainmniú. Tugtar roinnt ainm invented ar na sean-cinn, agus athainmnítear na réimsí nua go dtí na sean-cinn.
  • Agus go díreach ina dhiaidh sin táimid ag seoladh leagan nua den fheidhmchlár.

Agus ag an am céanna ní bhfaighidh muid bloat agus ní bheidh muid ag fulaingt i dtéarmaí feidhmíochta.

Seo an áit a gcríochnaíonn an tríú scéal.

Earráidí tipiciúla in iarratais as a dtagann bloat in 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 anois beagán níos mó sonraí faoi na huirlisí a luaigh mé sa chéad scéal.

Sula ndéanann tú cuardach ar bloat, ní mór duit an síneadh a shuiteáil pgstattuple.

Ionas nach mbeidh ort teacht ar cheisteanna, tá na ceisteanna seo scríofa againn cheana féin inár gcuid oibre. Is féidir leat iad a úsáid. Tá dhá iarratas anseo.

  • Tógann an chéad cheann go leor ama a bheith ag obair, ach taispeánfaidh sé duit na luachanna bloat cruinne ón tábla.
  • Oibríonn an dara ceann níos tapúla agus tá sé an-éifeachtach nuair is gá duit a mheas go tapa an bhfuil bloat ann nó nach bhfuil de réir an tábla. Agus ba cheart duit a thuiscint freisin go bhfuil bloat i gcónaí i dtábla Postgres. Is gné é seo dá shamhail MVCC.
  • Agus tá bloat 20% gnáth le haghaidh táblaí i bhformhór na gcásanna. Is é sin, níor chóir duit a bheith buartha agus an tábla seo a chomhbhrú.

Rinneamar amach conas táblaí atá ata le sonraí gan úsáid a aithint.

Anois faoi conas bloat a dheisiú:

  • Má tá tablet beag agus dioscaí maith againn, is é sin, ar tháibléad suas le gigabyte, is féidir go leor VACUUM FULL a úsáid. Tógfaidh sé glas eisiach uait ar an mbord ar feadh cúpla soicind agus ceart go leor, ach déanfaidh sé gach rud go tapa agus go dian. Cad a dhéanann VACUUM FULL? Glacann sé glas eisiach ar an mbord agus athscríobhann sé sraitheanna beo ó na sean táblaí isteach sa tábla nua. Agus ag an deireadh cuireann sé in ionad iad. Scriosann sé seanchomhaid agus cuireann sé cinn nua in ionad na sean-cinn. Ach ar feadh ré a chuid oibre, glacann sé glas eisiach ar an tábla. Ciallaíonn sé seo nach féidir leat aon rud a dhéanamh leis an tábla seo: ná scríobh chuige, ná léamh isteach ann, ná mionathraigh é. Agus éilíonn VACUUM FULL spás diosca breise chun sonraí a scríobh.
  • An chéad uirlis eile pg_repack. Ina phrionsabal, tá sé an-chosúil le VACUUM FULL, toisc go n-athscríobhann sé freisin sonraí ó chomhaid d'aois go cinn nua agus cuirtear in ionad iad sa tábla. Ach ag an am céanna, ní ghlacann sé glas eisiach ar an tábla ag tús a chuid oibre, ach ní thógann sé ach amháin i láthair na huaire nuair a bhíonn sonraí réidh aige cheana féin chun na comhaid a athsholáthar. Tá a riachtanais acmhainní diosca cosúil leis na cinn atá ag VACUUM FULL. Teastaíonn spás diosca breise uait, agus bíonn sé seo ríthábhachtach uaireanta má tá táblaí terabyte agat. Agus tá an-phróiseálaí-ocras air mar oibríonn sé go gníomhach le I/O.
  • Is é an tríú fóntais pgcompacttable. Tá sé níos cúramaí le hacmhainní mar go n-oibríonn sé de réir prionsabail beagán difriúil. Is é an príomh-smaoineamh pgcompacttable ná go mbogann sé gach sraith beo go dtí tús an tábla ag baint úsáide as nuashonruithe sa tábla. Agus ansin ritheann sé i bhfolús ar an tábla seo, mar tá a fhios againn go bhfuil sraitheanna beo againn ag an tús agus sraitheanna marbh ag an deireadh. Agus gearrann an folús féin an t-eireaball seo amach, i.e. níl mórán spáis diosca breise ag teastáil uaidh. Agus ag an am céanna, is féidir brú a chur air go fóill ó thaobh acmhainní de.

Gach rud le huirlisí.

Earráidí tipiciúla in iarratais as a dtagann bloat in postgresql. Andrey Salnikov

Má mheasann tú go bhfuil an topaic bloat suimiúil ó thaobh sracfhéachaint níos faide taobh istigh, seo roinnt naisc úsáideacha:

Rinne mé iarracht níos mó chun scéal uafáis a thaispeáint d'fhorbróirí, toisc go bhfuil siad inár gcliaint dhíreach ar bhunachair shonraí agus ní mór dóibh tuiscint a fháil ar cad agus cad is cúis le gníomhartha. Tá súil agam gur éirigh liom. Go raibh maith agat as do aird!

ceisteanna

Go raibh maith agat as an tuairisc! Labhair tú faoi conas is féidir leat fadhbanna a aithint. Conas is féidir rabhadh a thabhairt dóibh? Is é sin le rá, bhí cás agam ina raibh iarratais ar crochadh ní hamháin toisc go raibh rochtain acu ar roinnt seirbhísí seachtracha. Ní raibh anseo ach roinnt ceangail fhiáine. Bhí roinnt iarratais beag bídeach neamhdhíobhálach ar crochadh thart ar feadh lae, agus ansin thosaigh siad ag déanamh roinnt nonsense. Is é sin, an-chosúil leis an méid a dhéanann tú cur síos. Conas é seo a rianú? Suigh agus bí ag faire i gcónaí cén iarratas atá greamaithe? Conas is féidir é seo a chosc?

Sa chás seo, is tasc é seo do riarthóirí do chuideachta, ní gá don DBA.

Is riarthóir mé.

Tá radharc ag PostgreSQL ar a dtugtar pg_stat_activity a thaispeánann fiosrúcháin faoi dhruidim. Agus is féidir leat a fheiceáil cé chomh fada agus atá sé ar crochadh ann.

An gcaithfidh mé teacht isteach agus breathnú gach 5 nóiméad?

Socraigh cron agus seiceáil. Má tá iarratas fadtéarmach agat, scríobh litir agus sin é. Is é sin, ní gá duit breathnú le do shúile, is féidir é a uathoibriú. Gheobhaidh tú litir, imoibríonn tú leis. Nó is féidir leat shoot go huathoibríoch.

An bhfuil aon chúiseanna soiléire ann go dtarlaíonn sé seo?

Tá roinnt liostaithe agam. Samplaí eile níos casta. Agus is féidir comhrá a bheith ann ar feadh i bhfad.

Go raibh maith agat as an tuairisc! Bhí mé ag iarraidh soiléiriú a fháil faoin áirgiúlacht pg_repack. Mura ndéanann sí glas eisiach, ansin ...

Déanann sí glas eisiach.

... ansin d'fhéadfainn sonraí a chailleadh. Nár cheart go mbeadh m'iarratas ag taifeadadh aon rud le linn an ama seo?

Ní hea, oibríonn sé go réidh leis an tábla, i.e. aistríonn pg_repack na línte beo go léir atá ann ar dtús. Ar ndóigh, tarlaíonn iontráil de shaghas éigin sa tábla ansin. Tá sé ag caitheamh an ponytail seo amach.

Is é sin, a dhéanann sé i ndáiríre é sa deireadh?

Sa deireadh, glacann sé glas eisiach chun na comhaid seo a mhalartú.

An mbeidh sé níos tapúla ná VACUUM FULL?

VACUUM IOMLÁN, chomh luath agus a thosaigh sé, láithreach ghlac glas eisiach. Agus go dtí go ndéanfaidh sé gach rud, ní ligfidh sé di dul. Agus ní thógann pg_repack glas eisiach ach amháin nuair a athshocraítear comhad. Ag an nóiméad seo ní scríobhfaidh tú ann, ach ní chaillfear na sonraí, beidh gach rud go breá.

Dia dhuit! Labhair tú faoi oibriú folús gluaisteán. Bhí graf le cealla taifeadta dearga, buí agus glasa. Is é sin, cinn buí - mharcáil sé iad mar scriosta. Agus mar thoradh air sin, is féidir rud éigin nua a scríobh isteach iontu?

Tá. Ní scriosann Postgres línte. Tá a leithéid de shainiúlacht aige. Má rinneamar líne a nuashonrú, mharcáil muid an seancheann mar a scriosadh. Is cosúil go bhfuil aitheantas an idirbhirt a d'athraigh an líne seo ann, agus scríobhaimid líne nua. Agus tá seisiúin againn a d'fhéadfadh iad a léamh. Ag am éigin éiríonn siad sách sean. Agus is é croílár an chaoi a n-oibríonn an t-uathfholús ná go dtéann sé trí na línte seo agus go marcálann sé nach bhfuil gá leo. Agus is féidir leat sonraí a fhorscríobh ann.

Tuigim. Ach ní mar sin atá an cheist. Níor chríochnaigh mé. Glacaimis leis go bhfuil tábla againn. Tá réimsí de mhéid athraitheach aige. Agus má dhéanaim iarracht rud éigin nua a chur isteach, b'fhéidir nach luífidh sé isteach sa tseanchill.

Ní hea, ar aon nós déantar an líne iomlán a nuashonrú ansin. Tá dhá mhúnla stórála sonraí ag Postgres. Roghnaíonn sé as an gcineál sonraí. Tá sonraí a stóráiltear go díreach sa tábla, agus tá sonraí tos ann freisin. Is méideanna móra sonraí iad seo: téacs, json. Déantar iad a stóráil i plátaí ar leith. Agus de réir na dtáibléad seo, tarlaíonn an scéal céanna le bloat, i.e. tá gach rud mar an gcéanna. Tá siad díreach liostaithe ar leithligh.

Go raibh maith agat as an tuairisc! An bhfuil sé inghlactha fiosrúcháin am istigh ráitis a úsáid chun teorainn a chur le fad ama?

An-inghlactha. Bainimid úsáid as seo i ngach áit. Agus ós rud é nach bhfuil ár seirbhísí féin againn, soláthraímid tacaíocht iargúlta, tá go leor cliant éagsúil againn. Agus tá gach duine sásta go hiomlán leis seo. Is é sin, tá poist cron againn a sheiceálann. Tá ré na seisiún aontaithe go simplí leis an gcliant, agus ní aontaímid roimhe seo. D'fhéadfadh sé a bheith ina nóiméad, d'fhéadfadh sé a bheith 10 nóiméad. Braitheann sé ar an ualach ar an mbonn agus a chuspóir. Ach úsáidimid go léir pg_stat_activity.

Go raibh maith agat as an tuairisc! Tá mé ag iarraidh do thuarascáil a chur i bhfeidhm ar m’iarratais. Agus is cosúil gur mhaith linn tús a chur le hidirbheart i ngach áit, agus go soiléir é a chomhlánú i ngach áit. Má tá eisceacht éigin ann, tarlaíonn rolladh siar fós. Agus ansin thosaigh mé ag smaoineamh. Tar éis an tsaoil, ní fhéadfaidh an t-idirbheart tosú go sainráite. Is dócha gur leid é seo don chailín. Mura ndéanaim ach taifead a nuashonrú, an dtosóidh an t-idirbheart in PostgreSQL agus nach gcríochnófar é ach nuair a bheidh an nasc dícheangailte?

Má tá tú ag caint anois faoi leibhéal an iarratais, braitheann sé ar an tiománaí atá in úsáid agat, ar an ORM atá á úsáid. Tá go leor socruithe ann. Má tá tiomnú uathoibríoch cumasaithe agat, tosaíonn idirbheart ansin agus dúnann sé láithreach.

Is é sin, dúnann sé díreach tar éis an nuashonrú?

Braitheann sé ar na socruithe. D'ainmnigh mé suíomh amháin. Is gealltanas uathoibríoch é seo. Tá sé coitianta go leor. Má tá sé cumasaithe, ansin tá an t-idirbheart oscail agus dúnta. Mura ndúirt tú go sainráite “tosaigh idirbheart” agus “deireadh an t-idirbheart”, ach sheol tú iarratas isteach sa seisiún.

Dia dhuit! Go raibh maith agat as an tuairisc! Samhlóimid go bhfuil bunachar sonraí againn atá ag at agus ag at agus ansin ritheann an spás ar an bhfreastalaí amach. An bhfuil aon uirlisí ann chun an cás seo a réiteach?

Ní mór monatóireacht cheart a dhéanamh ar an spás ar an bhfreastalaí.

Mar shampla, chuaigh an DBA le haghaidh tae, bhí sé ag ionad saoire, etc.

Nuair a chruthaítear córas comhaid, cruthaítear spás cúltaca de shaghas éigin ar a laghad nuair nach bhfuil sonraí scríofa.

Cad a tharlaíonn má tá sé go hiomlán faoi bhun náid?

Tugtar spás in áirithe air ansin, i.e. is féidir é a shaoradh agus ag brath ar cé chomh mór agus a cruthaíodh é, gheobhaidh tú spás saor in aisce. De réir réamhshocraithe níl a fhios agam cé mhéad atá ann. Agus i gcás eile, dioscaí a sheachadadh ionas go mbeidh spás agat chun oibríocht atógálach a dhéanamh. Is féidir leat roinnt tábla a scriosadh a ráthaítear nach mbeidh gá agat leis.

An bhfuil aon uirlisí eile ann?

Tá sé lámhdhéanta i gcónaí. Agus bíonn sé soiléir go háitiúil cad is fearr a dhéanamh ansin, toisc go bhfuil roinnt sonraí ríthábhachtach agus tá cuid acu neamhchriticiúil. Agus do gach bunachar sonraí agus an t-iarratas a oibríonn leis, braitheann sé ar an ngnó. Déantar cinneadh áitiúil i gcónaí.

Go raibh maith agat as an tuairisc! Tá dhá cheist agam. Ar dtús, léirigh tú sleamhnáin a léirigh nuair a bhíonn idirbhearta i bhfostú, go bhfásann méid an spáis boird agus an méid innéacs araon. Agus a thuilleadh ar an tuarascáil bhí a bunch de fóntais a pacáiste an tablet. Cad mar gheall ar an innéacs?

Pacálann siad iad freisin.

Ach nach bhfuil tionchar ag an bhfolús ar an innéacs?

Oibríonn cuid acu le hinnéacs. Mar shampla, pg_rapack, pgcompacttable. Athchruthaíonn an folús na hinnéacsanna agus cuireann sé isteach orthu. Le FOLAMH IOMLÁN is é an smaoineamh gach rud a fhorscríobh, i.e. oibríonn sé le gach duine.

Agus an dara ceist. Ní thuigim cén fáth go bhfuil tuarascálacha ar mhacasamhla ag brath chomh mór ar an macasamhlú féin. Chonacthas dom go léitear tuairiscí, agus go scríobhtar macasamhlú.

Cad is cúis le coinbhleacht macasamhlaithe? Tá Máistir againn ar a dtarlaíonn próisis. Tá folús gluaisteán againn ar siúl. Cad a dhéanann uathfholús i ndáiríre? Tá sé ag gearradh amach roinnt seanlínte. Más rud é ag an am seo go bhfuil iarratas againn ar an macasamhail a léann na seanlínte seo, agus ar an Máistir gur tharla cás go ndearna an t-uathfholús na línte seo a mharcáil agus ab fhéidir a fhorscríobh, ansin rinneamar iad a fhorscríobh. Agus fuaireamar paicéad sonraí, nuair is gá dúinn na línte sin a theastaíonn ón iarratas a athscríobh ar an macasamhail, fanfaidh an próiseas macasamhlaithe leis an teorainn ama a chumraigh tú. Agus ansin cinnfidh PostgreSQL cad atá níos tábhachtaí dó. Agus tá macasamhlú níos tábhachtaí dó ná an t-iarratas, agus déanfaidh sé an t-iarratas a lámhach chun na hathruithe seo a dhéanamh ar an macasamhail.

Andrey, tá ceist agam. Na graif iontacha seo a thaispeáin tú le linn an chur i láthair, an toradh iad seo ar obair de chineál éigin d’fhóntas atá agatsa? Conas a rinneadh na graif?

Is seirbhís é seo Okmeter.

An táirge tráchtála é seo?

Tá. Is táirge tráchtála é seo.

Foinse: will.com

Add a comment