Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Nuqul ka mid ah warbixinta 2015 ee Ilya Kosmodemyansky "Linux tuning si loo horumariyo waxqabadka PostgreSQL"

Afeef: Waxaan ogsoonahay in warbixintani ay ku taariikhaysan tahay November 2015 - in ka badan 4 sano ayaa ka soo wareegtay waqti badana ka soo wareegay. Nooca 9.4 ee lagaga hadlay warbixinta hadda lama taageero. 4tii sano ee la soo dhaafay, 5 sii dayn cusub oo PostgreSQL ah ayaa la sii daayay, iyo 15 nooc oo kernel Linux ah ayaa la sii daayay. Haddii aad dib u qorto tuducyadan, waxaad ku dambayn doontaa warbixin ka duwan. Laakiin halkan waxaan ku tixgelineynaa hagaajinta aasaasiga ah ee Linux ee PostgreSQL, kaas oo wali khuseeya maanta.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky


Magacaygu waa Ilya Kosmodemyansky. Waxaan ka shaqeeyaa PostgreSQL-Consulting. Oo hadda waxaan ka hadli doonaa wax yar oo ku saabsan waxa lagu sameeyo Linux ee la xidhiidha xog-ururinta guud ahaan iyo gaar ahaan PostgreSQL, sababtoo ah mabaadi'da ayaa aad isku mid ah.

Maxaan ka hadli doonaa? Haddii aad la xiriirto PostgreSQL, markaa ilaa xad waxaad u baahan tahay inaad noqoto maamule UNIX. Waxa loola jeedaa? Haddii aan is barbar dhigno Oracle iyo PostgreSQL, markaa gudaha Oracle waxaad u baahan tahay inaad ahaato 80% maamulaha xogta DBA iyo 20% maamulaha Linux.

Markay tahay PostgreSQL way ka sii dhib badan tahay. PostgreSQL waxaad u baahan tahay inaad si fiican u fahanto sida Linux u shaqeeyo. Isla mar ahaantaana, orod wax yar ka bacdi socodka, sababtoo ah waayadan wax walba si fiican ayaa loo cusboonaysiiyay. Oo kernels cusub ayaa la sii daayaa, oo shaqeyn cusub ayaa soo baxda, waxqabadka ayaa horumaraya, iwm.

Maxaynu uga hadlaynaa Linux? Ma aha dhammaan sababtoo ah waxaan joognaa shirka Linux Peter, laakiin sababtoo ah xaaladaha casriga ah mid ka mid ah nidaamyada hawlgalka ugu cadcad ee isticmaalka xogta guud ahaan iyo gaar ahaan PostgreSQL waa Linux. Sababtoo ah FreeBSD, nasiib daro, waxay ku horumaraysaa jiho aad u qariib ah. Waxaana jiri doona dhibaatooyin xagga waxqabadka iyo waxyaabo kale oo badan labadaba. Waxqabadka PostgreSQL ee Windows guud ahaan waa arrin gaar ah oo halis ah, taas oo ku saleysan xaqiiqda ah in Windows uusan lahayn xusuusta la wadaago ee UNIX, halka PostgreSQL ay dhammaantood ku xiran tahay tan, sababtoo ah waa nidaam geedi socod badan.

Oo waxaan u maleynayaa in qof kastaa uu aad u xiiseynayo qalaad sida Solaris, markaa aan tagno.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Qaybinta casriga ah ee Linux waxa ay leedahay in ka badan 1 doorasho syctl, taas oo ku xidhan sida aad u dhisto kernel-ka. Isla mar ahaantaana, haddii aan eegno nuts kala duwan, waxaan ku hagaajin karnaa wax siyaalo badan. Waxaa jira cabirro nidaamka faylalka sida loo dhejiyo. Haddii aad hayso su'aalo ku saabsan sida loo bilaabo: waxa lagu suurtagelinayo BIOS, sida loo habeeyo qalabka, iwm.

Kani waa mug aad u weyn oo dhowr maalmood laga doodi karo, mana aha hal warbixin oo kooban, laakiin hadda waxaan diiradda saari doonaa waxyaabaha muhiimka ah, sida looga fogaado kuwa rashka ah ee la dammaanad qaaday inay kaa ilaalinayaan inaad si fiican u isticmaasho database-kaaga Linux haddii aad rabto. ha sixin . Isla mar ahaantaana, qodob muhiim ah ayaa ah in qaar badan oo ka mid ah xuduudaha caadiga ah aan lagu darin goobaha saxda ah ee kaydinta. Taasi waa, marka la eego waxay u shaqeyn doontaa si liidata ama maba shaqeyneyso.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Waa maxay bartilmaameedyada habaynta dhaqameed ee ka jira Linux? Waxaan u maleynayaa in maadaama aad dhammaantiina la macaamilayso maamulka Linux, ma jirto baahi gaar ah oo lagu sharraxayo waxa bartilmaameedyadu yihiin.

Waxaad hagaajin kartaa:

  • PROCESSOR.
  • Xusuusta
  • Kaydinta.
  • Mid kale. Waxaan uga hadli doonaa tan dhamaadka cunto fudud. Xitaa, tusaale ahaan, halbeegyada sida siyaasadda badbaadinta tamarta waxay saameyn kartaa waxqabadka si aan la saadaalin karin oo aan ahayn habka ugu fiican.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Maxay yihiin waxyaabaha gaarka ah ee PostgreSQL iyo xogta guud ahaan? Dhibaatadu waxay tahay inaadan bedeli karin lowska shakhsi ahaaneed oo aad aragto in waxqabadkayagu si weyn u horumaray.

Haa, waxaa jira qalab noocaas ah, laakiin database-ku waa shay adag. Waxay la falgashaa dhammaan agabka uu serverku leeyahay waxayna door bidaa inay si buuxda ula falgalaan. Haddii aad eegto talooyinka hadda ee Oracle ee ku saabsan sida loo isticmaalo OS-ga martida loo yahay, waxay la mid noqon doontaa kaftankii ku saabsanaa Mongolian cosmonaut-ka quudi eeyga oo waxba ha taaban. Aynu siino kaydka macluumaadka oo dhan, kaydinta xogta lafteeda ayaa wax walba xallin doonta.

Mabda 'ahaan, ilaa xad xaaladdu waxay la mid tahay PostgreSQL. Farqiga u dhexeeya ayaa ah in kaydku aanu weli awoodin inuu qaato dhammaan agabka laftiisa, tusaale ahaan meel heerka Linux ah waxaad u baahan tahay inaad adigu xalliso dhammaan.

Fikradda ugu weyni maaha in la doorto hal bartilmaameed oo la bilaabo hagaajintiisa, tusaale ahaan, xusuusta, CPU ama wax la mid ah, laakiin waa in la falanqeeyo culeyska shaqada oo la isku dayo in la hagaajiyo wax soo saarka inta suurtogalka ah si culeyska ay u abuureen barnaamij-yaqaannada wanaagsan. anaga, oo ay ku jiraan isticmaalayaashayada.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Halkan waxaa ah sawir si aad u sharaxdo waxa ay tahay. Waxaa jira Linux OS baffer waxaana jira xusuusta la wadaago waxaana jira kaydiyayaal la wadaago PostgreSQL. PostgreSQL, oo ​​ka duwan Oracle, waxay si toos ah u shaqeysaa kaliya iyada oo loo marayo kernel baffer, tusaale ahaan, si bogga ka soo baxa diskka uu u galo xusuusta la wadaago, waa inuu dhex maraa kernel buffer iyo gadaal, xaalad isku mid ah.

Disk-yadu waxay ku hoos nool yihiin nidaamkan. Tan waxaan u sawiray saxan ahaan. Dhab ahaantii, waxaa jiri kara kontaroolaha RAID, iwm.

Oo wax-soo-saarkan si uun ama si kale ayay u dhacdaa arrintan.

PostgreSQL waa xog ururin caadi ah. Gudaha waxaa ku yaal bog Dhammaan gelinta iyo soo saarista waxay ku dhacaan boggag. Waxaan kor u qaadaynaa baloogyada xusuusta leh bogag. Oo haddii aysan waxba dhicin, kaliya waan akhrinay, ka dibna si tartiib tartiib ah ayay uga baxaan khasnaddan, oo ka soo jeeda kaydiyeyaasha la wadaago oo ay dib ugu noqdaan diskka.

Haddii aan wax ku beddelno meel, markaa bogga oo dhan waxaa lagu calaamadiyay sida wasakh. Halkan waxaan ku calaamadiyay buluug. Waxayna tani ka dhigan tahay in boggan uu la mid yahay kaydinta block. Yacni, markii aanu wasakhaysanay, waxaanu galnay WAL. Oo wakhti aad u cajiib ah, waxaa timid dhacdo la yiraahdo isbaaro. Waxaana lagu qoray buuggan in uu yimid xog. Tani waxay ka dhigan tahay in dhammaan boggaga wasakhaysan ee wakhtigaas ku jiray kaydiyeyaashan la wadaago ay la midoobeen saxanka kaydinta iyadoo la adeegsanayo fsync iyada oo loo marayo kernel buffer.

Maxaa tan loo sameynayaa? Haddii aan luminay koronto, ka dibna ma aanan helin xaaladda in dhammaan xogta lumay. Xusuusta joogtada ah, oo qof kastaa noo sheegay, waa ilaa hadda in database database - kani waa mustaqbal ifaya, kaas oo aan, dabcan, ku dadaalaan oo aan jeclahay, laakiin hadda waxay ku nool yihiin in laga jaray 20 sano. Iyo, dabcan, waxaas oo dhan waxay u baahan yihiin in lala socdo.

Hawsha sare u qaadida wax-soo-saarka ayaa ah in la hagaajiyo dhammaan marxaladahaas si ay dhammaan hore iyo dib ugu socdaan si degdeg ah. Xusuusta la wadaago asal ahaan waa kayd bog. Gudaha PostgreSQL waxaan u dirnay su'aal door ah ama wax, waxay ka soo saartay xogtan diskka. Waxay ku danbeeyeen meelo la wadaago. Sidaas awgeed, si ay tani si fiican u shaqeyso, waa in ay jiraan xusuus badan.

Si ay waxaas oo dhami u shaqeeyaan si wanaagsan oo degdeg ah, waxaad u baahan tahay inaad si sax ah u habaynayso nidaamka hawlgalka marxaladaha oo dhan. Oo dooro qalab dheellitiran, sababtoo ah haddii aad isku dheelitirnaan la'aan tahay meel ka mid ah, markaa waxaad samayn kartaa xasuus badan, laakiin laguma adeegi doono xawaare ku filan.

Haddaba aan dulmarno mid kasta oo ka mid ah qodobadan.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Si aad uga dhigto bogaggan in ay hore iyo dib ugu socdaan si degdeg ah, waxaad u baahan tahay inaad gaadho kuwan soo socda:

  • Marka hore, waxaad u baahan tahay inaad si hufan ugu shaqeyso xusuusta.
  • Marka labaad, kala-guurkan marka boggaga xusuusta ah ay tagaan diskka waa inay noqdaan kuwo waxtar badan.
  • Marka saddexaadna waa inay jiraan saxanno wanaagsan.

Haddii aad haysato 512 GB oo RAM ah oo ku jira server-ka oo dhan waxay ku dhammaanayaan SATA adag oo aan lahayn wax kayd ah, markaa dhammaan server-ka database-ka wuxuu u beddelaa ma aha bocorka, laakiin bocorka leh interface SATA. Waxaad si toos ah u gali doontaa. Waxna kuma badbaadin doono.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Marka la eego qodobka koowaad ee xusuusta, waxaa jira saddex shay oo nolosha ka dhigi kara mid aad u adag.

Kuwa ugu horreeya waa NUMA. NUMA waa shay loo sameeyay si loo horumariyo waxqabadka. Iyadoo ku xiran culeyska shaqada, waxyaabo kala duwan ayaa la hagaajin karaa. Iyo qaabkeeda cusub ee hadda, aad uguma fiicna codsiyada sida xog-ururinta ee sida aadka ah u isticmaala kaydka bogga la wadaago.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Si kooban. Sidee ku ogaan kartaa haddii ay wax ka khaldan yihiin NUMA? Waxaad haysataa nooc ka mid ah garaacid aan fiicneyn, si lama filaan ah qaar ka mid ah CPU ayaa culeys badan saaran yahay. Isla mar ahaantaana, waxaad ku falanqeysaa su'aalaha PostgreSQL oo aad aragto inaysan jirin wax la mid ah halkaas. Weydiimahani waa in aanay noqon kuwo aad u xoogan CPU. Waxaad tan qaadi kartaa muddo dheer. Way sahlan tahay in la isticmaalo talada saxda ah bilowga hore ee ku saabsan sida loo habeeyo NUMA ee PostgreSQL.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Maxaa dhacaya runtii? NUMA waxay u taagan tahay Helitaanka Xusuusta Aan-Labbiska ahayn. Maxaa dan ah? Waxaad haysataa CPU, agtiisa waxaa ku yaal xusuusta maxalliga ah. Xidhiidhiyaha xusuustani waxa uu soo jiidan karaa xusuusta CPU-yada kale.

Haddaad cararto numactl --hardware, markaas waxaad heli doontaa xaashi weyn. Waxyaabaha kale, waxaa jiri doona garoonka masaafada. Waxaa jiri doona tirooyin - 10-20, wax la mid ah. Nambaradani waa wax aan ka badnayn tirada hops si loo soo qaado xusuusta fog oo loo isticmaalo gudaha. Mabda 'ahaan, fikrad wanaagsan. Tani waxay si fiican u dedejisaa waxqabadka iyadoo la raacayo culaysyo shaqo oo kala duwan.

Hadda ka fikir inaad haysato hal CPU marka hore isku dayaya inuu isticmaalo xusuusta maxalliga ah, ka dibna isku day inaad soo jiidato xusuusta kale adoo isku xiraya shay. CPU-gani wuxuu helayaa kaydinta boggaga PostgreSQL oo dhan - taasi waa, xoogaa gigabytes ah. Had iyo jeer waxaad helaysaa kiiskii ugu xumaa, sababtoo ah CPU-ga waxaa jira inta badan xusuusta yar ee qaybtaas lafteeda. Dhammaan xusuusta lagu adeegtona waxay martaa isku-xidhaneyaashan. Waxay u soo baxdaa gaabis iyo murugo. Iyo Processor-kaaga adeega noodhkan si joogto ah u raran. Iyo wakhtiga gelitaanka xusuustani waa mid xun, gaabis ah. Tani waa xaaladda aadan rabin haddii aad tan u isticmaalayso xog ururin.

Sidaa darteed, ikhtiyaarka saxda ah ee kaydinta xogta ayaa ah nidaamka hawlgalka Linux si uusan u ogaanin waxa halkaas ka socda gabi ahaanba. Si ay u hesho xusuusta sida ay u shaqeyso.

Waa maxay sababtu? Waxay u egtahay in ay tahay si kale. Tani waxay ku dhacdaa hal sabab oo fudud: waxaan u baahanahay xasuus badan oo loogu talagalay khasnadda bogga - tobanaan, boqollaal gigabytes.

Haddii aan intaas oo dhan u qoondayno oo aan ku kaydinno xogtayada halkaas, markaa faa'iidada laga helayo isticmaalka kaydinta ayaa si weyn uga weynaan doonta faa'iidada laga helayo gelitaanka adag ee xusuusta. Oo waxaan markaa ka faa'iidaysan doonaa si aan la barbar dhigi karin marka la barbar dhigo xaqiiqda ah inaan si hufan u heli doono xusuusta iyadoo la adeegsanayo NUMA.

Sidaa darteed, waxaa jira laba waji oo halkan ah waqtigan, ilaa mustaqbalka ifaya uu yimaado, database-ka laftiisana ma awoodo inuu ogaado CPU-yada uu ku shaqeeyo iyo meesha uu u baahan yahay inuu wax ka soo jiido.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Sidaa darteed, habka saxda ah waa in la joojiyo NUMA gebi ahaanba, tusaale ahaan, marka dib loo bilaabo. Xaaladaha intooda badan, guuluhu waa amarradan oo kale ah oo su'aasha ah midkee ka fiicani ma soo baxayso gabi ahaanba.

Waxaa jira ikhtiyaar kale. Waxaan u isticmaalnaa in ka badan kii hore, sababtoo ah marka macmiilku noo yimaado taageero, dib-u-kicinta server-ka waa arrin weyn isaga. Meesha ganacsi ayuu ku leeyahay. Waxayna la kulmaan dhibaatooyin sababtoo ah NUMA. Sidaa darteed, waxaan isku dayeynaa inaan ku baabi'inno habab aan fiicneyn oo ka yar dib u kicinta, laakiin ka taxaddar inaad hubiso inay naafo tahay. Sababtoo ah, sida waayo-aragnimadu muujinayso, way wanaagsan tahay inaan NUMA ka joojino nidaamka PostgreSQL ee waalidka, laakiin maahan wax lagama maarmaan ah in ay shaqeyn doonto. Waxaan u baahanahay inaan hubino oo aragno inay runtii damisay.

Waxaa jira qoraal wanaagsan oo uu qoray Robert Haas. Tani waa mid ka mid ah ballanqaadayaasha PostgreSQL. Mid ka mid ah horumariyeyaasha muhiimka ah ee dhammaan gibiladaha heerka hoose. Oo haddii aad raacdo xiriirinta qoraalkan, waxay sharraxayaan dhowr sheeko oo midab leh oo ku saabsan sida NUMA ay nolosha uga dhigtay mid adag. Fiiri, baro liiska hubinta maamulaha nidaamka ee waxa loo baahan yahay in lagu habeeyo server-ka si xogtayadu si fiican ugu shaqeyso. Goobahani waxay u baahan yihiin in la qoro oo la hubiyo, sababtoo ah haddii kale aad uma fiicnaan doonto.

Fadlan ogow in tani ay khusayso dhammaan goobaha aan ka hadli doono. Laakiin sida caadiga ah xog-ururinta waxa lagu soo ururiyaa habka addoonsiga si loogu dulqaado khaladaadka. Ha iloobin inaad u sameyso goobahan adoo ku dhejinaya sababtoo ah maalin maalmaha ka mid ah ayaa ku dhici doonta shil waxaadna u wareegi doontaa addoonka waxayna noqon doontaa sayid.

Xaalad degdeg ah, marka wax walba ay aad u xun yihiin, telefoonkaagu si joogto ah ayuu u garaacayaa oo madaxaagu uu la socdo ul weyn, ma heli doontid wakhti aad ku fekerto inaad hubiso. Natiijaduna waxay noqon kartaa mid aad u xun.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Qodobka xiga waa bogag waaweyn. Bogagga waaweyn way adag tahay in si gooni ah loo tijaabiyo, mana jirto wax macno ah in sidaas la sameeyo, inkastoo ay jiraan jaangooyooyin taas samayn kara. Way fududahay Google.

Maxaa dan ah? Waxaad haysataa server aan qaali ahayn oo RAM badan leh, tusaale ahaan, in ka badan 30 GB. Ma isticmaaleysid bogag waaweyn Tani waxay ka dhigan tahay inaad hubaal ahaan leedahay lacag dheeraad ah marka loo eego isticmaalka xusuusta. Dusha sarena waa ka fog tahay tan ugu wacan.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Waa maxay sababtu? Haddaba maxaa dhacaya? Nidaamka hawlgalka wuxuu u qaybiyaa xusuusta qaybo yaryar. Aad bay u habboon tahay, waa sida ay u dhacday taariikh ahaan. Haddii aan si faahfaahsan u tagno, OS-gu waa inuu u tarjumaa ciwaannada casriga ah kuwo muuqaal ah. Habkanina ma aha kan ugu fudud, marka OS-gu wuxuu kaydiyaa natiijada hawlgalkan ee Turjumaadda Lookaside Buffer (TLB).

Oo maadaama TLB uu yahay kayd, dhammaan dhibaatooyinka ku jira kaydku waxay soo baxaan xaaladdan. Marka hore, haddii aad haysato RAM badan oo dhammaan loo qoondeeyay qaybo yaryar, markaa kaydkani wuxuu noqonayaa mid aad u weyn. Oo haddii kaydku weyn yahay, ka dib raadinta iyada ayaa ah mid gaabis ah. Dusha sare waa caafimaad qabta lafteedu waxay qaadataa meel bannaan, tusaale ahaan RAM waxaa isticmaala shay khaldan. Markan.

Laba - mar kasta oo kaydku ku kordho xaaladdan oo kale, waxay u badan tahay inay kuu badan tahay inaad kaydsato. Waxayna waxtarka kaydkan si degdeg ah hoos ugu dhacaysaa marka uu cabbirkiisu kordho. Sidaa darteed, nidaamyada hawlgalka waxay la yimaadeen hab fudud. Waxaa loo isticmaalay Linux muddo dheer. Waxay ka soo muuqatay FreeBSD waqti aan sidaas u fogayn ka hor. Laakiin waxaan ka hadleynaa Linux. Kuwani waa bogag waaweyn.

Oo halkan waa in lagu ogaadaa in bogag waaweyn, fikrad ahaan, ay markii hore riixeen bulshooyinka ay ka mid yihiin Oracle iyo IBM, tusaale ahaan soosaarayaasha xogta waxay si adag u maleeyeen in tani ay sidoo kale faa'iido u leedahay kaydinta xogta.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Sideese tan loogu saaxiibi karaa PostgreSQL? Marka hore, bogag waaweyn waa in laga dhex geliyo kernel Linux.

Marka labaad, waa in si cad loogu qeexaa parameter-ka sysctl - inta jira. Nambarada halkan waxay ka yimaaddeen qaar ka mid ah server-kii hore. Waxaad xisaabin kartaa inta kayd la wadaago ee aad haysato si bogag waaweyni halkaas ugu habboonaadaan.

Oo haddii server-kaaga oo dhan uu u heellan yahay PostgreSQL, markaa meesha ugu wanaagsan ee laga bilaabo waa in loo qoondeeyo midkood 25% RAM-ka kaydiyeyaasha la wadaago, ama 75% haddii aad hubto in xogtaada ay xaqiiqdii ku habboon tahay 75%. Barta koowaad. Oo ka fiirso, haddii aad haysato 256 GB oo RAM ah, markaa, si waafaqsan, waxaad yeelan doontaa 64 GB ee kaydinta waaweyn. Ku xisaabi qiyaastii iyadoo xoogaa yar ah - waxa ay tahay in tiradan lagu dejiyo.

Kahor nooca 9.2 (haddii aanan khaldanayn, laga soo bilaabo nooca 8.2), waxaa suurtogal ah in lagu xidho PostgreSQL oo leh bogag waaweyn iyadoo la adeegsanayo maktabad dhinac saddexaad ah. Taasna waa in mar walba la sameeyaa. Marka hore, waxaad u baahan tahay kernel si aad u awooddo inaad si sax ah u qoondayso bogag waaweyn. Iyo, marka labaad, si codsiga iyaga la shaqeeya ay u isticmaali karaan. Kaliya sidaas looma isticmaali doono. Maaddaama PostgreSQL u qoondaysay xusuusta habka 5, tan waxaa lagu samayn karaa iyadoo la isticmaalayo libhugetlbfs - kani waa magaca buuxa ee maktabadda.

9.3, waxqabadka PostgreSQL ayaa la hagaajiyay marka la shaqeynayo xusuusta iyo nidaamka 5 habka qoondaynta xusuusta ayaa laga tagay. Qof kastaa aad buu u faraxsanaa, sababtoo ah haddii kale waxaad isku daydaa inaad ku socodsiiso laba xaaladood oo PostgreSQL hal mishiin, oo wuxuu sheegay in aanan haysan xasuus ku filan oo la wadaago. Wuxuuna sheegay in sysctl uu u baahan yahay in la saxo. Oo waxaa jira sysctl noocan oo kale ah oo aad weli u baahan tahay inaad dib u bilowdo, iwm. Guud ahaan, qof kastaa wuu ku faraxsanaa. Laakin qoondaynta xusuusta mmap ayaa jebisay isticmaalka bogag waaweyn. Inta badan macaamiisheena waxay isticmaalaan bakhaarro waaweyn oo la wadaago. Oo waxaan si adag ugu talinay inaan loo bedelin 9.3, sababtoo ah waxaa la bilaabay in lagu xisaabiyo boqolkiiba wanaagsan.

Laakin bulshadu waxay fiiro gaar ah u yeelatay dhibaatadan oo 9.4 ay si wanaagsan dib ugu habeeyeen dhacdadan. Iyo 9.4 halbeeg ayaa ka soo muuqday postgresql.conf kaas oo aad awood u siin karto isku day, shid ama dami.

Isku day waa doorashada ugu badbaadsan. Marka PostgreSQL bilaabato, marka ay qoondayso xusuusta la wadaago, waxay isku daydaa inay ka qabato xusuustan bogagga waaweyn. Oo haddii aysan shaqayn, markaas waxay dib ugu noqotaa xulashada caadiga ah. Oo haddii aad leedahay FreeBSD ama Solaris, markaa waad isku dayi kartaa, had iyo jeer waa ammaan.

Hadday socoto, markaa si fudud uma bilaabmayso haddii ay ka dooran kari wayday bogagga waaweyn. Halkan waxay mar hore ku saabsan tahay cidda iyo waxa ka fiican. Laakiin haddii aad isku daydo, ka dibna hubi inaad runtii haysatid waxa aad u baahan tahay, sababtoo ah waxaa jira meelo badan oo qalad ah. Hadda shaqadani waxay ku shaqeysaa Linux kaliya.

Hal qoraal oo kale oo yar ka hor intaanan sii gudbin. Bogagga waaweyn ee hufan weli kuma saabsan PostgreSQL. Si caadi ah uma isticmaali karo. Iyo bogag waaweyn oo hufan oo loogu talagalay culeyska shaqada oo kale, marka qayb weyn oo xusuusta la wadaago loo baahdo, faa'iidooyinku waxay la yimaadaan oo keliya tiro aad u weyn. Haddii aad leedahay terabyte-ka xusuusta markaas tani waxaa laga yaabaa inay ciyaarta gasho. Haddii aan ka hadlayno codsiyo badan oo maalinle ah, marka aad haysato 32, 64, 128, 256 GB ee xusuusta mashiinkaaga, markaa boggaga waaweyn ee caadiga ah waa Ok, waxaanan si fudud u joojinaa Transparent.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Iyo waxa ugu dambeeya ee ku saabsan xusuusta si toos ah ula xiriirin miraha, waxay runtii burburin kartaa noloshaada. Dhammaan wax-soo-saarka ayaa si weyn u saameyn doona xaqiiqda ah in server-ku si joogto ah u beddelayo.

Oo tani waxay noqon doontaa mid aad u xun siyaabo dhowr ah. Dhibaatada ugu weyni waa in kernels casriga ahi u dhaqmaan wax yar ka duwan kii hore ee Linux. Tani waa arrin aad u xun in la sii wado, sababtoo ah marka aan ka hadalno nooc ka mid ah shaqada oo leh isdhaafsi, waxay ku dhammaaneysaa imaatinka aan waqtigiisa ahayn ee dilaaga OOM. OoM-killer, oo aan ku iman waqtigii loogu talagalay oo ka tuuray PostgreSQL, waa wax aan fiicnayn. Qof kastaa wuu ogaan doonaa arrintan, taas oo ah, ilaa isticmaalaha ugu dambeeya.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Maxaa dhacaya? Waxaad haysataa qadar badan oo RAM ah, wax walba si fiican ayey u shaqeeyaan. Laakiin sabab qaar ka mid ah server-ku wuxuu ku laalaa isweydaarsiga oo hoos u dhigaa sababtaas awgeed. Waxay u egtahay in ay jirto xusuus badan, laakiin tani way dhacdaa.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Markii hore, waxaan kugula talinnay in vm.is-beddelashada lagu dejiyo eber, ie. curyaaminta isku beddelashada. Markii hore, waxay u muuqatay in 32 GB ee RAM iyo kaydiyeyaasha la wadaago ee u dhigma ay ahaayeen qaddar aad u badan. Ujeedada ugu weyn ee isdhaafsiga waa in la helo meel aan qolof ka tuurno haddii aan ka dhacno. Oo hadda si gaar ah looma dhammaystirin. Oo markaas maxaad ku samayn doontaa qolofkan? Tani waa hawl aan aad u caddayn sababta isdhaafsiga loogu baahan yahay, gaar ahaan cabbirka noocaas ah.

Laakiin in ka badan oo casri ah, i.e., noocyada saddexaad ee kernel, habdhaqanka ayaa isbeddelay. Oo haddii aad dejiso beddelka eber, i.. demi, ka dibna dhaqso ama dambe, xitaa haddii ay jiraan waxoogaa RAM ah, dilaa OOM ayaa kuu iman doona si uu u dilo macaamiisha ugu degdegga badan. Sababtoo ah wuxuu tixgelin doonaa in culeyska shaqada ee noocan oo kale ah aan wali wax yar ka harno oo aan ka boodi doonno, tusaale ahaan, ma aha in la dhajiyo habka nidaamka, laakiin inaan ciddino wax yar oo muhiim ah. Midkan aan muhiimka ahayn wuxuu noqon doonaa macaamiisha degdega ah ee xusuusta la wadaago, oo ah maamulaha boostada. Taas ka dib way fiicnaan doontaa haddii aan saldhigga dib loo soo celin.

Sidaa darteed, hadda sida caadiga ah, inta aan xasuusto, inta badan qaybinta ayaa ah meel ku dhow 6, i.e. meesha ay tahay inaad bilowdo isticmaalka beddelka iyadoo ku xiran inta xusuusta ka hartay. Waxaan hadda kugula talineynaa dejinta vm.swappiness = 1, sababtoo ah tani si dhab ah ayey u damisay, laakiin ma bixiso saameyn la mid ah kan dilaaga OOM oo si lama filaan ah u yimid oo dilay wax walba.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Maxaa xiga? Marka aan ka hadalno waxqabadka xogta macluumaadka oo si tartiib tartiib ah ugu dhaqaaqno saxanadaha, qof kastaa wuxuu bilaabaa inuu madaxiisa qabsado. Sababtoo ah runta in diskku uu gaabis yahay, xusuustana aad u dhaqso badan tahay qof kastaa wuu yaqaan ilaa carruurnimadii. Oo qof kastaa wuu ogyahay in database-ku uu yeelan doono dhibaatooyin waxqabadka diskka.

Dhibaatada waxqabadka ugu weyn ee PostgreSQL ee la xiriirta isbaarada isbaarada ma dhacdo sababtoo ah saxanku wuu gaabiyaa. Tani waxay u badan tahay inay sabab u tahay xaqiiqda ah in xusuusta iyo xajmiga diskku aysan isku dheelitirnayn. Si kastaba ha ahaatee, waxaa laga yaabaa inaysan isku dheelitirnayn meelo kala duwan. PostgreSQL lama habbayn, OS-gu ma habaysan, qalabku ma habbayn iyo qalabku waa khaldan yahay. Dhibaatadani ma dhacdo kaliya haddii wax walba ay u dhacaan sidii ay ahayd, i.e. ama ma jiraan wax culeys ah, ama goobaha iyo qalabka si fiican loo doortay.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Waa maxay iyo sida uu u eg yahay? Sida caadiga ah dadka la shaqeeya PostgreSQL waxay galeen arrintan wax ka badan hal mar. waan sharxi doonaa Sidaan u idhi, PostgreSQL waxay samaysaa isbaarooyin si ay ugu daadiso bogag wasakh ah xusuusta la wadaago diskka. Haddii aan haysano qadar badan oo xusuusta la wadaago, markaa isbaarada waxay bilaabataa inay saameyn xooggan ku yeelato diskka, sababtoo ah waxay ku daadisaa bogaggan fsync. Waxay ku timaadaa kernel buffer waxaana lagu qoraa saxanadaha iyadoo la isticmaalayo fsync. Oo haddii mugga ganacsigani uu weyn yahay, markaa waxaan ilaalin karnaa saameyn aan fiicneyn, taas oo ah isticmaalka aad u weyn ee saxanadaha.

Halkan waxaan ku hayaa laba sawir. Hadda waxaan sharxi doonaa waxa ay tahay. Kuwani waa laba garaaf oo wakhtiga ku xidhan. Shaxda ugu horeysa waa isticmaalka diskka. Halkan waxa ay gaadhay ku dhawaad ​​90% wakhtigan xaadirka ah. Haddii aad haysatid kayd xogeed oo ku fashilmay saxannada jireed, oo leh isticmaalka kontoroolka RAID ee 90%, markaa tani waa war xun. Tani waxay ka dhigan tahay in in yar oo dheeraad ah oo ay gaari doonto 100 iyo I/O ayaa joogsan doona.

Haddii aad leedahay array disk ah, markaa waa sheeko yar oo ka duwan. Waxay kuxirantahay sida loo habeeyey, nooca arraygu yahay, iwm.

Marka la barbar dhigo, garaaf laga soo qaatay aragtida postgres gudaha ayaa halkan lagu habeeyay, kaas oo sheegaya sida isbaaradu u dhacdo. Iyo midabka cagaarka ah ee halkan ku yaal wuxuu muujinayaa inta kayd ah, boggan wasakhaysan, ee wakhtigaas soo gaadhay barta kontoroolka ee isku xidhka. Oo tani waa waxa ugu weyn ee aad u baahan tahay inaad ogaato halkan. Waxaan aragnaa inaan ku leenahay bogag badan oo halkan ah, mararka qaarkoodna waxaan ku dhufannay guddiga, taas oo ah, waxaan ku qornay oo qornay, halkan nidaamka diskka ayaa si cad u mashquulsan. Isbaaradayaduna waxay saameyn xooggan ku leedahay saxanka. Fikrad ahaan, xaaladdu waa inay u ekaataa sidan oo kale, i.e. waxaan haysanay wax yar oo duubis ah halkan. Oo waxaan ku hagaajin karnaa goobaha si ay u sii ahaato sidan oo kale. Taasi waa, dib u warshadayntu way yar tahay, laakiin meel aan wax ku qorayno halkan.

Maxaa loo baahan yahay in la sameeyo si looga gudbo dhibaatadan? Haddii aad ku joojisay IO hoosta xogta xogta, tani waxay la macno tahay in dhammaan isticmaalayaasha u yimid si ay u fuliyaan codsiyadooda ay sugi doonaan.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Haddii aad ka eegto dhinaca aragtida Linux, haddii aad qaadatay qalab wanaagsan, si sax ah u habeeyey, u habeeyey PostgreSQL si caadi ah si ay uga dhigto isbaarooyinkan marar badan, waxay ku fidisaa waqti ka dhexeeya midba midka kale, ka dibna waxaad u gudubtaa xuduudaha Debian-ka caadiga ah. Inta badan Linux qaybinta, kani waa sawirka: vm.dirty_ratio=20, vm.dirty_background_ratio=10.

Waxa loola jeedaa? Hal jinni oo dareeraya ayaa ka soo muuqday kernel 2.6. Pdglush, iyada oo ku xidhan cidda isticmaalaysa, kaas oo ku hawlan iska tuuridda boggaga wasakhaysan ee kernel buffer iyo tuurista marka ay lagama maarmaan noqoto in la tuuro boggaga wasakhaysan si kastaba ha ahaatee, marka tuurista gadaasha aysan caawinayn.

Goorma ayuu asalka yimi? Marka 10% wadarta RAM ee laga heli karo server-ka ay ku jiraan bogag wasakh ah oo ku jira kaydka kernel-ka, hawl-qoris gaar ah ayaa loo yaqaan xagga dambe. Waa maxay sababta asal ahaan? Halbeeg ahaan, waxay ku xisaabtamaysaa inta bog ee la qori karo. Oo, aynu nidhaahno, wuxuu qorayaa bogagga N. Oo in muddo ah arrinkani wuu hurdaa. Oo haddana mar kale ayay timid oo koobiyaysaa bogag kale.

Tani waa sheeko aad u fudud. Dhibka halkan ka taagani waxa uu la mid yahay barkada dabaasha oo marka ay tuubo ku shubto mid kale ku shubto. Isbaaradayada ayaa timi oo haddii ay soo dirtay dhawr bog oo wasakh ah si loo tuuro, ka dib si tartiib tartiib ah wax walba ayaa si habsami leh looga xallin doonaa kernel buffer pgflush.

Haddii boggaga wasakhaysan ay sii wadaan ururinta, waxay ururiyaan ilaa 20%, ka dib mudnaanta OS waa in la qoro wax walba oo disk ah, sababtoo ah awoodda ayaa dhici doonta, wax walbana way nagu xumaan doonaan. Waxaan waayi doonaa xogtan, tusaale ahaan.

Waa maxay xeeladdu? Khiyaamada ayaa ah in xuduudahan casriga ah ee adduunka casriga ahi ay yihiin 20 iyo 10% wadarta RAM ee mashiinka ku jira, waxay gabi ahaanba yihiin kuwo bahalnimo ah marka loo eego soo saarista nidaam kasta oo disk ah oo aad haysato.

Bal qiyaas inaad haysato 128 GB oo RAM ah. 12,8 GB ayaa ku soo gala nidaamka diskkaaga. Wax kasta oo kayd ah oo aad halkaas ku haysato, iyada oo aan loo eegayn waxa diyaarsan ee aad halkaas ku haysato, kuma sii socon doonaan muddo dheer.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Sidaa darteed, waxaan kugula talineynaa inaad isla markiiba hagaajiso tirooyinkan iyadoo ku saleysan awoodaha kontaroolahaaga RAID. Isla markiiba waxaan halkan talo ku soo jeediyay kontaroolaha haysta 512 MB oo kayd ah.

Wax walba waxaa loo arkaa mid aad u fudud. Waxaad ku dhejin kartaa vm.dirty_background bytes. Waxayna goobahani baabi'inayaan labadii hore. Midkoodna saamiga waa default, ama kuwa leh bytes waa la hawlgeliyay, ka dibna kuwa bytes ah ayaa shaqayn doona. Laakiin maadaama aan ahay la-taliye DBA oo aan la shaqeeyo macaamiil kala duwan, waxaan isku dayaa inaan sawiro caws iyo sidaas darteed, haddii bytes, ka dibna bytes. Qofna ma bixin wax dammaanad ah oo ah in maamulaha wanaagsan uusan ku dari doonin xusuusta dheeraadka ah ee server-ka, dib u kicinta, iyo shaxanka ayaa ahaan doona sidii hore. Kaliya xisaabi tirooyinkan si wax walba ugu habboon yihiin halkaas oo dammaanad leh.

Maxaa dhacaya haddii aanad ku haboonayn? Waxaan qoray in wax kasta oo biyo raacis ah si wax ku ool ah loo joojiyo, laakiin dhab ahaantii tani waa sawir hadal. Nidaamka hawlgalka wuxuu leeyahay dhibaato weyn - wuxuu leeyahay bogag badan oo wasakh ah, markaa IO ee macaamiishaadu soo saaraan si wax ku ool ah ayaa loo joojiyay, i.e. codsigu wuxuu u yimid inuu u diro su'aal sql database, wuu sugayaa. Wax-soo-saar kasta oo lagu sameeyo ayaa ah mudnaanta ugu hooseysa, sababtoo ah keydka macluumaadka waxaa lagu hayaa isbaaro. Markay dhamayn doontona ma cadda. Oo marka aad gaarto biyo raacid aan asalka ahayn, waxay la macno tahay in dhammaan IO-gaaga ay ku mashquulsan yihiin. Oo ilaa ay dhammaanayso, waxba ma samayn doontid.

Waxaa jira laba qodob oo kale oo muhiim ah oo ka baxsan xadka warbixintan. Dejintani waa in ay waafaqaan Settings ku jira postgresql.conf, ie. goobaha isbaarada. Nidaamkaaga diskooga waa in si ku filan loo habeeyo. Haddii aad kayd ku leedahay RAID, markaas waa inuu lahaadaa batari. Dadku waxay ku iibsadaan RAID cache wanaagsan oo aan baytari lahayn. Haddii aad SSDs ku leedahay RAID, markaa waa inay ahaadaan kuwo server ah, waa inay jiraan capacitors halkaas. Halkan waxaa ah liis hubineed oo faahfaahsan. Xidhiidhkani waxa uu ka kooban yahay warbixintayda ku saabsan sida loo habeeyo saxanka waxqabadka gudaha PostgreSQL. Waxaa jira dhammaan liisaskan hubinta halkaas.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Maxaa kale oo nolosha ka dhigi kara mid aad u adag? Kuwani waa laba cabbir. Way cusub yihiin. Sida caadiga ah, waxaa lagu dari karaa codsiyo kala duwan. Waxayna nolosha ka dhigi karaan mid adag haddii si khaldan loo shido.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Waxaa jira laba shay oo cusub. Waxay mar hore ka soo muuqdeen xudunta saddexaad. Kani waa sched_migration_cost nanoseconds iyo sched_autogroup_enabled, kaas oo ah mid asal ahaan ah.

Oo sidee bay noloshaada u baabi'inayaan? Waa maxay kharashka sched_migration? Linux, jadwaleeyaha wuxuu ka guuri karaa habka hal CPU una guuri karo mid kale. Iyo PostgreSQL, oo ​​fuliya su'aalaha, u haajiridda CPU kale gabi ahaanba ma cadda. Marka laga eego dhinaca nidaamka hawlgalka, marka aad u kala beddesho daaqadaha inta u dhaxaysa openoffice iyo terminal, tani way fiicnaan kartaa, laakiin Xog-ururinta tani aad bay u xun tahay. Sidaa darteed, siyaasad macquul ah waa in la dejiyo socdaalka_qiimaha qaar ka mid ah qiimo weyn, ugu yaraan dhowr kun nanoseconds.

Maxay tani uga dhigan tahay jadwaleeyaha? Waxaa loo tixgelin doonaa in inta lagu jiro waqtigan geeddi-socodku weli kulul yahay. Taasi waa, haddii aad leedahay macaamil ganacsi oo dheer oo wax qabanayay muddo dheer, jadwalku wuu fahmi doonaa tan. Waxa uu u qaadan doonaa in ilaa wakhtigan dhaafo, aan loo baahnayn in hawshan loo haajiro meel kasta. Haddii isla mar ahaantaana hawshu wax qabato, markaa meelna looma guuri doono, waxay si aamusnaan ah ugu shaqeyn doontaa CPU-da loo qoondeeyay. Natiijaduna waa mid aad u fiican.

Qodobka labaad waa autogroup. Waxaa jira fikrad wanaagsan oo loogu talagalay culeysyo shaqo oo gaar ah oo aan la xiriirin xog-ururinta casriga ah - tani waa in la kooxeeyo hababka iyada oo loo marayo terminalka casriga ah ee laga soo saaray. Tani waxay ku habboon tahay hawlaha qaarkood. Ficil ahaan, PostgreSQL waa hannaan geeddi-socod badan leh oo leh fargeeto hore oo ka socda hal terminal. Waxaad haysataa qoraa quful, isbaaro, iyo dhammaan codsiyada macmiilkaaga waxa loo qaybin doonaa hal jadwal, CPU kasta. Waxayna si midaysan halkaas ugu sugi doonaan inuu xorriyaddiisa helo, si ay isu farageliyaan oo ay u sii mashquulaan muddo dheer. Tani waa sheeko gebi ahaanba aan loo baahnayn marka la eego culeyska noocaas ah sidaas darteedna loo baahan yahay in la damiyo.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Saaxiibkay Alexey Lesovsky waxa uu tijaabiyey pgbench fudud, halkaas oo uu ku kordhiyey migration_cost amar aad u weyn oo uu damiyey autogroup. Farqiga ku saabsan qalabka xun wuxuu ahaa ku dhawaad ​​10%. Waxa jira dood ku saabsan liiska boostada ee postgres halkaas oo dadku ay ku bixiyaan natiijooyinka isbeddelada la midka ah ee xawaaraha weydiinta waxay saamaysay 50%. Waxaa jira sheekooyin badan oo noocaas ah.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Iyo ugu dambeyntii, ku saabsan siyaasadda badbaadinta awoodda. Waxa wanaagsan ayaa ah in Linux hadda loo isticmaali karo laptop-ka. Waxaana loo malaynayaa inay batteriga si fiican u isticmaali doonto. Laakiin si lama filaan ah ayay u soo baxday in tani ay sidoo kale ku dhici karto server-ka.

Waxaa intaa dheer, haddii aad ka kireysato server-yada qaar ka mid ah martigeliyaha, markaa "wanaagsan" martigeliyayaasha ma daneeyaan inaad leedahay waxqabad ka fiican. Shaqadoodu waa inay hubiyaan in birta looga faa'iidaysto sida ugu macquulsan. Sidaa darteed, sida caadiga ah waxay awood u siin karaan habka badbaadinta awoodda laptop ee nidaamka hawlgalka.

Haddii aad walxahan ku isticmaasho server-ka xog-ururinta ku hoos jiro culays culus, markaa doorashadaadu waa acpi_cpufreq + permormance. Xitaa haddii dalabaadku jiro waxaa jiri doona dhibaatooyin.

Intel_pstate waa darawal ka yara duwan. Oo hadda doorbidid ayaa la siiyay kan, maadaama uu yahay kan dambe oo si fiican u shaqeynaya.

Oo, sidaas awgeed, guddoomiyuhu waa waxqabad kaliya. Ondemand, powersave iyo wax kasta oo kale kuma saabsana adiga.

Natiijooyinka sharraxaadda falanqaynta PostgreSQL waxay ku kala duwanaan kartaa dhowr amar oo waaweyn haddii aad awood u yeelatid awood-badbaadinta, sababtoo ah ficil ahaan CPU ee ku hoos jira xogtaada waxay u socon doontaa si aan la saadaalin karin.

Alaabtan waxa lagu dari karaa si caadi ah. Si taxadir leh u eeg si aad u aragto inay si toos ah u shideen. Tani waxay noqon kartaa dhibaato weyn runtii.

Daawaynta Linux si loo horumariyo waxqabadka PostgreSQL. Ilya Kosmodemyansky

Ugu dambeyntiina, waxaan rabay inaan ku idhaahdo mahadsanid ragga ka socda kooxdayada PosgreSQL-la-talinta DBA, kuwaas oo ah Max Boguk iyo Alexey Lesovsky, kuwaas oo maalin kasta ka dhigaya arrintan. Waxaanan isku daynaa inaan sida ugu fiican ugu samayno macaamiisheena si ay dhamaantood ugu shaqeeyaan. Waxay la mid tahay tilmaamaha badbaadada duulista. Wax kasta oo halkan ku yaal waxay ku qoran yihiin dhiig. Mid kasta oo ka mid ah lowskaas waxaa laga helaa habka dhibaatada nooc ka mid ah. Waan ku faraxsanahay inaan idinla wadaago.

Su'aalo:

Mahadsanid! Haddii, tusaale ahaan, shirkad ay rabto in ay lacag kaydsato oo ay dhigto xogta macluumaadka iyo codsiga macquulka ah hal server, ama haddii shirkadu raacdo isbeddelka moodada ah ee naqshadaha microservice, kaas oo PostgreSQL uu ku dhex jiro weel. Waa maxay xeeladdu? Sysctl waxay saameyn doontaa dhammaan kernelka adduunka oo dhan. Ma aanan maqlin in sysctls si uun loo qaabeeyey si ay si gooni ah ugu shaqeeyaan weelka. Waxaa jira koox koox kaliya waxaana jira qayb ka mid ah kantaroolka halkaas. Sideed ula noolaan kartaa tan? Ama haddii aad rabto wax qabad, ka dib ku socodsii PostgreSQL server hardware gooni ah oo u hagaaji?

Waxaan su'aashaada uga jawaabnay ilaa saddex siyaabood. Haddii aynaan ka hadlin server hardware ah oo la hagaajin karo, iwm, ka dibna naso, wax walba si fiican ayey u shaqeyn doonaan iyada oo aan goobahan. Haddii aad haysato culeys sidan oo kale ah oo aad u baahan tahay inaad sameyso goobahan, ka dibna waxaad u iman doontaa server-ka birta ka hor inta aan goobahan.

waa maxay dhibku? Haddii kani yahay mashiinka farsamada, markaa waxay u badan tahay inaad la kulmi doonto dhibaatooyin badan, tusaale ahaan, iyada oo xaqiiqda ah in mishiinnada farsamada badankooda daahitaanka diskku uu yahay mid aan ku habboonayn. Xitaa haddii wax-soo-saarka diskku uu wanaagsan yahay, markaa mid ku guuldareystay I / O macaamil ganacsi oo aan si weyn u saameynin celceliska wax-soo-saarka ee dhacay waqtiga isbaarada ama waqtiga qoraalka WAL, markaa xogta ayaa si weyn u dhibtoon doonta tan. Oo waxaad ogaan doontaa tan ka hor intaadan la kulmin dhibaatooyinkan.

Haddii aad NGINX ku leedahay isla server-ka, waxaad sidoo kale yeelan doontaa dhibaato la mid ah. Wuxuu u dagaalami doonaa xusuusta la wadaago. Oo ma aad heli doontid dhibaatooyinka halkan lagu sharraxay.

Laakiin dhinaca kale, qaar ka mid ah cabbirradan ayaa weli adiga ku khuseeya. Tusaale ahaan, u dhig dirty_ratio leh sysctl si aysan u waalan - kiis kasta, tani way ku caawin doontaa. Hab ama si kale, waxaad la yeelan doontaa isdhexgalka diskka. Oo waxay noqon doontaa sida waafaqsan qaabka khaldan. Tani guud ahaan waa gabal u ah halbeegyada aan tusay. Xaalad kastana way fiicantahay in la beddelo.

Laakin waxaa laga yaabaa in ay dhibaato ka jiraan NUMA. VmWare, tusaale ahaan, waxay si fiican ula shaqeysaa NUMA oo leh jaangooyooyin ka soo horjeeda. Oo halkan waa inaad doorataa - server-ka birta ah ama mid aan birta ahayn.

Waxaan qabaa su'aal la xiriirta Amazon AWS. Waxay leeyihiin sawirro horay loo habeeyey. Mid ka mid ah waxaa loo yaqaan Amazon RDS. Ma jiraan wax habayn u gaar ah nidaamka hawlgalka?

Waxaa jira habayn, laakiin way kala duwan yihiin. Halkan waxaan ku habaynaynaa nidaamka qalliinka marka la eego sida xogta xogta ay u isticmaali doonto shaygan. Waxaana jira halbeegyo go'aaminaya halka aan aadi lahayn hadda, sida qaabaynta. Taasi waa, waxaan u baahanahay kheyraad badan, hadda waanu cuni doonaa. Taas ka dib, Amazon RDS waxay adkeyneysaa kheyraadkan, waxqabadkuna hoos ayuu u dhacayaa. Waxaa jira sheekooyin shakhsi ah oo ku saabsan sida dadku ay u bilaabeen inay ku qasmaan arrintan. Mararka qaarkood xitaa si guul leh. Laakiin tani shaqo kuma laha goobaha OS. Waxay la mid tahay jabsiga daruurta. Taasi waa sheeko kale.

Maxay tahay sababta boggaga waaweyn ee Transparent aysan wax saameyn ah u yeelan marka la barbar dhigo Huge TLB?

Ha siin. Tan waxaa lagu sharxi karaa siyaabo badan. Laakiin dhab ahaantii si fudud ma siiyaan. Waa maxay taariikhda PostgreSQL? Bilawga, waxa ay qoondaynaysaa qayb weyn oo xusuusta la wadaago. Haddi ay yihiin kuwo hufan iyo in kale gabi ahaanba ma khusayso. Xaqiiqda ah in ay ka soo muuqdaan bilawga ayaa sharaxaya wax walba. Oo haddii ay jiraan xusuus badan oo aad u baahan tahay inaad dib u dhisto qaybta xusuusta la wadaago, markaa boggaga waaweyn ee hufan ayaa noqon doona mid khuseeya. Gudaha PostgreSQL, waxaa si fudud loogu qoondeeyay qayb weyn bilawga waana taas, ka dibna ma jiraan wax gaar ah oo halkaas ka dhacaya. Dabcan, waad isticmaali kartaa, laakiin waxaa jirta fursad aad ku heli karto musuqmaasuqa xusuusta la wadaago marka ay dib u qoondayso shay. PostgreSQL waxba kama oga tan.

Source: www.habr.com

Add a comment