Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Ina ba da shawarar ku karanta kwafin rahoton daga farkon 2016 na Andrey Salnikov "Kurakurai na yau da kullun a aikace-aikacen da ke haifar da kumburi a postgresql"

A cikin wannan rahoto, zan bincika manyan kurakurai a aikace-aikacen da suka taso a matakin ƙira da rubuta lambar aikace-aikacen. Kuma zan ɗauki kawai kurakuran da ke haifar da kumburi a Postgresql. A matsayinka na mai mulki, wannan shine farkon ƙarshen aikin tsarin ku gaba ɗaya, kodayake da farko babu wasu abubuwan da ake buƙata don wannan.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Ina farin cikin maraba da kowa! Wannan rahoto bai kai na fasaha kamar na baya daga abokin aikina ba. Wannan rahoton an yi niyya ne ga masu haɓaka tsarin baya saboda muna da adadi mai yawa na abokan ciniki. Kuma dukkansu suna yin kuskure iri ɗaya. Zan gaya muku game da su. Zan bayyana abin da m da kuma mummunan abubuwa wadannan kurakurai haifar da.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Me yasa ake yin kuskure? Ana yin su ne saboda dalilai guda biyu: a bazuwar, watakila zai yi aiki kuma saboda rashin sanin wasu hanyoyin da ke faruwa a matakin tsakanin rumbun adana bayanai da aikace-aikacen, da kuma a cikin rumbun adana bayanai.

Zan ba ku misalai guda uku tare da hotuna masu ban tsoro na yadda abubuwa suka faru. Zan gaya muku a takaice game da tsarin da ke faruwa a can. Da kuma yadda za a magance su, lokacin da suka faru, da kuma irin hanyoyin rigakafin da za a yi amfani da su don hana kuskure. Zan gaya muku game da kayan aikin taimako da kuma samar da hanyoyin haɗi masu amfani.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Na yi amfani da bayanan gwaji inda nake da tebura biyu. Ɗayan faranti tare da asusun abokin ciniki, ɗayan tare da ma'amaloli akan waɗannan asusun. Kuma tare da wasu mitoci muna sabunta ma'auni akan waɗannan asusun.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Bayanan farko na farantin: yana da ƙananan ƙananan, 2 MB. Lokacin amsawa don bayanan bayanai kuma musamman ga alamar shima yana da kyau sosai. Kuma da gaske mai kyau kaya - 2 ayyuka da biyu bisa ga farantin.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Kuma ta wannan rahoto zan nuna muku jadawali domin ku fahimci abin da ke faruwa a fili. A koyaushe za a sami nunin faifai 2 tare da zane-zane. Zamewar farko shine abin da ke faruwa gabaɗaya akan sabar.

Kuma a cikin wannan yanayin, muna ganin cewa muna da ƙaramin alamar gaske. Fihirisar tana ƙarami a 2 MB. Wannan shine jadawali na farko akan hagu.

Matsakaicin lokacin amsawa akan uwar garken shima barga ne kuma gajere. Wannan shine jadawali na saman dama.

Hoton hagu na ƙasa yana nuna mafi tsayin ma'amaloli. Mun ga cewa an kammala ma'amaloli da sauri. Kuma autovacuum bai yi aiki a nan ba tukuna, saboda gwajin farawa ne. Zai ci gaba da aiki kuma zai kasance da amfani a gare mu.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Zalika na biyu koyaushe zai kasance yana sadaukar da farantin da ake gwadawa. A wannan yanayin, koyaushe muna sabunta ma'auni na asusun abokin ciniki. Kuma mun ga cewa matsakaicin lokacin amsawa don aikin sabuntawa yana da kyau sosai, ƙasa da millisecond. Mun ga cewa kayan aikin sarrafawa (wannan shine babban jadawali na dama) suma ana cinye su daidai da ƙanana.

Hoton da ke ƙasan dama yana nuna adadin ƙwaƙwalwar aiki da faifai da muke bi don neman layin da muke so kafin sabunta shi. Kuma adadin ayyukan bisa ga alamar shine 2 a cikin dakika guda, kamar yadda na fada a farkon.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Kuma yanzu muna da bala'i. Don wasu dalilai akwai ciniki da aka manta da shi. Dalilan yawanci duk banal ne:

  • Ɗayan da aka fi sani shine mun fara shiga sabis na waje a cikin lambar aikace-aikacen. Kuma wannan sabis ɗin ba ya amsa mana. Wato mun buɗe ma'amala, mun canza ma'ajin bayanai kuma muka tafi daga aikace-aikacen don karanta wasiku ko zuwa wani sabis a cikin kayan aikin mu, kuma saboda wasu dalilai ba ya amsa mana. Kuma zaman mu ya makale a wani hali da ba a san lokacin da za a warware shi ba.
  • Hali na biyu shine lokacin da keɓancewa ya faru a cikin lambar mu saboda wasu dalilai. Kuma ban da ba mu aiwatar da rufe kasuwancin ba. Kuma mun ƙare tare da zaman rataye tare da ciniki a buɗe.
  • Kuma na ƙarshe shima shari'a ce ta gama gari. Wannan ƙaramin inganci code ne. Wasu ginshiƙai suna buɗe ma'amala. Yana rataye, kuma ƙila ba za ku sani ba a cikin aikace-aikacen cewa kuna rataye shi.

Ina irin waɗannan abubuwa suke kaiwa?

Har zuwa lokacin da teburan mu da fihirisa suka fara kumbura sosai. Wannan shine daidai tasirin kumburin ciki. Ga ma'ajin bayanai, wannan yana nufin cewa lokacin amsa bayanai zai karu sosai kuma nauyin da ke kan uwar garken bayanan zai karu. Kuma a sakamakon haka, aikace-aikacen mu zai sha wahala. Domin idan kun kashe mil 10 a cikin lambar ku akan buƙatun zuwa bayanan bayanai, millise seconds 10 akan hikimar ku, to aikinku ya ɗauki millisecond 20 don kammalawa. Kuma yanzu yanayin ku zai yi baƙin ciki sosai.

Kuma bari mu ga abin da ya faru. Hoton hagu na ƙasa yana nuna cewa muna da doguwar ciniki. Kuma idan muka kalli jadawali na hagu na sama, za mu ga cewa girman tebur ɗinmu ya tashi kwatsam daga megabytes biyu zuwa megabyte 300. A lokaci guda, adadin bayanan da ke cikin tebur bai canza ba, watau akwai datti mai yawa a can.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Halin gaba ɗaya game da matsakaicin lokacin amsa uwar garken ya kuma canza ta umarni da yawa na girma. Wato, duk buƙatun da ke kan uwar garke sun fara raguwa gaba ɗaya. Kuma a lokaci guda, an ƙaddamar da matakai na ciki na Postgres a cikin nau'i na autovacuum, wanda ke ƙoƙarin yin wani abu da cinye albarkatu.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Me ke faruwa da alamar mu? Duk daya. Matsakaicin lokacin amsawar mu bisa ga alamar ya yi tsalle da yawa na girma. Musamman dangane da albarkatun da ake cinyewa, muna ganin cewa nauyin da ke kan na'urar ya karu sosai. Wannan shine jadawali na saman dama. Kuma ya karu saboda dole ne mai sarrafa na'ura ya ware ta hanyar layukan da ba su da amfani don neman wanda ake bukata. Wannan shine jadawali na dama na kasa. Kuma a sakamakon haka, adadin kiran mu a kowane daƙiƙa ya fara raguwa sosai, saboda ma'aunin bayanai ba su da lokacin aiwatar da adadin buƙatun.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Muna bukatar mu dawo rayuwa. Muna shiga yanar gizo kuma mu gano cewa doguwar ciniki tana haifar da matsaloli. Mun sami kuma kashe wannan ciniki. Kuma komai yana zama al'ada a gare mu. Komai yana aiki kamar yadda ya kamata.

Mun kwantar da hankali, amma bayan wani lokaci mun fara lura cewa aikace-aikacen ba ya aiki kamar yadda aka yi kafin gaggawa. Har yanzu ana aiwatar da buƙatun a hankali, kuma a hankali. Daya da rabi zuwa sau biyu a hankali a hankali musamman a misali na. Har ila yau nauyin da ke kan uwar garken ya fi yadda yake a gabanin hatsarin.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Kuma tambaya: "Me ke faruwa da tushe a wannan lokacin?" Kuma yanayin da ke gaba yana faruwa tare da tushe. A kan ginshiƙi na ma'amala za ku iya ganin cewa ya tsaya kuma babu ainihin ma'amala na dogon lokaci. Amma girman alamar ya karu sosai a lokacin hatsarin. Kuma tun daga lokacin ba su ragu ba. Matsakaicin lokaci akan tushe ya daidaita. Kuma da alama amsoshi suna zuwa daidai da saurin karbuwa gare mu. Autovacuum ya zama mafi aiki kuma ya fara yin wani abu tare da alamar, saboda yana buƙatar tazarar ƙarin bayanai.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Musamman, bisa ga farantin gwajin tare da asusu, inda muke canza ma'auni: lokacin amsawa don buƙatar da alama ya koma al'ada. Amma a gaskiya ya ninka sau ɗaya da rabi.

Kuma daga nauyin da ke kan na'urar, muna ganin cewa nauyin da ke kan na'urar bai dawo zuwa darajar da ake bukata ba kafin hadarin. Kuma dalilan can suna kwance daidai a cikin jadawali na dama. Ana iya ganin cewa ana bincika takamaiman adadin ƙwaƙwalwar ajiya a can. Wato, don nemo layin da ake buƙata, muna ɓarna albarkatu na uwar garken bayanai yayin da muke rarraba bayanai marasa amfani. Adadin ma'amaloli a cikin daƙiƙa ya daidaita.

Gabaɗaya yana da kyau, amma yanayin ya fi muni. Share bayanan da aka lalata sakamakon aikace-aikacen mu da ke aiki tare da wannan bayanan.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Kuma don fahimtar abin da ke faruwa a can, idan ba ku kasance a rahoton da ya gabata ba, yanzu bari mu sami ɗan ƙaramin ka'idar. Ka'idar game da tsari na ciki. Me yasa injin motar kuma menene yake yi?

A zahiri a takaice don fahimta. A wani lokaci a lokaci muna da tebur. Muna da layuka a cikin tebur. Waɗannan layukan na iya zama masu aiki, masu rai, da abin da muke buƙata yanzu. An yi musu alama a kore a cikin hoton. Kuma akwai matattun layukan da aka riga aka yi aiki da su, an sabunta su, kuma sabbin shigarwar sun bayyana a kansu. Kuma an yi musu alama cewa ba su da sha'awar bayanai. Amma suna cikin tebur saboda fasalin Postgres.

Me yasa kuke buƙatar injin mota? A wani lokaci, autovacuum ya zo, ya shiga rumbun adana bayanan kuma ya tambaye ta: "Don Allah a ba ni id na tsohuwar ma'amala da ke buɗewa a yanzu." Database ya dawo da wannan id. Kuma autovacuum, yana dogara da shi, yana rarraba ta cikin layin da ke cikin tebur. Kuma idan ya ga cewa an canza wasu layukan ta hanyar tsofaffin ma'amaloli, to yana da hakkin ya sanya su a matsayin layukan da za mu iya sake amfani da su a nan gaba ta hanyar rubuta sabbin bayanai a can. Wannan tsari ne na baya.

A wannan lokacin, muna ci gaba da aiki tare da bayanan bayanai kuma muna ci gaba da yin wasu canje-canje a teburin. Kuma akan waɗannan layin, waɗanda za mu iya sake amfani da su, muna rubuta sabbin bayanai. Kuma ta haka ne muke samun sake zagayowar, watau duk lokacin da wasu tsoffin layukan da suka mutu suka bayyana a wurin, maimakon su sai mu rubuta sabbin layukan da muke bukata. Kuma wannan yanayin al'ada ne don PostgreSQL yayi aiki.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Me ya faru a lokacin hatsarin? Ta yaya wannan tsari ya faru a can?

Muna da alama a wani yanayi, wasu na raye, wasu matattun layukan. Wurin motar ya iso. Ya tambayi ma'ajiyar bayanai menene mafi dadewar cinikinmu kuma menene id. Na karbi wannan id, wanda zai iya zama sa'o'i da yawa da suka wuce, watakila minti goma da suka wuce. Ya danganta da nauyin nauyin da kuke da shi akan bayananku. Kuma ya tafi neman layukan da zai iya yiwa alama kamar yadda aka sake amfani da su. Kuma ban sami irin waɗannan layuka a cikin teburinmu ba.

Amma a wannan lokacin muna ci gaba da aiki tare da tebur. Muna yin wani abu a ciki, sabunta shi, canza bayanai. Menene ya kamata rumbun adana bayanai ya yi a wannan lokacin? Ba ta da wani zaɓi face ta ƙara sabbin layi zuwa ƙarshen tebur ɗin da ke akwai. Sabili da haka girman teburin mu ya fara kumbura.

A gaskiya, muna buƙatar layin kore don aiki. Amma a lokacin irin wannan matsala, yana nuna cewa yawan layukan kore sun yi ƙasa sosai a cikin duka tebur ɗin.

Kuma idan muka aiwatar da tambaya, dole ne ma'ajin bayanai su bi dukkan layukan: ja da kore, don nemo layin da ake so. Kuma sakamakon kumburin tebur tare da bayanan mara amfani ana kiransa "buguwa", wanda kuma yana cinye sararin faifan mu. Ka tuna, 2 MB ne, ya zama 300 MB? Yanzu canza megabytes zuwa gigabytes kuma zaku yi asarar duk albarkatun diski ɗinku da sauri.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Wane sakamako ne zai iya haifar mana?

  • A cikin misali na, tebur da fihirisa sun girma sau 150. Wasu abokan cinikinmu sun sami ƙarin lokuta masu mutuwa lokacin da kawai suka fara ƙarewa daga sararin diski.
  • Girman tebur ɗin kanta ba zai taɓa raguwa ba. Autovacuum a wasu lokuta na iya yanke wutsiyar tebur idan akwai matattun layukan. Amma da yake ana jujjuyawa akai-akai, koren layi ɗaya na iya daskare a ƙarshe kuma ba za a sabunta shi ba, yayin da duk sauran za a rubuta su a wani wuri a farkon farantin. Amma wannan lamari ne da ba za a iya yiwuwa ba cewa teburin ku da kansa zai ragu cikin girman, don haka kada ku yi fata.
  • Ma'ajin bayanai yana buƙatar warware ta cikin gungun layukan da ba su da amfani. Kuma muna barnatar da albarkatun faifai, muna barnatar da kayan sarrafawa da wutar lantarki.
  • Kuma wannan ya shafi aikace-aikacen mu kai tsaye, domin idan a farkon lokacin da muka kashe mil 10 na dakika 10 akan buƙatar, mil 10 akan code ɗinmu, to a lokacin hadarin mun fara kashe daƙiƙa ɗaya akan buƙatar da mil 20 akan code, watau order na girman aikin aikace-aikacen ya ragu. Kuma a lokacin da aka warware hadarin, mun fara kashe 10 millisecond a kan bukatar, XNUMX millise seconds a kan wani code. Wannan yana nufin cewa har yanzu mun faɗi sau ɗaya da rabi a cikin yawan aiki. Kuma wannan duk saboda wata ciniki ce da ta daskare, watakila ta laifinmu.
  • Kuma tambayar: "Ta yaya za mu iya dawo da komai?" Don haka duk abin da ke da kyau tare da mu kuma buƙatun sun shigo da sauri kamar kafin hadarin.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Don wannan dalili akwai wani tsarin aikin da aka yi.

Da farko muna buƙatar nemo tebur masu matsala waɗanda ke kumbura. Mun fahimci cewa a cikin wasu teburi rikodin ya fi aiki, a wasu kuma ƙarancin aiki. Kuma don wannan muna amfani da tsawo pgstattuple. Ta hanyar shigar da wannan tsawo, za ku iya rubuta tambayoyin da za su taimake ku nemo allunan da ke kumbura sosai.

Da zarar kun sami waɗannan tebur, kuna buƙatar damfara su. Tuni akwai kayan aikin wannan. A cikin kamfaninmu muna amfani da kayan aiki guda uku. Na farko shine ginannen VACUUM FULL. Shi mai zalunci ne, mai kaushi da rashin tausayi, amma wani lokacin yana da amfani sosai. Pg_repack и pgcompacttable - Waɗannan abubuwan amfani ne na ɓangare na uku don matsawa tebur. Kuma suna kula da rumbun adana bayanai a hankali.

Ana amfani da su dangane da abin da ya fi dacewa da ku. Amma a ƙarshe zan ba ku labarin wannan. Babban abu shine cewa akwai kayan aiki guda uku. Akwai yalwa da za a zaɓa daga.

Bayan mun gyara komai kuma mun tabbatar da cewa komai yana da kyau, dole ne mu san yadda za mu hana wannan lamarin nan gaba:

  • Ana iya hana shi cikin sauƙi. Kuna buƙatar saka idanu tsawon lokutan zama akan uwar garken Jagora. Musamman ma zama masu haɗari a cikin zaman banza a cikin yanayin ciniki. Waɗannan su ne waɗanda kawai suka buɗe ciniki, suka yi wani abu kuma suka bar, ko kawai sun rataye, sun ɓace a cikin lambar.
  • Kuma a gare ku, a matsayin masu haɓakawa, yana da mahimmanci don gwada lambar ku lokacin da waɗannan yanayi suka taso. Ba shi da wuya a yi. Wannan zai zama abin dubawa mai amfani. Za ku guje wa babban adadin matsalolin "yara" da ke hade da dogon ma'amaloli.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

A cikin waɗannan jadawali, Ina so in nuna muku yadda alamar da halayen bayanan suka canza bayan na shiga ta alamar tare da VACUUM FULL a wannan yanayin. Wannan ba samarwa ba ne a gare ni.

Girman tebur nan da nan ya koma yanayin aikinsa na megabyte biyu. Wannan bai yi tasiri sosai kan matsakaicin lokacin amsa uwar garken ba.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Amma musamman don alamar gwajin mu, inda muka sabunta ma'auni na asusu, mun ga cewa matsakaicin lokacin amsa buƙatar sabunta bayanai a cikin alamar an rage zuwa matakan gaggawa. Abubuwan da na'urar ke amfani da su don kammala wannan buƙatar su ma sun ragu zuwa matakan da aka riga aka yi haɗari. Kuma jadawali na dama na ƙasa yana nuna cewa a yanzu mun sami daidai layin da muke buƙata nan da nan, ba tare da bin tulin matattun layukan da ke can kafin a matsa teburin ba. Kuma matsakaicin lokacin buƙatun ya kasance a kusan matakin ɗaya. Amma a nan ina da, maimakon haka, kuskure a cikin kayan aikina.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Nan ne labarin farko ya kare. Shi ne ya fi kowa. Kuma yana faruwa ga kowa da kowa, ba tare da la'akari da kwarewar abokin ciniki da kuma yadda masu shirye-shiryen suka cancanta ba. Ba dade ko ba jima hakan ya faru.

Labari na biyu, wanda muke rarraba kaya da haɓaka albarkatun uwar garke

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

  • Mun riga mun girma kuma mun zama manyan mutane. Kuma mun fahimci cewa muna da kwafi kuma zai yi kyau a gare mu mu daidaita nauyin: rubuta zuwa ga Jagora, mu karanta daga kwafin. Kuma yawanci wannan yanayin yana tasowa lokacin da muke son shirya wasu rahotanni ko ETL. Kuma kasuwanci ya yi matukar farin ciki da wannan. Yana da gaske yana son rahotanni iri-iri tare da nazari mai yawa.
  • Rahotanni suna ɗaukar sa'o'i da yawa, saboda ba za a iya ƙididdige ƙididdiga masu rikitarwa a cikin millise seconds ba. Mu, kamar jarumawa, muna rubuta lamba. A cikin aikace-aikacen shigarwa muna yin rikodin akan Jagora, kuma muna aiwatar da rahotanni akan kwafi.
  • Rarraba kaya.
  • Komai yana aiki daidai. Muna da kyau.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Kuma menene wannan yanayin? Musamman akan waɗannan jadawali, Na kuma ƙara tsawon lokacin ma'amaloli daga kwafi na tsawon lokacin ciniki. Duk sauran jadawali suna nufin uwar garken Jagora kawai.

A wannan lokacin, kwamitin rahoton na ya girma. Akwai ƙari daga cikinsu. Mun ga cewa matsakaicin lokacin amsa uwar garken ya tsaya tsayin daka. Mun ga cewa a kan kwafin muna da ma'amala mai tsawo wanda ke gudana har tsawon sa'o'i 2. Muna ganin aiki mai natsuwa na autovacuum, wanda ke aiwatar da matattun layukan. Kuma komai yana tare da mu.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Musamman, bisa ga farantin da aka gwada, muna ci gaba da sabunta ma'auni a wurin. Kuma muna da tabbataccen lokacin amsa buƙatun, ingantaccen amfani da albarkatu. Komai yayi mana kyau.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Komai yana da kyau har zuwa lokacin da waɗannan rahotanni suka fara dawowa saboda rikici tare da maimaitawa. Kuma sukan mayar da wuta a lokaci-lokaci.

Muna shiga kan layi mu fara karanta dalilin da yasa hakan ke faruwa. Kuma mun sami mafita.

Magani na farko shine ƙara yawan latti. Mun san cewa rahoton namu yana ɗaukar awanni 3. Mun saita jinkirin maimaitawa zuwa awanni 3. Muna ƙaddamar da komai, amma har yanzu muna ci gaba da samun matsaloli tare da rahotanni wani lokaci ana sokewa.

Muna son komai ya zama cikakke. Muna hawa kara. Kuma mun sami wuri mai kyau akan Intanet - hot_standby_feedback. Mu kunna shi. Hot_standby_feedback yana ba mu damar riƙe autovacuum a kan Jagora. Don haka, muna kawar da rikice-rikicen kwafi gaba ɗaya. Kuma komai yayi mana kyau tare da rahotanni.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Kuma me ke faruwa da uwar garken Master a wannan lokaci? Kuma muna cikin matsala gaba ɗaya tare da uwar garken Master. Yanzu muna ganin jadawali lokacin da na kunna waɗannan saitunan biyu. Kuma mun ga cewa zaman a kan kwafin mu ko ta yaya ya fara rinjayar halin da ake ciki a kan uwar garken Jagora. Ta yi tasiri saboda ta dakatar da autovacuum, wanda ke share layin da suka mutu. Girman teburin mu ya sake yin sama sama. Matsakaicin lokacin aiwatar da tambayar a duk faɗin ma'ajin bayanai shima ya yi tashin gwauron zabi. Motoci suka kara matsawa kadan.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Musamman, daga farantin mu, mun ga cewa sabunta bayanan da ke kan shi ma ya yi tsalle zuwa sararin sama. Hakanan amfani da CPU ya karu sosai. Muna sake shiga manyan layukan matattu, marasa amfani. Kuma lokacin amsawa ga wannan alamar da adadin ma'amaloli sun ragu.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Yaya zai kasance idan ba mu san abin da nake magana a baya ba?

  • Mun fara neman matsaloli. Idan muka fuskanci matsaloli a kashi na farko, mun san cewa hakan na iya faruwa saboda doguwar ciniki kuma mu je wurin Jagora. Muna da matsala a kan Jagora. Sausages shi. Yana zafi, Matsakaicin Load ɗin sa kusan ɗari ne.
  • Buƙatun akwai jinkirin, amma ba mu ga wani dogon lokaci ma'amala a can. Kuma ba mu fahimci abin da ke faruwa ba. Ba mu fahimci inda za mu duba ba.
  • Muna duba kayan aikin uwar garken. Wataƙila harin namu ya fado. Wataƙila sandar ƙwaƙwalwarmu ta kone. Ee, komai na iya faruwa. Amma a'a, sabobin sabobin ne, komai yana aiki lafiya.
  • Kowa yana gudana: masu gudanarwa, masu haɓakawa da darakta. Babu wani abu da ya taimaka.
  • Kuma a wani lokaci komai ya fara gyara kansa ba zato ba tsammani.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

A wannan lokacin, an aiwatar da buƙatar kan kwafin mu kuma an bar shi. Mun samu rahoton. Har yanzu kasuwanci yana farin ciki. Kamar yadda kake gani, alamarmu ta sake girma kuma ba za ta ragu ba. A kan jadawali tare da zama, na bar wani yanki na wannan doguwar ma'amala daga kwafi don ku iya kimanta tsawon lokacin da zai ɗauka har sai yanayin ya daidaita.

An gama zaman. Kuma sai bayan wani lokaci uwar garken yana zuwa fiye ko žasa cikin tsari. Kuma matsakaicin lokacin amsa buƙatun akan uwar garken Jagora yana komawa al'ada. Domin, a ƙarshe, autovacuum yana da damar don tsaftacewa da alama waɗannan matattun layukan. Kuma ya fara yin aikinsa. Kuma da sauri ya yi shi, don haka da sauri za mu yi tsari.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Dangane da kwamfutar hannu da aka gwada, inda muke sabunta ma'auni na asusu, muna ganin ainihin hoto iri ɗaya. Matsakaicin lokacin sabunta asusun kuma a hankali yana daidaitawa. Hakanan an rage albarkatun da na'ura mai sarrafa ke cinyewa. Kuma adadin ma'amaloli a cikin dakika daya yana komawa daidai. Amma kuma mun dawo daidai, ba kamar yadda muka kasance a baya ba.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

A kowane hali, muna samun raguwar wasan kwaikwayon, kamar yadda a cikin yanayin farko, ta ɗaya da rabi zuwa sau biyu, kuma wani lokacin ƙari.

Da alama mun yi komai daidai. Raba kaya. Kayan aiki ba su da aiki. Mun raba buƙatun bisa ga tunaninmu, amma duk da haka komai ya zama mara kyau.

  • Kada a kunna hot_standby_feedback? Ee, ba a ba da shawarar kunna shi ba tare da wasu dalilai masu ƙarfi ba. Domin wannan jujjuyawar tana shafar uwar garken kai tsaye kuma ta dakatar da aikin autovacuum a wurin. Ta hanyar kunna shi akan wasu kwafi da mantawa da shi, zaku iya kashe Jagora kuma ku sami manyan matsaloli tare da aikace-aikacen.
  • Ƙara max_standby_streaming_delay? Ee, ga rahotanni wannan gaskiya ne. Idan kuna da rahoton sa'o'i uku kuma ba ku son ya fado saboda rikice-rikicen maimaitawa, to kawai ƙara jinkirin. Rahoton dogon lokaci baya buƙatar bayanan da suka isa cikin ma'ajin bayanai a yanzu. Idan kuna da shi tsawon sa'o'i uku, to kuna gudanar da shi don wasu tsoffin bayanan bayanan. Kuma a gare ku, ko an sami jinkiri na sa'o'i uku ko na sa'o'i shida ba zai haifar da wani bambanci ba, amma za ku sami rahotanni akai-akai kuma ba za ku sami matsala tare da su ba.
  • A zahiri, kuna buƙatar sarrafa dogon zama akan kwafi, musamman idan kun yanke shawarar kunna hot_standby_feedback akan kwafi. Domin komai na iya faruwa. Mun ba wannan kwafin ga mai haɓakawa don ya gwada buƙatun. Ya rubuta wata mahaukaciyar bukata. Ya kaddamar da shi, ya tafi ya sha shayi, muka samu Jagoran da aka kafa. Ko wataƙila mun sanya aikace-aikacen da ba daidai ba a ciki. Al'amura sun bambanta. Dole ne a kula da zama akan kwafi a hankali kamar na Jagora.
  • Kuma idan kuna da tambayoyi masu sauri da tsayi akan kwafi, to a wannan yanayin yana da kyau a raba su don rarraba kaya. Wannan hanyar haɗi ce zuwa streaming_delay. Don masu sauri, sami kwafi ɗaya tare da ɗan jinkirin kwafi. Don buƙatun bayar da rahoto na dogon lokaci, sami kwafi wanda zai iya wucewa ta awanni 6 ko rana. Wannan lamari ne na yau da kullun.

Muna kawar da sakamakon kamar haka:

  • Muna samun tebur mai kumbura.
  • Kuma muna matsa shi da kayan aiki mafi dacewa wanda ya dace da mu.

Labari na biyu ya kare anan. Mu ci gaba zuwa labari na uku.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Hakanan ya zama ruwan dare a gare mu wanda muke yin hijira.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

  • Duk wani samfurin software yana girma. Abubuwan da ake buƙata don shi suna canzawa. A kowane hali, muna so mu ci gaba. Kuma yana faruwa cewa muna buƙatar sabunta bayanan da ke cikin tebur, wato don gudanar da sabuntawa dangane da ƙaura don sabon aikin da muke gabatarwa a matsayin wani ɓangare na ci gaban mu.
  • Tsohon tsarin bayanai bai gamsar ba. Bari mu ce yanzu mun juya zuwa tebur na biyu, inda nake da ma'amaloli akan waɗannan asusun. Kuma bari mu ce sun kasance a cikin rubles, kuma mun yanke shawarar ƙara daidaito da yin shi a cikin kopecks. Kuma don wannan muna buƙatar yin sabuntawa: ninka filin tare da adadin ma'amala da ɗari.
  • A cikin duniyar yau, muna amfani da kayan aikin sarrafa nau'ikan bayanai masu sarrafa kansa. Bari mu ce Liquibase. Muna yin rajistar ƙauranmu a can. Muna gwada shi akan tushen gwajin mu. Komai yana lafiya. Sabuntawa yana faruwa. Yana toshe aiki na ɗan lokaci, amma muna samun sabbin bayanai. Kuma za mu iya ƙaddamar da sabon ayyuka akan wannan. An gwada komai kuma aka duba. An tabbatar da komai.
  • Mun gudanar da ayyukan da aka tsara kuma muka yi hijira.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Ga ƙaura tare da sabuntawa da aka gabatar a gaban ku. Tunda waɗannan ma'amalolin asusuna ne, farantin ya kasance 15 GB. Kuma tunda mun sabunta kowane layi, mun ninka girman tebur tare da sabuntawa, saboda muna sake rubuta kowane layi.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

A lokacin hijira, ba mu iya yin komai da wannan farantin, saboda duk buƙatun da aka yi masa an yi layi kuma ana jira har sai an kammala wannan sabuntawa. Amma a nan ina so in jawo hankalin ku ga lambobin da ke kan axis na tsaye. Wato, muna da matsakaicin lokacin buƙatun kafin ƙaura na kusan 5 millise seconds da kuma nauyin mai sarrafawa, adadin ayyukan toshe don karanta ƙwaƙwalwar diski bai wuce 7,5 ba.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Mun yi hijira kuma muka sake samun matsala.

Hijira ta yi nasara, amma:

  • Tsohon aikin yanzu yana ɗaukar lokaci mai tsawo don kammalawa.
  • Tebur ya sake girma cikin girma.
  • Kayan da ke kan uwar garken ya sake zama mafi girma fiye da da.
  • Kuma, ba shakka, har yanzu muna yin tinkering tare da ayyukan da suka yi aiki da kyau, mun inganta shi kaɗan.

Kuma wannan ya sake kumbura, wanda ya sake lalata rayuwarmu.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Anan na nuna cewa tebur, kamar shari'o'i biyu da suka gabata, ba zai dawo zuwa girmansa na baya ba. Matsakaicin nauyin uwar garken da alama ya isa.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Kuma idan muka juya zuwa tebur tare da asusu, za mu ga cewa matsakaicin lokacin buƙatun ya ninka na wannan tebur. Nauyin da ke kan na'ura mai sarrafawa da adadin layin da aka jera a ƙwaƙwalwar ajiya sun yi tsalle sama da 7,5, amma ya ragu. Kuma ya yi tsalle sau 2 a cikin yanayin na'urori masu sarrafawa, sau 1,5 a cikin yanayin ayyukan toshe, watau mun sami raguwa a aikin uwar garke. Kuma a sakamakon haka - lalata aikin aikace-aikacen mu. A lokaci guda, adadin kiran ya kasance kusan a matakin guda.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Kuma babban abu a nan shi ne fahimtar yadda ake yin irin wannan hijirar daidai. Kuma suna bukatar a yi su. Muna yin waɗannan ƙaura sosai akai-akai.

  • Irin wannan ƙaura mai girma ba sa faruwa ta atomatik. Dole ne a koyaushe su kasance ƙarƙashin iko.
  • Ana buƙatar kulawa ta mutum mai ilimi. Idan kuna da DBA a ƙungiyar ku, to bari DBA ta yi. Aikin sa ne. Idan ba haka ba, to, bari mafi ƙwararrun mutum ya yi, wanda ya san yadda ake aiki tare da bayanan bayanai.
  • Sabon tsarin ma'ajin bayanai, ko da mun sabunta shafi ɗaya, koyaushe muna yin shiri a matakai, watau a gaba kafin a fitar da sabon sigar aikace-aikacen:
  • Ana ƙara sabbin filayen da za mu yi rikodin bayanan da aka sabunta.
  • Muna canja wurin bayanai daga tsohon filin zuwa sabon filin a cikin ƙananan sassa. Me yasa muke yin haka? Da fari dai, koyaushe muna sarrafa tsarin wannan tsari. Mun san cewa mun riga mun yi canja wurin batches da yawa kuma muna da yawa.
  • Kuma sakamako mai kyau na biyu shine cewa tsakanin kowane nau'in nau'in nau'in nau'in nau'in nau'in nau'in nau'in nau'in nau'in nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i) rufe ma'amala, bude wani sabon abu kuma wannan yana ba da damar autovacuum yayi aiki bisa ga farantin, alamar matattun layi don sake amfani da su.
  • Don layin da za su bayyana yayin aikace-aikacen yana gudana (har yanzu muna da tsohuwar aikace-aikacen da ke gudana), muna ƙara faɗakarwa wanda ke rubuta sabbin dabi'u zuwa sabbin filayen. A cikin yanayinmu, wannan shine ninka ta ɗari ɗaya na tsohuwar ƙimar.
  • Idan mun kasance gaba ɗaya taurin kai kuma muna son filin iri ɗaya, sannan bayan kammala duk ƙaura kuma kafin mu fitar da sabon sigar aikace-aikacen, kawai mu sake suna filayen. Tsoffin ana ba wa wasu sunaye da aka ƙirƙira, sa'an nan kuma an mayar da sabbin filayen zuwa tsoffin.
  • Kuma bayan haka ne muka ƙaddamar da sabon sigar aikace-aikacen.

Kuma a lokaci guda ba za mu sami kumburi ba kuma ba za mu sha wahala ba dangane da aikin.

Nan ne labari na uku ya kare.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei 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

Kuma yanzu ɗan ƙarin bayani game da kayan aikin da na ambata a cikin labarin farko.

Kafin neman kumburi, dole ne ka shigar da tsawo pgstattuple.

Don kada ku zo da tambayoyi, mun riga mun rubuta waɗannan tambayoyin a cikin aikinmu. Kuna iya amfani da su. Akwai buƙatu guda biyu a nan.

  • Na farko yana ɗaukar lokaci mai tsawo don aiki, amma zai nuna muku ainihin ƙimar kumbura daga tebur.
  • Na biyu yana aiki da sauri kuma yana da tasiri sosai lokacin da kake buƙatar kimantawa da sauri ko akwai kumburi ko a'a bisa ga tebur. Kuma ya kamata ku fahimci cewa kullun yana kasancewa a cikin tebur na Postgres. Wannan siffa ce ta samfurin MVCC.
  • Kuma 20% kumburi shine al'ada don tebur a yawancin lokuta. Wato, kada ku damu kuma ku danne wannan tebur.

Mun gano yadda za a gano allunan da suka kumbura da bayanan marasa amfani.

Yanzu game da yadda ake gyara kumburi:

  • Idan muna da ƙaramin kwamfutar hannu da faifai masu kyau, wato, akan kwamfutar hannu har zuwa gigabyte, yana yiwuwa a yi amfani da FULL FULL. Zai ɗauki keɓantaccen kulle daga gare ku akan tebur na ƴan daƙiƙa kuma lafiya, amma zai yi komai cikin sauri da tsauri. Menene VACUUM FULL ke yi? Yana ɗaukar keɓantaccen kulle akan tebur kuma yana sake rubuta layuka masu rai daga tsoffin teburi zuwa sabon tebur. Kuma a karshen ya maye gurbinsu. Yana goge tsoffin fayiloli kuma ya maye gurbin tsofaffin da sababbi. Amma don tsawon lokacin aikinsa, yana ɗaukar keɓaɓɓen kulle akan tebur. Wannan yana nufin cewa ba za ku iya yin wani abu da wannan tebur ba: kada ku rubuta masa, ko karanta cikinsa, ko gyara shi. Kuma FULL VACUUM yana buƙatar ƙarin sarari diski don rubuta bayanai.
  • Kayan aiki na gaba pg_repack. A tsarinsa, yana kama da VACUUM FULL, saboda yana sake rubuta bayanai daga tsoffin fayiloli zuwa sababbi kuma yana maye gurbin su a cikin tebur. Amma a lokaci guda, ba ya ɗaukar keɓantaccen kulle akan tebur a farkon farkon aikinsa, amma yana ɗaukar shi kawai a lokacin da ya riga ya sami shirye-shiryen bayanai don maye gurbin fayilolin. Bukatun albarkatun faifan sa yayi kama da na VACUUM FULL. Kuna buƙatar ƙarin sararin faifai, kuma wannan wani lokaci yana da mahimmanci idan kuna da tebur na terabyte. Kuma yana jin yunwa sosai saboda yana aiki tare da I/O.
  • Amfani na uku shine pgcompacttable. Ya fi hankali da albarkatun saboda yana aiki bisa ga ƙa'idodi daban-daban. Babban ra'ayin pgcompacttable shine cewa yana motsa duk layuka masu rai zuwa farkon tebur ta amfani da sabuntawa a cikin tebur. Sannan yana gudanar da vacuum akan wannan tebur, domin mun san cewa muna da layuka masu rai a farkon da matattun layuka a ƙarshe. Kuma vacuum da kansa ya yanke wannan wutsiya, watau ba ya buƙatar ƙarin sarari mai yawa. Kuma a lokaci guda, ana iya matse shi ta fuskar albarkatu.

Komai tare da kayan aiki.

Kurakurai na yau da kullun a cikin aikace-aikacen da ke haifar da kumburi a postgresql. Andrei Salnikov

Idan kun sami batun kumburin ciki mai ban sha'awa ta fuskar zurfafa zurfafa ciki, ga wasu hanyoyin haɗin gwiwa masu amfani:

Na ƙara ƙoƙari don nuna labarin ban tsoro ga masu haɓakawa, saboda su ne abokan cinikinmu kai tsaye na bayanan bayanai kuma dole ne su fahimci menene da abin da ayyuka ke haifar da. Ina fatan na yi nasara. Na gode da kulawar ku!

Tambayoyi

Na gode da rahoton! Kun yi magana game da yadda za ku iya gano matsaloli. Ta yaya za a yi musu gargaɗi? Wato ina da wani yanayi inda buƙatun suka rataya ba kawai saboda sun sami damar yin amfani da wasu sabis na waje ba. Waɗannan su ne kawai ƙungiyoyin daji. Akwai wasu qananan buƙatun marasa lahani waɗanda suka rataye har na yini ɗaya, sannan suka fara yin wasu maganganun banza. Wato kamanceceniya da abin da kuke siffantawa. Yadda ake bin wannan? Zauna da kallo akai-akai wace bukata ta makale? Ta yaya za a iya hana hakan?

A wannan yanayin, wannan aiki ne ga masu gudanar da kamfanin ku, ba lallai ne ga DBA ba.

Ni admin ne

PostgreSQL yana da ra'ayi da ake kira pg_stat_activity wanda ke nuna tambayoyin ban mamaki. Kuma kuna iya ganin tsawon lokacin da ya rataya a can.

Dole ne in shigo in duba kowane minti 5?

Saita cron kuma duba. Idan kuna da buƙatun dogon lokaci, rubuta wasiƙa kuma shi ke nan. Wato, ba kwa buƙatar duba da idanunku, ana iya sarrafa shi ta atomatik. Za ku karɓi wasiƙa, ku amsa mata. Ko kuma kuna iya harbi ta atomatik.

Shin akwai wasu dalilai na zahiri da ya sa hakan ke faruwa?

Na jera wasu. Sauran ƙarin misalan misalan. Kuma ana iya yin tattaunawa na dogon lokaci.

Na gode da rahoton! Ina so in fayyace game da amfanin pg_repack. Idan ba ta yi keɓaɓɓen kulle ba, to...

Ta keɓance kullewa.

... to zan iya yuwuwar rasa bayanai. Shin bai kamata aikace-aikacena ya kasance yana yin rikodin komai ba a wannan lokacin?

A'a, yana aiki lafiya tare da tebur, i.e. pg_repack yana fara canja wurin duk layin da ke wanzu. A zahiri, wani nau'in shigarwa cikin tebur yana faruwa a can. Yana jefa wannan wutsiya ne kawai.

Wato a zahiri ya yi ta a ƙarshe?

A ƙarshe, yana ɗaukar keɓantaccen kulle don musanya waɗannan fayilolin.

Shin zai yi sauri fiye da FULL FULL?

VACUUM FULL, da zarar ya fara, nan da nan ya ɗauki keɓaɓɓen kulle. Kuma har sai ya yi komai, ba zai sake ta ba. Kuma pg_repack yana ɗaukar keɓantaccen kulle kawai a lokacin sauya fayil. A wannan lokacin ba za ku rubuta a can ba, amma bayanan ba za a rasa ba, komai zai yi kyau.

Sannu! Kun yi magana game da aikin vacuum na mota. Akwai jadawali mai rakodin ja, rawaya da kore. Wato, masu launin rawaya - ya sanya su a matsayin share. Kuma a sakamakon haka, za a iya rubuta wani sabon abu a cikin su?

Ee. Postgres baya share layi. Yana da irin wannan takamaiman. Idan muka sabunta layi, mun yiwa tsohon alama a matsayin share. ID na ma'amalar da ta canza wannan layin ya bayyana a can, kuma mun rubuta sabon layi. Kuma muna da lokutan da za su iya karanta su. A wani lokaci sun tsufa sosai. Kuma ainihin yadda autovacuum ke aiki shi ne cewa yana bi ta waɗannan layukan kuma yana nuna su ba dole ba ne. Kuma kuna iya sake rubuta bayanai a can.

Na gane. Amma ba wannan ba shine abin da tambayar ta kasance ba. Ban gama ba. Bari mu ɗauka muna da tebur. Yana da filaye masu girma dabam. Kuma idan na yi ƙoƙarin saka wani sabon abu, ƙila ba zai dace da tsohuwar tantanin halitta ba.

A'a, a kowane hali an sabunta dukkan layin a can. Postgres yana da nau'ikan adana bayanai guda biyu. Yana zaɓar daga nau'in bayanai. Akwai bayanan da aka adana kai tsaye a cikin tebur, akwai kuma bayanan tos. Waɗannan su ne adadi mai yawa na bayanai: rubutu, json. Ana adana su a cikin faranti daban-daban. Kuma bisa ga waɗannan allunan, labarin iri ɗaya tare da kumburi yana faruwa, watau duk abin da yake iri ɗaya ne. An jera su daban.

Na gode da rahoton! Shin yana yiwuwa a yi amfani da tambayoyin ƙarewar sanarwa don iyakance tsawon lokaci?

Karbuwa sosai. Muna amfani da wannan a ko'ina. Kuma tunda ba mu da namu sabis, muna ba da tallafi na nesa, muna da abokan ciniki iri-iri. Kuma kowa ya gamsu da wannan. Wato, muna da cron jobs cewa duba. Tsawon zaman an yarda da shi kawai tare da abokin ciniki, kafin abin da ba mu yarda ba. Yana iya zama minti daya, yana iya zama minti 10. Ya dogara da nauyin da ke kan tushe da manufarsa. Amma duk muna amfani da pg_stat_activity.

Na gode da rahoton! Ina ƙoƙarin yin amfani da rahoton ku a aikace-aikace na. Kuma ga alama mun fara ciniki a ko'ina, kuma a fili kammala shi a ko'ina. Idan akwai wasu keɓancewa, to har yanzu jujjuyawar tana faruwa. Sai na fara tunani. Bayan haka, ƙila cinikin ba zai fara ba a sarari. Wataƙila wannan alama ce ga yarinyar. Idan kawai na sabunta rikodin, shin ciniki zai fara a PostgreSQL kuma zai ƙare kawai lokacin da aka cire haɗin?

Idan kuna magana yanzu game da matakin aikace-aikacen, to ya dogara da direban da kuke amfani da shi, akan ORM ɗin da ake amfani dashi. Akwai saituna da yawa a wurin. Idan kun kunna ta atomatik, to ma'amala ta fara can kuma ta rufe nan da nan.

Wato, yana rufe nan da nan bayan sabuntawa?

Ya dogara da saitunan. Na sanya sunan saitin daya. Wannan ƙaddamarwa ta atomatik. Ya zama gama gari. Idan an kunna, to cinikin ya buɗe kuma ya rufe. Sai dai idan ka fito fili ka ce “fara ciniki” da “ƙarshen ciniki”, amma kawai ƙaddamar da buƙata a cikin zaman.

Sannu! Na gode da rahoton! Bari mu yi tunanin cewa muna da rumbun adana bayanai da ke kumburi da kumburi sannan sarari a kan uwar garke ya ƙare. Shin akwai kayan aikin gyara wannan yanayin?

Wurin da ke kan uwar garken yana buƙatar kulawa da kyau.

Misali, DBA ta tafi shan shayi, tana wurin shakatawa, da sauransu.

Lokacin da aka ƙirƙiri tsarin fayil, aƙalla an ƙirƙiri wani nau'in sararin ajiya inda ba a rubuta bayanai ba.

Idan ya kasance gaba daya a kasa sifili fa?

A can ake kiransa Reserved Space, watau ana iya 'yantar da shi kuma gwargwadon girman girmansa, kuna samun sarari kyauta. Ta hanyar tsoho ban san adadin su ba. Kuma a wani yanayin, isar da faifai don samun wurin yin aikin sake ginawa. Kuna iya share wasu tebur waɗanda aka ba ku tabbacin ba ku buƙata.

Akwai wasu kayan aikin?

Kullum aikin hannu ne. Kuma a cikin gida ya bayyana abin da ya fi dacewa a yi a can, saboda wasu bayanai suna da mahimmanci kuma wasu ba su da mahimmanci. Kuma kowane database da aikace-aikacen da ke aiki da shi, ya dogara da kasuwancin. Kullum ana yanke hukunci a cikin gida.

Na gode da rahoton! Ina da tambayoyi guda biyu. Da farko, kun nuna nunin faifai waɗanda ke nuna cewa lokacin da ma'amaloli suka makale, duka girman sararin tebur da girman fihirisa suna girma. Kuma a kan rahoton akwai tarin kayan aiki da ke kunshe da kwamfutar hannu. Me game da index?

Suma sun kwashe su.

Amma injin ba ya shafar ma'anar?

Wasu suna aiki tare da index. Misali, pg_rapack, pgcompacttable. Wutar ta sake haifar da fihirisa kuma yana shafar su. Tare da VACUUM FULL ra'ayin shine a sake rubuta komai, watau yana aiki tare da kowa.

Da tambaya ta biyu. Ban gane dalilin da yasa rahotanni akan kwafi sun dogara sosai akan kwafin kanta ba. Na ga kamar ana karanta rahotanni, kuma ana rubuta kwafi.

Me ke haifar da rikice-rikice? Muna da Jagora akan abin da matakai ke faruwa. Muna da injin motar da ke faruwa. Menene ainihin autovacuum ke yi? Yana yanke wasu tsoffin layuka. Idan a wannan lokacin muna da buƙatu a kan kwafin da ke karanta waɗannan tsoffin layukan, kuma a kan Jagora wani yanayi ya faru cewa autovacuum ya yi alama ga waɗannan layin a matsayin mai yiwuwa don sake rubutawa, to, mun sake rubuta su. Kuma mun sami fakitin bayanai, lokacin da muke buƙatar sake rubuta waɗannan layin da buƙatun ke buƙata akan kwafin, tsarin kwafi zai jira lokacin ƙarewar da kuka saita. Sannan PostgreSQL zai yanke shawarar abin da ya fi mahimmanci a gare shi. Kuma maimaitawa ya fi buƙatarsa ​​mahimmanci, kuma zai harbe buƙatar don yin waɗannan canje-canje akan kwafin.

Andrey, ina da tambaya. Waɗannan hotuna masu ban mamaki da kuka nuna yayin gabatarwa, shin waɗannan sakamakon aikin wani nau'in amfanin ku ne? Ta yaya aka yi jadawali?

Wannan sabis ne Okmeter.

Shin wannan samfurin kasuwanci ne?

Ee. Wannan samfurin kasuwanci ne.

source: www.habr.com

Add a comment