Habka warshadaha ee hagaajinta PostgreSQL: tijaabooyinka xogta macluumaadka. Nikolay Samokhvalov

Waxaan kuu soo jeedinayaa inaad akhrido qoraalka warbixinta Nikolai Samokhvalov "Habka warshadaha ee hagaajinta PostgreSQL: tijaabooyinka macluumaadka"

Shared_buffers = 25% - ma wax badan mise wax yar? Mise waa sax? Sidee ku ogaan kartaa in tani -balse ay duugowday - ay ku habboon tahay kiiskaaga gaarka ah?

Waa markii la wajaho arrinta doorashada postgresql.conf "sida qof weyn." Ma aha caawinta indhoolayaasha "auto tuners" ama talo duug ah oo ka timid maqaallada iyo blogyada, laakiin ku salaysan:

  1. Tijaabooyin si adag loo xaqiijiyay oo ku saabsan xog-ururinta, oo si toos ah loo fuliyo, tiro badan iyo xaaladaha sida ugu dhow ee suurtogalka ah si loogu "la dagaallamo",
  2. faham qoto dheer ee sifooyinka DBMS iyo OS.

Isticmaalka Nancy CLI (https://gitlab.com/postgres.ai/nancy), waxaan eegi doonaa tusaale gaar ah - caan ah shared_buffers - xaalado kala duwan, in mashaariic kala duwan oo isku day in la ogaado sida loo doorto goobta ugu fiican ee our kaabayaasha, database iyo load.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Waxaan ka hadli doonaa tijaabooyinka xogta macluumaadka. Tani waa sheeko socota wax yar in ka badan lix bilood.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Wax yar oo igu saabsan. Khibrad u leh Postgres in ka badan 14 sano. Tiro ka mid ah shirkadaha xidhiidhka bulshada ayaa aasaasay. Postgres ayaa ahaa oo meel walba laga isticmaalaa.

Sidoo kale kooxda RuPostgres ee Meetup, kaalinta 2aad ee adduunka. Waxaan si tartiib ah ugu dhowaanaynaa 2 oo qof. RuPostgres.org

Iyo kombuyuutarrada shirarka kala duwan, oo ay ku jiraan Highload, aniga ayaa mas'uul ka ah xog ururinta, gaar ahaan Postgres tan iyo bilowgiiba.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Dhawrkii sano ee la soo dhaafay, waxaan dib u bilaabay shaqadaydii la-talinta ee Postgres 11 aagagga wakhtiga ee halkan.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Oo markii aan tan sameeyay dhawr sano ka hor, waxaan xoogaa nasasho ah kala kulmay shaqada gacanta ee Postgres, malaha ilaa 2010. Waxaan la yaabay sida ay u yar tahay shaqada caadiga ah ee DBA ay is beddeshay, iyo inta ay le'eg tahay shaqada gacanta ee weli loo baahan yahay in la isticmaalo. Oo waxaan isla markiiba u maleeyay in ay wax khaldan yihiin halkan, waxaan u baahanahay inaan si otomaatig ah u sameeyo wax walba.

Oo maadaama ay dhammaantiis fogayd, macaamiisha intooda badani waxay ku jireen daruuraha. Wax badanna mar hore ayaa si otomaatig ah loo sameeyay, sida cad. Wax badan oo arrintan ku saabsan gadaal. Taasi waa, waxaas oo dhan waxay keeneen fikradda ah inay jiraan tiro qalab ah, tusaale ahaan, nooc ka mid ah madal kaas oo otomaatig u noqon doona ku dhawaad ​​dhammaan ficillada DBA si tiro badan oo xog ururin ah loo maareeyo.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Warbixintan kuma jiri doonto:

  • "Silver rasaas" iyo weedho sida - deji 8 GB ama 25% la wadaago_buffers oo waad fiicnaan doontaa. Ma jiri doono wax badan oo ku saabsan wadaaga_buffers.
  • Hardcore "innards".

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Maxaa dhici doona?

  • Waxaa jiri doona mabaadi'da hagaajinta ee aan isticmaalno oo aan horumarinayno. Waxaa jiri doona nooc kasta oo fikrado ah oo ka soo baxa jidka iyo qalabyo kala duwan oo aan u abuurno inta badan qaybta Furan, i.e. waxaan ka dhignaa saldhigga Furan. Waxaa intaa dheer, waxaan haysanaa tigidho, dhammaan isgaarsiintu waa furan yihiin. Waxaad arki kartaa waxa aan hadda samaynayno, waxa noqon doona sii deynta soo socota, iwm.
  • Waxa kale oo jiri doona waayo-aragnimo qaar ka mid ah isticmaalka mabaadi'dan, qalabkan ee shirkado badan: laga bilaabo bilawga yaryar ilaa shirkado waaweyn.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Sidee waxaas oo dhami u horumarayaan?

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Marka hore, hawsha ugu weyn ee DBA, marka lagu daro hubinta abuurista tusaalooyinka, geynta kaydinta, iwm., waa in la helo cilad-xumo iyo wanaajinta waxqabadka.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Hadda waa sidan oo kale. Waxaan eegnaa la socodka, waxaan aragnaa wax, laakiin waxaa naga maqan faahfaahin. Waxaan bilaabeynaa inaan si taxadar leh u qodno, sida caadiga ah gacmaheena, oo aan fahamno waxa aan ku sameyneyno si uun ama si kale.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Waxaana jira laba hab. Pg_stat_statements waa xalka caadiga ah ee lagu aqoonsanayo weydiimaha qunyar socodka ah. Iyo falanqaynta qoraallada Postgres iyadoo la adeegsanayo pgBadger.

Hab kastaa wuxuu leeyahay dib-u-dhacyo halis ah. Habka ugu horreeya, waxaan tuurnay dhammaan xuduudaha. Oo haddii aan aragno kooxaha DOOR * Miiska halkaas oo tiirku la mid yahay "?" ama "$" laga soo bilaabo Postgres 10. Ma garanayno in kani yahay iskaanka tusmada ama sawirka seq. Waxay aad ugu xiran tahay cabbirka. Haddii aad ku beddesho qiime naadir ah oo halkaas ku yaal, waxay noqon doontaa iskaanka tusmada. Haddii aad ku beddesho qiime ku fadhiya 90% miiska halkaas, iskaanka seq wuxuu noqon doonaa mid cad, sababtoo ah Postgres wuu yaqaanaa tirakoobka. Tanina waa dib u dhac weyn oo ku yimid pg_stat_statements, in kasta oo shaqada qaar ay socoto.

Khasaaraha ugu weyn ee falanqaynta log waa inaadan awoodin "log_min_duration_statement = 0" sida caadiga ah. Taasna waan ka hadli doonaa. Sidaas awgeed, ma arkaysid sawirka oo dhan. Weydiimaha qaarkood, oo aad u dheereeya, ayaa laga yaabaa inay cunaan kheyraad aad u badan, laakiin ma arki doontid sababtoo ah waxay ka hooseysaa heerkaaga.

Sidee DBA-yadu u xalliyaan dhibaatooyinka ay helaan?

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Tusaale ahaan, waxaan helnay xoogaa dhibaato ah. Maxaa inta badan la sameeyaa? Haddii aad tahay horumariye, markaa waxaad samayn doontaa wax aan la mid ahayn tusaale ahaan. Haddii aad tahay DBA, markaa waxaad leedahay diyaarinta. Waxaana jiri kara mid keliya. Lix biloodna wuu ka dambeeyay. Waxaadna u malaynaysaa inaad wax-soo-saar aadi doonto. Iyo xitaa DBA-yada khibradda leh ka dibna hubi wax soo saarka, nuqul ka mid ah. Oo waxay dhacdaa in ay abuuraan tilmaame ku meel gaar ah, hubi in ay caawiso, tuuraan oo ay siiyaan horumariyeyaasha si ay ugu dhejiyaan faylasha socdaalka. Tani waa wax aan macno lahayn oo hadda dhacaya. Tanina waa dhibaato.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

  • Dabo habaynta
  • Hagaajin jaantusyada tusmooyinka.
  • Beddel su'aasha SQL lafteeda (tani waa habka ugu adag).
  • Ku dar kartida (sida ugu fudud kiisaska intooda badan).

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Wax badan ayaa ka socda arrimahan. Gacan-qabsi badan ayaa ku jira Postgres. Wax badan ayaa jira in la ogaado. Waxaa jira tilmaamo badan oo ku yaal Postgres, sidoo kale waxaa mahad leh qabanqaabiyeyaasha shirkan. Oo waxaas oo dhan waxay u baahan yihiin in la ogaado, tanina waa waxa ka dhigaya kuwa aan DBA-yada ahayn inay dareemaan in DBA-yadu ay ku dhaqmayaan sixirka madow. Taasi waa, waxaad u baahan tahay inaad wax barato 10 sano si aad u bilowdo inaad waxaas oo dhan si caadi ah u fahanto.

Aniguna waxaan ahay mid la dagaallama sixirkan madow. Waxaan rabaa inaan sameeyo wax walba si ay u jirto tignoolajiyada, mana jiraan wax dareen ah oo ku jira waxaas oo dhan.

Tusaalooyinka nolosha dhabta ah

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Waxaan tan ku arkay ugu yaraan laba mashruuc, oo ay ku jiraan kayga. Qoraal kale oo baloog ah ayaa noo sheegaysa in qiimaha 1 ee default_statistict_target uu fiican yahay. Hagaag, aan isku dayno wax soo saarka.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Oo halkan waxaan ku isticmaalnaa qalabkeena laba sano ka dib, iyadoo la kaashanayo tijaabooyinka kaydka xogta ee aan maanta ka hadlayno, waxaan isbarbar dhigi karnaa wixii jiray iyo waxa noqday.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Taasna waxaan u baahanahay inaan abuurno tijaabo. Waxay ka kooban tahay afar qaybood.

  • Ka hore waa deegaanka. Waxaan u baahanahay gabal qalab ah. Oo markaan imaado shirkado oo aan saxiixo qandaraas, waxaan u sheegaa inay i siiyaan qalab la mid ah kan wax soo saarka. Mid kasta oo ka mid ah Masters-kaaga, waxaan u baahanahay ugu yaraan hal qalab oo sidan oo kale ah. Midkood kani waa mashiinka farsamada gacanta ee Amazon ama Google, ama waxaan u baahanahay qalab isku mid ah. Taasi waa, waxaan rabaa inaan dib u abuuro deegaanka. Iyo fikradda deegaanka waxaan ku darnaa nooca ugu weyn ee Postgres.
  • Qaybta labaad waa shayga cilmi-baadhistayada. Kani waa xog-ururin Waxaa loo abuuri karaa siyaabo dhowr ah. waan ku tusi doonaa sida.
  • Qaybta saddexaad waa culayska. Tani waa xilliga ugu adag.
  • Qaybta afraadna waa waxa aynu hubinayno, yacnii waxa aynu barbar dhigi doonaa waxa. Aynu nidhaahno waxaan ku beddeli karnaa hal ama in ka badan halbeegyada isku xidhka, ama waxaan samayn karnaa index, iwm.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Waxaan bilaabaynaa tijaabo Waa kan pg_stat_statements. Dhinaca bidix waxa dhacay. Dhanka midig - maxaa dhacay.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Dhanka bidix default_statistics_target = 100, dhanka midig = 1. Waxaan aragnaa inay tani na caawisay. Guud ahaan, wax walbaa way fiicnaadeen 000%.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Laakiin haddii aan hoos u dhaadhacno, waxaa jiri doona kooxo codsiyo ah oo ka yimid pgBadger ama pg_stat_statements. Waxaa jira laba ikhtiyaar. Waxaan arki doonaa in codsiyada qaar ay hoos u dhaceen 88%. Oo halkan yimaado habka injineernimada. Waxaan sii qodan karnaa gudaha sababtoo ah waxaan la yaabanahay sababta ay u degtay. Waxaad u baahan tahay inaad fahamto waxa ku dhacay tirakoobka. Waa maxay sababta baaldiyada badan ee tirakoobka ay keenaan natiijooyin xun.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Ama ma qodi karno, laakiin samee "BADALKA BEDELKA ... BEDELKA COLUMN" oo ku soo celi 100 baaldi oo ku celi tirakoobka tiirkan. Kadibna tijaabo kale waxaan ku hubin karnaa in balastarkan uu caawiyay. Dhammaan Tani waa habka injineernimada oo naga caawiya inaan aragno sawirka weyn oo aan sameyno go'aanno ku saleysan xogta halkii aan ka ahaan lahayn dareenka.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Tusaalooyin dhowr ah oo ka yimid meelo kale. Waxaa jiray imtixaanada CI ee imtixaanada sanado badan. Ma jiro mashruuc maskaxdiisa saxda ah ku nool oo aan lahayn tijaabooyin iswada.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Warshadaha kale: duulista, warshadaha baabuurta, marka aan tijaabino aerodynamics, waxaan sidoo kale haysanaa fursad aan ku samayno tijaabooyin. Wax sawir ah toos uma gelin doono meel bannaan, amaba isla markiiba gaadhi mayno qaadi mayno jidka. Tusaale ahaan, waxaa jira tunnel dabaysha.

Waxaan ka soo saari karnaa gabagabada indha-indheynta warshadaha kale.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Marka hore, waxaan leenahay deegaan gaar ah. Waxay ku dhowdahay wax soo saarka, laakiin maaha mid u dhow. Astaanteeda ugu weyn waa in ay ahaato mid raqiis ah, lagu celin karo oo sida ugu macquulsan ee suurtogalka ah. Waana in sidoo kale ay jiraan qalab gaar ah oo lagu sameeyo falanqaynta faahfaahsan.

Waxay u badan tahay, marka aan duulno diyaarad oo aan duulno, waxaan haysanaa fursad aan ku baranno millimitir kasta oo dusha baalka ah marka loo eego kuwa aan ku haysanno tunnel-ka dabaysha. Waxaan haynaa qalab badan oo lagu baaro. Waxaan awood u yeelan karnaa in aan qaadno waxyaabo ka culus oo aynaan awoodin in aan diyaarad saarno hawada. Waxa la mid ah Postgres. Waxaa laga yaabaa, in xaaladaha qaarkood, aan awoodno gelitaanka su'aalaha buuxa inta lagu jiro tijaabooyinka. Mana rabno inaan tan ku sameyno wax soo saarka. Waxaa laga yaabaa inaan xitaa qorsheyno inaan awoodno tan anagoo adeegsanayna auto_explain.

Oo sidaan idhi, heer sare oo otomaatig ah macnaheedu waa inaanu riixno badhanka oo ku celino. Tani waa sida ay tahay inay ahaato, si ay u jiraan tijaabo badan, si ay ugu socoto qulqulka.

Nancy CLI - aasaaska "shaybaarka database"

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Oo sidaas ayaanu waxan samaynay. Taasi waa, waxaan ka hadlay fikradahan bishii Juun, ku dhawaad ​​hal sano ka hor. Waxaan horeyba u haysanay waxa loogu yeero Nancy CLI ee Isha Furan. Tani waa aasaaska dhismaha shaybaadhka xogta.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Nancy - Waxay ku taal Isha Furan, ee Gitlab. Waad dhihi kartaa, waad isku dayi kartaa. Waxaan ku bixiyay xiriiriye boggaga. Waad gujin kartaa oo way jiri doontaa I caawi dhinac walba.

Dabcan, wax badan ayaa weli ku socda horumarka. Waxaa jira fikrado badan. Laakiin tani waa wax aan isticmaalno ku dhawaad ​​maalin kasta. Oo markaan fikrad ka haysanno - waa maxay sababta marka aan tirtirno 40 oo xariiq, dhammaan waxay ku dhacaan IO, ka dib waxaan samayn karnaa tijaabo oo aan si faahfaahsan u eegno si aan u fahamno waxa dhacaya ka dibna isku day inaad hagaajiso socodka. Taasi waa, waxaan sameyneynaa tijaabo. Tusaale ahaan, wax baannu toosinnaa oo aragnaa waxa dhacaya dhammaadka. Taasna kuma samayno wax soo saarka. Tani waa nuxurka fikradda.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Xaggee tani ka shaqayn kartaa? Tani waxay u shaqayn kartaa maxali ah, i.e. waxaad ku samayn kartaa meel kasta, waxaad xitaa ku wadi kartaa MacBook. Waxaan u baahanahay docker, aan tagno. Waa intaas. Waxaad ku socodsiin kartaa tusaale ahaan gabal qalab ah, ama mashiinka farsamada gacanta, meel kasta.

Waxa kale oo jirta fursad aad ku ordi karto meel fog Amazon gudaha EC2 Instance, dhibco. Oo tani waa fursad aad u fiican. Tusaale ahaan, shalay waxaan samaynay in ka badan 500 oo tijaabo ah i3 tusaale ahaan, laga bilaabo kan ugu yar oo ku dhammaanaya i3-16-xlarge. 500 oo tijaabo ahina waxay noogu kacday $64. Mid kastaa wuxuu qaatay 15 daqiiqo. Taasi waa, iyadoo ay ugu wacan tahay xaqiiqda ah in dhibco halkaas lagu isticmaalo, aad bay u jaban tahay - 70% dhimis, biilasha Amazon ee ilbiriqsi kasta. Wax badan ayaad qaban kartaa. Waxaad samayn kartaa cilmi-baaris dhab ah.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Saddex nooc oo waaweyn oo Postgres ah ayaa la taageeray. Ma adka in la dhammeeyo qaar hore iyo nooca 12-aad ee cusub sidoo kale.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Waxaan ku qeexi karnaa shay saddex siyaabood. Tani:

  • Tuur/sql faylka.
  • Habka ugu muhiimsan waa in la xidho tusaha PGDATA. Sida caadiga ah, waxaa laga soo qaatay kaydka server-ka. Haddii aad haysato kaydka binary caadiga ah, waxaad ka samayn kartaa clones halkaas. Haddii aad leedahay daruuro, markaa xafiiska daruuraha sida Amazon iyo Google ayaa tan kuu samayn doona. Tani waa habka ugu muhiimsan ee lagu xidho wax soo saarka dhabta ah. Tani waa sida aan u kala baxno.
  • Habka ugu dambeeyana wuxuu ku habboon yahay cilmi-baarista marka aad rabto inaad fahamto sida wax u shaqeeyo Postgres. Tani waa pgbench. Waxaad samayn kartaa adigoo isticmaalaya pgbench. Waa hal doorasho "db-pgbench". Waxaad u sheegtaa miisaanka. Oo wax walba waxaa lagu soo saari doonaa daruuraha, sida la sheegay.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Oo rar:

  • Waxaan ku fulin karnaa culeyska hal dun SQL ah. Tani waa habka ugu da'da weyn.
  • Waxaanan ku dayan karnaa culeyska. Waxaanan ku dayan karnaa marka hore sidan soo socota. Waxaan u baahannahay inaan aruurinno dhammaan logyada. Waana xanuun. Waan ku tusi doonaa sababta Iyadoo la isticmaalayo pgreplay waxaan ku ciyaareynaa, kaas oo lagu dhisay Nancy.
  • Ama ikhtiyaar kale. Waxa loogu yeero culeyska farsamada, kaas oo aan ku sameyno dadaal gaar ah. Falanqaynta culayskayaga hadda ee nidaamka dagaalka, waxaanu soo saarnay kooxaha ugu sarreeya ee codsiyada. Adigoo isticmaalaya pgbench waxaan ku dayan karnaa culeyskan shaybaarka dhexdiisa.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

  • Ama waa inaan samaynaa nooc ka mid ah SQL, tusaale ahaan, waxaan hubineynaa nooc ka mid ah socdaalka, samee index halkaas, ku fulin ANALAZE. Oo waxaynu eegnaa wixii dhacay ka hor faaruqinta iyo ka dib faaruqinta. Guud ahaan, SQL kasta.
  • Ama waxaan ku beddelnaa hal ama in ka badan oo cabbirada isku xidhka. Waxaan noo sheegi karnaa inaan ka hubinno, tusaale ahaan, 100 qiyam ee Amazon xogtayada terabyte. Oo dhawr saacadood gudahood waxaad heli doontaa natiijada. Sida caadiga ah, waxay ku qaadan doontaa dhowr saacadood inaad geyso xogta terabyte. Laakiin waxaa jira balastar xagga horumarinta ah, waxaan haynaa taxane suurtagal ah, i.e. waxaad si joogto ah u isticmaali kartaa isla pgdata isku mid ah isla serverka oo hubi. Postgres ayaa dib u bilaaban doona oo kaydinta dib ayaa loo dajin doonaa. Oo culayska waad wadi kartaa.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

  • Hagaha waxa uu la imanayaa faylal badan oo kala duwan, laga bilaabo pg snapshotsstat***. Waxa ugu xiisaha badan waxaa jira pg_stat_statements, pg_stat_kcacke. Kuwani waa laba kordhin oo lagu falanqeeyo codsiyada. Iyo pg_stat_bgwriter kuma koobna oo kaliya tirakoobka pgwriter, laakiin sidoo kale barta koontaroolka iyo sida dhabarka laftoodu u barakiciyo kaydka wasakhaysan. Waana wax xiiso leh in la arko. Tusaale ahaan, marka aan dejinno la wadaago_buffers, aad ayay u xiiso badan tahay in la arko inta qof kasta beddelay.
  • Qoraallada Postgres sidoo kale waa imanayaan. Laba qoryo - diiwaanka diyaarinta iyo kaydka dib u ciyaarista.
  • Muuqaal cusub oo cusub waa FlameGraphs.
  • Sidoo kale, haddii aad isticmaasho pgreplay ama fursadaha pgbench si aad u ciyaarto culeyska, markaa wax soo saarkoodu wuxuu noqon doonaa mid asal ah. Oo waxaad arki doontaa daahitaanka iyo TPS. Waxaa suurtagal noqon doonta in la fahmo sida ay u arkeen.
  • Macluumaadka nidaamka.
  • Hubinta CPU aasaasiga ah iyo IO. Tani waxay u badan tahay tusaale ahaan EC2 ee Amazon, marka aad rabto inaad bilowdo 100 isku mid ah dunta oo aad ku orodo 100 kala duwan halkaas, markaa waxaad yeelan doontaa 10 oo tijaabo ah. Oo waxaad u baahan tahay inaad hubiso inaadan la kulmin tusaale khaldan oo mar horeba qof lagu dulmiyay. Kuwo kale ayaa ku firfircoon qalabkan oo wax yar ayaa kuu hadhay. Way fiicantahay in la tuuro natiijooyinkaas. Iyo caawinta sysbench ee Alexey Kopytov, waxaan sameynaa dhowr jeeg oo gaaban oo iman doona oo lala barbar dhigi karo kuwa kale, i.e. waxaad fahmi doontaa sida CPU u dhaqmo iyo sida IO u dhaqmo.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Maxay yihiin dhibaatooyinka farsamo ee ku salaysan tusaalaha shirkadaha kala duwan?

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Aynu nidhaahno waxaan rabnaa in aan ku celino culeyska dhabta ah annaga oo adeegsanayna logs. Waa fikrad aad u fiican haddii ay ku qoran tahay Open Source pgreplay. Waxaan isticmaalnaa. Laakiin si ay si fiican ugu shaqeyso, waa inaad awood u gelisaa gelida su'aalaha buuxa oo leh cabbirro iyo waqti.

Waxaa jira xoogaa dhibaatooyin ah oo la xiriira muddada iyo shaabada wakhtiga. Waxaan faaruqi doonaa dhammaan jikada. Su'aasha ugu weyni waa in aad awoodid iyo in kale?

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

https://gist.github.com/NikolayS/08d9b7b4845371d03e195a8d8df43408

Dhibaatadu waxay tahay in laga yaabo inaan la heli karin. Marka hore, waa inaad fahamtaa waxa qulqulka lagu qori doono log. Haddii aad hayso pg_stat_statements, waxaad isticmaali kartaa waydiintan (xidhiidhku wuxuu diyaar ku ahaan doonaa boggaga) si aad u fahanto qiyaas ahaan inta bytes lagu qori doono ilbiriqsi kasta.

Waxaan eegaynaa dhererka codsiga. Waxaan dayacaynaa xaqiiqda ah in aysan jirin wax xaddidaad ah, laakiin waxaan ognahay dhererka codsiga waxaanan ognahay inta jeer ee la fuliyay ilbiriqsigiiba. Sidan ayaan ku qiyaasi karnaa inta bytes ee ilbiriqsikii. Waxaa laga yaabaa in aan khalad samayno laba jeer, laakiin hubaal waxaan ku fahmi doonaa nidaamka sidan.

Waxaan arki karnaa in 802 jeer ilbiriqsikiiba codsigan la fuliyay. Oo waxaan aragnaa in bytes_per sec - 300 kB/s la qori doono oo lagu daray ama laga jaray. Iyo, sida caadiga ah, waxaan awoodi karnaa socodka noocaas ah.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Laakiin! Xaqiiqdu waxay tahay in ay jiraan nidaamyo gooyn oo kala duwan. Dadkuna sida caadiga ah waxay u qalmaan waa "syslog".

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Oo haddii aad leedahay syslog, markaa waxaa laga yaabaa inaad haysato sawir sidan oo kale ah. Waxaan qaadan doonaa pgbench, awood u gelinta su'aalaha oo aan aragno waxa dhaca.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Iyadoo aan la jarin - tani waa tiirka bidixda. Waxaan helnay 161 TPS. Iyadoo syslog - tani waxay ku jirtaa Ubuntu 000 ee Amazon, waxaan helnaa 16.04 TPS. Oo haddaynu u beddelno laba hab oo kale oo geedo-qoritaan ah, markaa xaaladdu aad ayay u fiican tahay. Taasi waa, waxaanu filaynay inay hoos u dhacdo, laakiin maaha mid la mid ah.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Iyo CentOS 7, kaas oo joornaalku sidoo kale ka qaybqaato, u rogida diiwaannada qaab binary si sahlan loo baadho, iwm.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Taasina waa waxa ay dadku la nool yihiin. Badana shirkadaha, gaar ahaan kuwa waaweyn, tani aad bay u adag tahay in la beddelo. Haddii aad ka bixi karto syslog, fadlan ka fogow.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

  • Qiimee IOPS oo qor socodka.
  • Hubi nidaamkaaga jaridda
  • Haddii culeyska la saadaaliyay uu aad u weyn yahay, tixgeli muunad.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Waxaan haynaa pg_stat_statements. Sidaan sheegay, waa inay jirtaa. Oo waxaan u qaadan karnaa oo ku qeexi karnaa koox kasta oo codsiyo si gaar ah faylka. Ka dibna waxaan ku isticmaali karnaa sifo aad ugu habboon pgbench - tani waa awoodda lagu gelinayo dhowr faylal iyadoo la adeegsanayo xulashada "-f".

Wax badan ayay fahmeysaa "-f". Waxaadna ku sheegi kartaa adiga oo kaashanaya "@" dhamaadka waxa la wadaagayo fayl kasta. Taasi waa, waxaan dhihi karnaa tan ku samee 10% kiisaska, tanna 20%. Taasina waxay noo soo dhawaynaysaa waxa aynu ku aragno wax soo saarka.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Sideen u fahmi doonaa waxa aan ku hayno wax soo saarka? Maxaa wadaaga iyo sidee? Tani waa xoogaa dhinac ah. Waxaan haynaa hal badeeco kale Baaritaanka ka dib. Sidoo kale saldhig ku yaal Isha Furan. Waxaana hadda si firfircoon u horumarinayna.

Waxa uu ku dhashay sababo yar oo kala duwan. Sababaha in la socodka kuma filna. Yacni, kaalay, eega saldhigga, fiiri dhibaatooyinka jira. Iyo, sida caadiga ah, waxaad samaysaa_baaritaan caafimaad. Haddii aad tahay DBA khibrad leh, markaa waxaad samaysaa health_check. Waxaan eegnay isticmaalka tusmooyinka, iwm. Haddii aad leedahay OKmeter, ka dibna aad u fiican. Tani waa la socodka wanaagsan ee Postgres. OKmeter.io - fadlan ku rakib, wax walba si fiican ayaa halkaas loogu sameeyay. Waa la bixiyaa.

Haddii aanad mid lahayn, markaa inta badan ma haysatid wax badan. Kormeerka, waxaa badanaa jira CPU, IO, ka dibna boos celin leh, waana intaas oo dhan. Oo waxaan u baahanahay wax badan. Waxaan u baahanahay inaan aragno sida autovacuum u shaqeeyo, sida isbaaradu u shaqeyso, io waxaan u baahanahay inaan kala saarno isbaarada iyo bgwriter iyo dhabarka, iwm.

Dhibaatadu waxay tahay marka aad caawiso shirkad weyn, ma fulin karaan wax si degdeg ah. Si degdeg ah uma iibsan karaan OKmeter. Waxaa laga yaabaa inay ku iibsadaan lix bilood gudahood. Si degdeg ah uma keeni karaan baakadaha qaarkood.

Waxaannu la nimid fikradda ah inaan u baahanahay qalab gaar ah oo aan u baahnayn in wax lagu rakibo, tusaale ahaan uma baahnid inaad wax ku rakibto gabi ahaanba wax soo saarka. Ku rakib laptop-kaaga, ama server-ka isha ku haya meesha aad ka maamuli doonto. Oo waxay falanqayn doontaa waxyaabo badan: nidaamka hawlgalka, nidaamka faylka, iyo Postgres laftiisa, samaynta qaar ka mid ah weydiimaha iftiinka ah oo si toos ah loogu socodsiin karo wax soo saarka oo aan waxba dhicin.

Waxaan u yeernay Postgres-checkup. Xagga caafimaadka, tani waa baaritaan caafimaad oo joogto ah. Haddii ay tahay mawduuc baabuur, markaa waa sida dayactirka oo kale. Waxaad dayactir ku samaynaysaa gaarigaaga lixdii bilood ama sannad kasta, iyadoo ku xiran nooca. Ma dayactirka saldhiggaaga? Taasi waa, miyaad si joogto ah u sameysaa cilmi baaris qoto dheer? Waa in la sameeyaa. Haddii aad samaysato kayd, ka dib samee hubin, tani muhiim maaha.

Oo waxaan leenahay qalab noocan oo kale ah. Waxay bilowday inay si firfircoon u soo baxdo kaliya saddex bilood ka hor. Weli wuu yar yahay, laakiin wax badan ayaa jira.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Uruurinta kooxaha ugu "saameynta badan" ee weydiimaha - ka warbixinta K003 ee hubinta Postgres

Waxaana jira koox warbixino K. Saddex warbixinood ilaa hadda. Waxaana jirta warbixintan oo kale K003. Waxaa jira meesha ugu sareysa ee pg_stat_statements, oo loo kala soocay total_time.

Markaan u kala saarno kooxaha codsada total_time, meesha ugu sareysa waxaan aragnaa kooxda aadka u rareysa nidaamkayaga, tusaale ahaan isticmaal kheyraad badan. Waa maxay sababta aan u magacaabo kooxaha weydiimaha? Sababtoo ah waxaan tuurnay xuduudaha. Kuwani hadda ma aha codsiyo, laakiin waa kooxo codsiyo, ie. waa la soo koobay.

Haddii aan kor ilaa hoos ka wanaajino, waxaan fududeyn doonaa kheyraadkayaga waxaana dib u dhigi doonaa waqtiga aan u baahanahay inaan kor u qaadno. Tani waa hab aad u wanaagsan oo lacag lagu badbaadiyo.

Waxaa laga yaabaa in tani aysan ahayn hab aad u wanaagsan oo lagu daryeelo dadka isticmaala, sababtoo ah waxaa laga yaabaa inaanan aragno naadir, laakiin kiisas aad u dhib badan oo uu qofku sugay 15 ilbiriqsi. Wadar ahaan, aad bay dhif u yihiin oo aynaan arag, laakiin waxaan la macaamilnaa kheyraadka.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Maxaa ka dhacay shaxdan? Waxaan qaadnay laba sawir. Postgres_checkup wuxuu ku siin doonaa delta mitir kasta: wadarta wakhtiga, wicitaanada, safafka, wadaaga_blks_read, iwm. Taasi waa sidaas, delta waa la xisaabiyay. Dhibaatada weyn ee pg_stat_statements waa in aanay xasuusan markii dib loo dajiyay. Haddii pg_stat_database uu xasuusto, markaa pg_stat_statements ma xasuusto. Waxaad arkaysaa inay jiraan tiro dhan 1, laakiin ma garanayno halka aanu ka tirinay.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Oo halkan waan ognahay, halkan waxaan ku haynaa laba sawir. Waxaan ognahay in delta kiiskan uu ahaa 56 ilbiriqsi. Farqi aad u gaaban. Lagu kala soocay total_time Kadibna waan kala saari karnaa, tusaale ahaan waxaan u qaybineynaa dhammaan cabbirada muddada. Haddii aan u qaybinno mitir kasta muddada, waxaan haysan doonnaa tirada wicitaannada ilbiriqsikiiba.

Marka xigta, total_time ilbiriqsikiiba waa cabbirka aan jeclahay. Waxa lagu qiyaasaa ilbidhiqsiyo, ilbiriqsikii, i.e. imisa ilbiriqsi ayay ku qaadatay nidaamkayaga si loo fuliyo kooxdan codsiyada ilbiriqsi kasta. Haddii aad ku aragto in ka badan ilbiriqsikiiba halkaas, waxay la macno tahay inaad bixisay wax ka badan hal xudun. Tani waa cabbir aad u wanaagsan. Waxaad fahmi kartaa in saaxiibkani, tusaale ahaan, u baahan yahay ugu yaraan saddex geesood.

Tani waa aqoontayada, weligay meelna kuma arag wax la mid ah. Fadlan ogow - tani waa shay aad u fudud - ilbiriqsikiiba. Mararka qaarkood, marka CPU-gaagu yahay 100%, ka dibna nus saac ilbiriqsi kasta, taasi waa, waxaad ku qaadatay nus saac kaliya inaad sameyso codsiyadan.

Marka xigta waxaan aragnaa safafka ilbiriqsikiiba. Waan ognahay inta saf ee ilbiriqsikii ay soo noqotay.

Ka dibna waxaa sidoo kale jira shay xiiso leh. Immisa_buffers ayaanu ka akhrinay ilbidhiqsikii la wadaagay_buffers laftiisa. hits ayaa horayba u jiray, waxaanan ka soo qaadnay safafka khasnadda nidaamka hawlgalka ama diskka. Doorashada koowaad waa dhakhso, ta labaadna waxay noqon kartaa ama ma noqon kartaa mid degdeg ah, iyadoo ku xiran xaaladda.

Habka labaad ee lagu kala soocaa waa in la qaybiyo tirada codsiyada kooxdan. Tiirka labaad waxaad had iyo jeer lahaan doontaa hal su'aal oo loo qaybiyay su'aal kasta. Ka dibna waa wax xiiso leh - imisa ilbiriqsi ayaa ku jiray codsigan. Waan ognahay sida ay waydiintani u dhaqanto celcelis ahaan. 101 millisekd ayaa loo baahnaa codsi kasta. Tani waa cabbirka dhaqameed ee aan u baahanahay inaan fahanno.

Immisa saf ayuu waydiin kasta soo noqday celcelis ahaan? Waxaan aragnaa 8 kooxdan soo laabtay. Celcelis ahaan, inta laga soo qaatay kaydka oo la akhriyay. Waxaan aragnaa in wax walba si wanaagsan loo kaydiyay. Ku dhufashada adag ee kooxda koowaad.

Xadhig-hoosaadka afraad ee xariiq kastaa waa imisa boqolkiiba wadarta guud. Waxaan leenahay wicitaanno. Aynu nidhaahno 1. Waynu fahmi karnaa waxa ay kooxdani soo kordhiso. Waxaan aragnaa in kiiskan kooxda koowaad ay wax ka yar 000%. Taasi waa, aad bay u gaabis tahay oo aynaan ku arkin sawirka guud. Kooxda labaadna waa 000% wicitaanada. Taasi waa, 0,01% dhammaan wicitaanada waa kooxda labaad.

Wadarta_waqtiga sidoo kale waa mid xiiso leh. Waxaan ku bixinay 14% wadarta wakhtiga shaqadeena kooxdii ugu horaysay ee codsiyada. Iyo tan labaad - 11%, iwm.

Ma geli doono faahfaahinta, laakiin waxaa jira waxyaabo qarsoon. Waxaan soo bandhignaa qalad xagga sare ah, sababtoo ah marka aan isbarbardhigno, sawirada sawirada ayaa laga yaabaa inay sabeeyaan, taas oo ah, codsiyada qaar ayaa dhici kara oo ma sii jiri karaan midka labaad, halka qaar cusub ay soo bixi karaan. Halkaasna waxaan ku xisaabineynaa qaladka. Haddii aad aragto 0, markaa taasi way fiican tahay. Ma jiraan khaladaad Haddii heerka khaladku yahay ilaa 20%, waa OK.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Ka dib waxaan ku laabaneynaa mawduuceena. Waxaan u baahannahay inaan samayno culeyska shaqada. Kor ilaa hoos ayaynu ka soo qaadnaa ilaa aynu ka gaarno 80% ama 90%. Caadi ahaan tani waa 10-20 kooxood. Oo waxaan u samaynaa faylasha pgbench. Waxaan u isticmaalnaa si aan toos ahayn halkaas. Mararka qaarkood tani, nasiib daro, ma shaqaynayso. Iyo Postgres 12 waxaa jiri doona fursado badan oo lagu isticmaalo habkan.

Ka dibna waxaan ku kasbanaa 80-90% total_time habkan. Maxaa ku xiga "@" ka dib? Waxaan eegnaa wicitaanada, fiiri inta ay le'eg tahay xiisaha jira oo aan fahamsanahay in aan halkan ku leenahay dulsaar aad u badan. Laga soo bilaabo boqolleydan waxaan ka fahmi karnaa sida loo dheelitiro mid kasta oo ka mid ah faylalka. Taas ka dib waxaan isticmaalnaa pgbench oo aan tagnaa shaqada.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Waxaan sidoo kale haysanaa K001 iyo K002.

K001 waa hal xarig oo weyn oo leh afar xargo hoosaadyo. Tani waa sifada culayskayaga oo dhan. Fiiri tiirka labaad iyo hooska labaad. Waxaan aragnaa in qiyaastii hal iyo badh ilbiriqsi kasta, i.e. haddii ay jiraan laba qaybood, markaa way fiicnaan doontaa. Waxaa jiri doona ku dhawaad ​​75% awoodda Waxayna u shaqayn doontaa sidan. Haddii aan haysano 10 kabo, markaa guud ahaan waan dejin doonaa. Sidan ayaan ku qiimeyn karnaa kheyraadka.

K002 waa waxa aan ugu yeero fasalada weydiinta, ie.XUL, GELI, CUSBOONAYSIIN, TIIR. Oo si gaar ah u dooro cusboonaysiinta, sababtoo ah waa quful.

Oo halkan waxaan ku soo gabagabeyn karnaa in SELECT ay tahay akhristayaasha caadiga ah - 82% dhammaan wicitaannada, laakiin isku mar - 74% wadarta guud_time. Taasi waa, waxaa loogu yeeraa wax badan, laakiin waxay isticmaalaan kheyraad yar.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Oo waxaan ku soo laabanaa su'aasha: "Sideen u dooran karnaa kuwa saxda ah ee la wadaago?" Waxaan u fiirsadaa in bartilmaameedyada intooda badani ay ku saleysan yihiin fikradda - aan aragno waxa la soo saari doono, tusaale ahaan waxa la soo saari doono. Badanaa waxaa lagu cabbiraa TPS ama QPS.

Oo waxaan isku daynaa inaan ka saarno wax kala iibsasho badan ilbiriqsikiiba intii suurtagal ah baabuurka anagoo adeegsanayna cabbirada hagaajinta. Halkan waa 311 ilbiriqsikiiba si aad u doorato.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Laakin ma jiro qof si xawli buuxa leh ugu kaxeeya shaqada iyo guriga. Tani waa nacasnimo. Waxa la mid ah xog-ururinta Ma aha inaan ku wadno xawaare buuxa, qofna ma sameeyo. Qofna kuma noola wax soo saarka, kaas oo leh 100% CPU. Inkastoo, laga yaabo in qof uu nool yahay, laakiin tani ma fiicna.

Fikradda ayaa ah in aan badiyaa ku wadno 20 boqolkiiba awoodda, doorbidaya in aan ka badnayn 50%. Oo waxaan isku daynaa inaan u wanaajino wakhtiga jawaabta isticmaalayaashayada oo dhan. Taasi waa, waa in aan rogronaa gambaleeladayada si ay u jirto ugu yaraan daahitaan 20% ah, shuruud ahaan. Tani waa fikrad aan sidoo kale isku dayno inaan u isticmaalno tijaabooyinkeena.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Ugu dambayntiina, talooyinka:

  • Hubi inaad samayso Database Lab.
  • Haddii ay suurtagal tahay, u samee baahida si ay u soo baxdo in muddo ah - ciyaar oo iska tuur. Haddii aad leedahay daruuro, markaa tani waxay ku socotaa iyada oo aan la odhan, i.e. wax badan oo taagan.
  • Bal u fiirso. Oo haddii ay wax khaldan yihiin, ka dibna ka hubi tijaabooyinka sida ay u dhaqmaan. Nancy waxaa loo isticmaali karaa in lagu tababaro naftaada si aad u hubiso sida salku u shaqeeyo.
  • Oo ujeedo wakhtiga jawaabta ugu yar.
  • Ha ka baqin ilaha Postgres. Markaad la shaqeyso ilo, waa inaad taqaanaa Ingiriisiga. Waxaa jira faallooyin badan halkaas, wax walba waa la sharraxay.
  • Oo si joogto ah u hubi caafimaadka xogta xogta, ugu yaraan hal mar saddexdii biloodba mar, gacanta, ama Baaritaanka Postgres-ka.

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Su'aalahaada

Aad baad u mahadsantahay! Arin aad u xiiso badan.

Laba qaybood.

Haa, laba qaybood. Kaliya anigu si fiican uma fahmin. Marka Nancy iyo aniga aan shaqeyno, ma hagaajin karnaa hal halbeeg ama koox dhan?

Waxaan haynaa cabirka habaynta delta. Waxaad u jeedsan kartaa meesha inta aad rabto hal mar. Laakiin waxaad u baahan tahay inaad fahamto in marka aad wax badan beddesho, aad gaari karto gabagabo khaldan.

Haa Maxaan u waydiiyay? Sababtoo ah way adagtahay in la sameeyo tijaabooyin marka aad haysato halbeeg kaliya. Waad adkaynaysaa, eeg sida ay u shaqeyso. waan saaray. Kadib waxaad bilaabaysaa kan ku xiga.

Isla mar ahaantaana waad adkeyn kartaa, laakiin waxay kuxirantahay xaalada, dabcan. Laakiin way fiicantahay in la tijaabiyo hal fikrad. Waxaan lahaa fikrad shalay. Waxaa na dhex maray xaalad aad isugu dhow. Waxaa jiray laba habayn Oo waanu fahmi kari waynay sababta uu farqi wayn u jiray. Oo fikradda ayaa soo baxday in aad u baahan tahay inaad isticmaasho dichotomy si aad si joogto ah u fahamto oo aad u hesho waxa farqiga u yahay. Isla markiiba waxaad samayn kartaa badh ka mid ah halbeegyada isku mid ah, ka dibna rubuc, iwm. Wax walba waa dabacsan yihiin.

Waxaana jirta hal su'aal oo kale. Mashruucu waa mid da'yar oo soo koraya. Dukumeentigu waa diyaar, ma jiraa sharraxaad faahfaahsan?

Waxaan si gaar ah u sameeyay xiriiriye si uu u qeexo xuduudaha. Waa halkaas Laakiin waxyaabo badan ayaan wali jirin. Waxaan raadinayaa dad isku fikrad ah Oo waxaan ka helaa marka aan bandhigo. Tani waa mid aad u fiican. Qof ayaa durba ila shaqeynaya, qof ayaa caawiyay oo wax ku sameeyay halkaas. Haddii aad xiisaynayso mawduucan, ka bixi jawaab celin waxa maqan.

Marka aan dhisno shaybaarka, waxaa laga yaabaa inay jirto jawaab celin. Aan aragno. Mahadsanid!

Hello! Waad ku mahadsan tahay warbixinta! Waxaan arkay inay jirto taageero Amazon. Ma jiraan qorsheyaal lagu taageerayo GSP?

Su'aal wanaagsan. Waxaan bilownay inaan sameyno. Oo hadda waanu xayirnay sababtoo ah waxaan rabnaa inaan lacag kaydsano. Taasi waa, waxaa jira taageero iyadoo la isticmaalayo ku ordi localhost. Adiga laftaada ayaa tusaale samayn kara oo maxalli ah ayaad ka shaqayn kartaa. By habka, taasi waa waxa aan samayno. Tan waxaan ku sameeyaa Getlab, halkaas GSP. Laakin ma aragno barta in la sameeyo kaliya orchestration-ka noocaas ah weli, sababtoo ah Google ma laha meelo jaban. Waxaa jira ??? tusaale ahaan, laakiin waxay leeyihiin xaddidaadyo. Marka hore, had iyo jeer waxay leeyihiin kaliya qiimo dhimis 70% mana ku ciyaari kartid qiimaha halkaas. Goobaha, waxaanu ku kordhinaa qiimaha 5-10% si loo yareeyo suurtogalnimada in lagugu laadyo. Taasi waa, waxaad kaydisaa dhibco, laakiin waa lagaa qaadi karaa wakhti kasta. Haddii aad dalbato wax ka yar kuwa kale, waa lagu dili doonaa mar dambe. Google wuxuu leeyahay waxyaabo gaar ah oo gebi ahaanba ka duwan. Oo waxaa jira xaddidaad kale oo aad u xun - waxay ku nool yihiin kaliya 24 saacadood. Mararka qaarkood waxaan rabnaa inaan tijaabino 5 maalmood. Laakiin tan waxaad ku samayn kartaa dhibco, dhibco mararka qaarkood waxay dhacaan bilo.

Hello! Waad ku mahadsan tahay warbixinta! Waxaad sheegtay baaritaan. Sideed u xisaabisaa khaladaadka stats_statements?

Su'aal aad u wanaagsan. Waxaan ku tusi karaa oo aan si faahfaahsan kuugu sheegi karaa. Marka la soo koobo, waxaan eegaynaa sida kooxihii codsiyadu u sabbeeyeen: intee ayaa dhacday iyo inta cusub ee soo baxday. Kadibna waxaan eegnaa laba mitir: total_time iyo wicitaanada, markaa waxaa jira laba khalad. Waxaanan eegeynaa wax ku biirinta kooxaha sabeynaya. Waxaa jira laba kooxood oo kala ah: kuwa baxay iyo kuwa yimid. Aan aragno waxa ay ku soo kordhinayaan sawirka guud.

Miyaanad ka baqayn inay halkaas u soo jeedsato laba ama saddex jeer inta u dhaxaysa sawir-qaadista?

Yacni, miyay is diwaan galiyeen mar kale mise waa maxay?

Tusaale ahaan, codsigan mar hore ayaa laga sii hormariyay, ka dibna wuu yimid oo haddana la sii hor-dhigay, haddana wuu soo noqday oo haddana la sii hor-dhigay. Oo halkan wax baad ku xisaabisay, oo aaway dhammaantiis?

Su'aal wanaagsan, waa inaan eegno.

Waxaan sameeyay wax la mid ah. Way ka fududayd, dabcan, keligay ayaan sameeyay. Laakiin waxay ahayd inaan dib u dajiyo, dib u dajiyo stat_statements oo aan ogaado wakhtiga sawirka sawirka in ay ka yar tahay jajab gaar ah, taas oo aan wali gaadhin saqafka inta ay le'eg tahay stat_statements ayaa ku urursan kara halkaas. Fahamkaygana waa, in ay u badan tahay, in aan waxba la barakicin.

Haa Haa.

Laakiin ma fahmin sida kale ee loo sameeyo si la isku halleyn karo.

Nasiib darro, si sax ah uma xasuusto haddii aan ku isticmaalno qoraalka weydiinta halkaas ama aan ku isticmaalno pg_stat_statements oo aan diiradda saarno. Haddii aan diiradda saarno queryid, markaa aragti ahaan waxaan isbarbardhigeynaa waxyaabo la mid ah.

Maya, dhowr jeer ayaa lagu qasbi karaa inta u dhexeysa sawir-qaadista oo uu soo noqdo mar kale.

La mid ah id?

Haa.

Waan baran doonaa tan. Su'aal wanaagsan. Waxaan u baahanahay inaan barano. Laakiin hadda, waxa aan aragno midkood ayaa qoran 0...

Tani, dabcan, waa kiis naadir ah, laakiin waan naxay markii aan ogaaday in stat_statemetns ay ku barakici karaan halkaas.

Waxyaabo badan ayaa ku jiri kara Pg_stat_statements. Waxaan la kulannay xaqiiqda ah in haddii aad leedahay track_utility = shidan, markaa qalabkaaga sidoo kale waa la raad raacaa.

Haa, dabcan.

Oo haddii aad leedahay java hibernate, taas oo ah random, markaa miiska xashiishka wuxuu bilaabaa inuu ku yaal halkaas. Oo isla marka aad damiso codsi aad u raran, waxaad ku dambaynaysaa 50-100 kooxood. Wax walbana way sii deggan yihiin ama way ka yar yihiin halkaas. Hal dariiqo oo tan lagula dagaalamo waa in la kordhiyo pg_stat_statements.max.

Haa, laakiin waxaad u baahan tahay inaad ogaato inta. Oo si uun baan u baahan nahay inaan isha ku hayno isaga. Taasi waa waxa aan sameeyo. Taasi waa, waxaan haystaa pg_stat_statements.max. Waxaanan arkaa in wakhtiga sawirka la qaaday aanan gaadhin 70%. Hagaag, markaa waxba nagama lumin. Aan dib u dajinno. Oo haddana waan badbaadinay. Haddii sawirka soo socda uu ka yar yahay 70, markaa waxay u badan tahay inaadan mar dambe waxba lumin.

Haa Kharashku hadda waa 5. Tanina dad badan ayaa ku filan.

Caadiyan haa.

Video:

PS Anigoo ku hadlaya magacayga, waxaan ku dari doonaa haddii Postgres ay ka kooban tahay xog sir ah oo aan lagu dari karin deegaanka tijaabada, markaa waxaad isticmaali kartaa PostgreSQL Anonymizer. Nidaamku waa qiyaastii sida soo socota:

Habka warshadaha ee PostgreSQL tuning: tijaabooyin ku saabsan database-yada." Nikolay Samokhvalov

Source: www.habr.com

Add a comment