Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Waxaan kuu soo jeedinayaa inaad akhrido qoraalka warbixinta Alexey Lesovsky ee Xogta Egret "Aasaaska Kormeerka PostgreSQL"

Warbixintan, Alexey Lesovsky wuxuu ka hadli doonaa qodobbada muhiimka ah ee tirakoobka ka dambeeya, waxa ay ula jeedaan, iyo sababta ay tahay inay joogaan kormeerka; wixii ku saabsan garaafyada waa inay ku jiraan kormeerka, sida loo daro iyo sida loo fasiro. Warbixintu waxay faa'iido u yeelan doontaa maamulayaasha xogta, maamulayaasha nidaamka iyo horumariyayaasha kuwaas oo xiisaynaya cilad-baadhista Postgres.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Magacaygu waa Alexey Lesovsky, waxaan wakiil ka ahay shirkadda Data Egret.

Dhowr eray oo naftayda ku saabsan. Waxaan bilaabay wakhti dheer kahor sidii maamulaha nidaamka.

Waxaan maamulay dhammaan noocyada kala duwan ee nidaamyada Linux, waxaan ka shaqeeyay waxyaabo kala duwan oo la xiriira Linux, i.e. virtualization, monitoring, la shaqeeyay proxies, iwm. Laakiin mar mar waxaan bilaabay inaan wax badan ka shaqeeyo database-yada, PostgreSQL. Aad ayaan uga helay isaga. Mararka qaar waxaan bilaabay inaan ka shaqeeyo PostgreSQL inta badan wakhtigayga shaqada. Si tartiib tartiib ah ayaan u noqday PostgreSQL DBA.

Iyo inta aan ku guda jiro xirfadayda, waxaan had iyo jeer xiisaynayay mawduucyada tirakoobka, la socodka, iyo telemetry. Markii aan ahaa maamulaha nidaamka, waxaan si dhow ula shaqeeyay Zabbix. Oo waxaan qoray qoraallo yar oo la mid ah zabbix-kordhinta. Aad buu caan u ahaa waqtigiisii. Oo halkaas waxaa suurtagal ah in lala socdo waxyaabo aad u kala duwan oo muhiim ah, ma aha oo kaliya Linux, laakiin sidoo kale qaybo kala duwan.

Hadda waxaan ka shaqeynayaa PostgreSQL. Waxaan horeyba u qoray shay kale oo kuu ogolaanaya inaad la shaqeyso tirakoobyada PostgreSQL. Waxaa la yiraahdaa pgCenter (maqaal ku saabsan HabrΓ© - Tirakoobka ka dib-socodka aan lahayn neerfaha iyo kacsanaanta).

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

In yar oo hordhac ah. Waa maxay xaaladaha ay haystaan ​​macaamiisheena, macaamiisheena? Waxa jira nooc shil ah oo la xidhiidha kaydka xogta. Oo markii kaydkii kaydka ahaa ee hore loo soo celiyay, waxaa yimaada madaxa waaxda ama madaxa horumarinta oo leh: "Saaxiibayaal, waxaan u baahanahay inaan la socono keydka macluumaadka, sababtoo ah wax xun ayaa dhacay, waxaana loo baahan yahay inaan ka hortagno inay taasi dhacdo mustaqbalka." Oo halkan waxaa ka bilaabmaya habka xiisaha leh ee doorashada nidaamka kormeerka ama la qabsiga nidaamka kormeerka ee jira si aad ula socon karto xogtaada - PostgreSQL, MySQL ama qaar kale. Asxaabtiina waxay bilaabeen inay soo jeediyaan: "Waxaan maqlay inay jiraan xog-ururin caynkaas ah iyo sida. Aan isticmaalno." Asxaabtu waxay bilaabaan inay is khilaafaan. Ugu dambeyntiina waxay soo baxday in aan dooranno nooc ka mid ah database-ka, laakiin kormeerka PostgreSQL ayaa lagu soo bandhigay si liidata oo had iyo jeer waa inaan wax ku darnaa. Ka soo qaado meelo kayd ah GitHub, xidhi, qoraalada la qabso, oo si uun u habbee. Oo aakhirka waxay ku dhammaataa inay noqoto nooc ka mid ah shaqada gacanta.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Sidaa darteed, hadalkan waxaan isku dayi doonaa inaan ku siiyo aqoon ku saabsan sida loo doorto la socodka maaha kaliya PostgreSQL, laakiin sidoo kale database-ka. Oo ku siiya aqoonta kuu oggolaanaysa inaad dhammaystirto la socodkaaga si aad faa'iido uga hesho, si aad ula socoto xogtaada faa'iido leh, si aad si dhakhso ah uga hortagto xaalad kasta oo degdeg ah oo soo socota.

Fikradaha ku jiri doona warbixintan si toos ah ayaa loo waafajin karaa xog kasta, ha noqoto DBMS ama noSQL. Sidaa darteed, ma jiraan kaliya PostgreSQL, laakiin waxaa jiri doona cuntooyin badan oo ku saabsan sida tan loo sameeyo PostgreSQL. Waxaa jiri doona tusaalooyin su'aalo ah, tusaaleyaal hay'ado ay PostgreSQL u leedahay la socodka. Oo haddii DBMS-gaagu leeyahay waxyaabo isku mid ah oo kuu oggolaanaya inaad geliso la socodka, sidoo kale waad la qabsan kartaa, ku dari kartaa wayna fiicnaan doontaa.

Aasaaska kormeerka PostgreSQL. Alexey LesovskyAnigu kuma jiri doono warbixinta
ka hadal sida loo geynayo oo loo kaydiyo cabbirada. Waxba ka odhan maayo socodsiinta ka dib xogta iyo u bandhigida isticmaalaha. Waxna ka odhan maayo digniinta.
Laakiin sida sheekadu u socoto, waxaan soo bandhigi doonaa shaashado kala duwan oo kormeerka jira oo aan si uun u dhaleeceeyo. Laakiin si kastaba ha ahaatee, waxaan isku dayi doonaa inaanan magacaabin noocyada si aysan u abuurin xayaysiis ama xayeysiis lid ku ah alaabtan. Sidaa darteed, dhammaan shilalku waa bakhtiyaa nasiib waxaana loo daayaa male-awaalkaaga.
Aasaaska kormeerka PostgreSQL. Alexey Lesovsky
Marka hore, aynu ogaano waxa la socodka yahay. Kormeerku waa shay aad muhiim u ah in la yeesho. Qof kastaa wuu fahmayaa tan. Laakiin isla mar ahaantaana, kormeerku kuma xidhna badeecada ganacsiga oo si toos ah uma saameynayso faa'iidada shirkadda, sidaas darteed wakhti had iyo jeer waxaa loo qoondeeyay la socodka ku salaysan hadhaaga. Haddii aan haysano waqti, ka dib waxaan sameynaa kormeer; haddii aanan haysan waqti, ka dibna OK, waxaan ku dhejin doonaa dhabarka oo maalin maalmaha ka mid ah waxaan ku soo laaban doonaa hawlahan.

Sidaa darteed, laga bilaabo dhaqankeena, marka aan u nimaadno macaamiisha, la socodka inta badan waa mid aan dhamaystirnayn oo aan haysan wax xiiso leh oo naga caawin doona inaan shaqo fiican ku qabanno xogta. Sidaas darteed la socodka had iyo jeer waxay u baahan tahay in la dhamaystiro.

Databases-ku waa waxyaabo kakan oo sidoo kale u baahan in la ilaaliyo, sababtoo ah database-yadu waa kaydka macluumaadka. Xogtu aad bay muhiim ugu tahay shirkadda, sinaba uma lumin karto. Laakin isla mar ahaantaana, database-yadu waa qaybo software aad u adag. Waxay ka kooban yihiin tiro badan oo qaybo ah. Qaybo badan oo ka mid ah kuwan ayaa u baahan in lala socdo.

Aasaaska kormeerka PostgreSQL. Alexey LesovskyHaddii aan si gaar ah uga hadlayno PostgreSQL, markaa waxaa lagu soo bandhigi karaa qaab nidaam oo ka kooban qaybo badan oo badan. Qaybahani way is falgalaan. Isla mar ahaantaana, PostgreSQL waxay leedahay waxa loogu yeero Stats Collector subsystem, kaas oo kuu ogolaanaya inaad ururiso tirakoobyada ku saabsan hawlgalka nidaamyadan hoose oo aad siiso nooc ka mid ah isdhexgalka maamulaha ama isticmaalaha si uu u eego tirakoobyadan.

Tirakoobkaan waxaa lagu soo bandhigay qaab hawlo iyo aragtiyo gaar ah. Waxa kale oo lagu magacaabi karaa miisaska. Taasi waa, adigoo isticmaalaya macmiilka caadiga ah ee psql, waxaad ku xidhi kartaa xogta xogta, ka dooro hawlahan iyo aragtida, oo aad hesho tirooyin gaar ah oo ku saabsan hawlgalka nidaamyada hoose ee PostgreSQL.

Waxaad ku dari kartaa tirooyinkan nidaamka kormeerka ee aad jeceshahay, sawir garaafyo, ku dari kartaa hawlaha oo aad hesho falanqaynta mustaqbalka fog.

Laakiin warbixintan si buuxda uma dabooli doono dhammaan hawlahan, sababtoo ah waxay qaadan kartaa maalinta oo dhan. Waxaan si dhab ah wax uga qaban doonaa laba, saddex ama afar shay waxaanan kuu sheegi doonaa sida ay gacan uga geystaan ​​in la wanaajiyo.
Aasaaska kormeerka PostgreSQL. Alexey Lesovsky
Oo haddii aan ka hadalno la socodka xogta xogta, markaa maxaa loo baahan yahay in la kormeero? Marka hore waxaan u baahanahay inaan la socono helitaankiisa, sababtoo ah database-ku waa adeeg siiya helitaanka xogta macaamiisha waxaana loo baahan yahay inaan la socono helitaanka, iyo sidoo kale bixinta qaar ka mid ah sifooyinka tayada iyo tirada.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Waxaan sidoo kale u baahanahay inaan la socono macaamiisha ku xirta xogtayada, sababtoo ah waxay noqon karaan macaamiil caadi ah iyo macaamiil waxyeello leh oo waxyeello u geysan kara kaydka xogta. Waxa kale oo ay u baahan yihiin in lala socdo oo dhaqdhaqaaqooda lala socdo.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Marka macaamiishu ku xidhmaan database-ka, way iska caddahay inay bilaabaan inay la shaqeeyaan xogtayada, markaa waxaan u baahanahay inaan la socono sida macaamiishu ula shaqeeyaan xogta: miisaska, iyo ilaa xad yar, kuwaas oo indexes. Taasi waa, waxaan u baahanahay inaan qiimeyno culeyska shaqada ee ay abuuraan macaamiisheena.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Laakiin culayska shaqadu waxa kale oo uu ka kooban yahay, dabcan, codsiyo. Codsiyada waxa ay ku xidhmaan kaydka xogta,waxa ay helaan xogta iyaga oo isticmaalaya su'aalo,sidaa awgeed waxa muhiim ah in la qiimeeyo su'aalaha aanu ku hayno kaydka,la socoshada ku filnaanshahooda,in aan si qalloocan loo qorin, in doorashooyinka qaar ay u baahan yihiin in dib loo qoro oo la sameeyo si ay dhaqso ugu shaqeeyaan. iyo waxqabad wanaagsan.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Oo maadaama aan ka hadlayno xog-ururin, xog-ururintu had iyo jeer waa hababka asalka. Nidaamyada asalka ahi waxay caawiyaan ilaalinta xogta xogta heer wanaagsan, sidaa darteed waxay u baahan yihiin xaddi agab ah si ay naftooda ugu shaqeeyaan. Isla mar ahaantaana, waxay isku dhejin karaan ilaha codsiga macmiilka, markaa hababka asalka hungurigu waxay si toos ah u saameyn karaan waxqabadka codsiyada macmiilka. Sidaa darteed, waxay sidoo kale u baahan yihiin in lala socdo oo laga daba tago si aysan u dhicin qallooc ku saabsan hababka asalka ah.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Oo waxaas oo dhan marka la eego la socodka xogta xogta waxay ku sii jiraan cabbirka nidaamka. Laakiin iyada oo la tixgelinayo in inta badan kaabayaasheena ay u guurayaan daruuraha, jaangooyooyinka nidaamka ee martigeliyaha shakhsi ahaaneed had iyo jeer waxay ku dhacaan asalka. Laakin xog-ururinta weli waa ay khuseeyaan, dabcan, sidoo kale waa lagama maarmaan in la kormeero cabbirrada nidaamka.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Wax kasta oo aad u yar ama ka yar ayaa ku fiican jaangooyooyinka nidaamka, dhammaan hababka kormeerka casriga ah ayaa horeyba u taageeraya cabbiradan, laakiin guud ahaan, qaybaha qaar ayaan weli ku filneyn oo waxyaabaha qaarkood waxay u baahan yihiin in lagu daro. Waxaan sidoo kale taaban doonaa iyaga, waxaa jiri doona dhowr bog oo iyaga ku saabsan.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky
Qodobka koowaad ee qorshuhu waa helitaan. Waa maxay helitaanku? Helitaanka fahamkaygu waa awoodda saldhigga ee isku xirka adeegga, i.e. saldhigga ayaa kor loo qaaday, isaga, adeeg ahaan, wuxuu aqbalaa xiriirka macaamiisha. Helitaankan waxaa lagu qiimeyn karaa sifooyin gaar ah. Aad bay ugu habboon tahay in lagu muujiyo astaamahan muraayadaha.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky
Qof kastaa wuu ogyahay waxa ay yihiin dashboards. Tani waa markii aad mid ka mid ah u fiirsatay shaashadda oo macluumaadka lagama maarmaanka ah lagu soo koobay. Oo isla markiiba waxaad go'aamin kartaa inay dhibaato ka jirto kaydka xogta iyo in kale.
Sidaas awgeed, helitaanka xogta iyo sifooyinka kale ee muhiimka ah waa in had iyo jeer lagu soo bandhigaa dashboards si macluumaadkani u ahaado gacanta oo had iyo jeer diyaar kuu ah. Qaar ka mid ah faahfaahinta dheeraadka ah ee horeba uga caawiya baaritaanka shilalka, marka la baarayo xaaladaha degdegga ah qaarkood, waxay mar hore u baahan yihiin in lagu dhejiyo dashboards-ka labaad, ama lagu qariyo isku xirka hoos u dhigista taasoo horseedda nidaamyada kormeerka qolo saddexaad.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Tusaale ka mid ah nidaamka la socodka ee caanka ah. Tani waa nidaam kormeer oo aad u fiican. Waxay ururisaa xog badan, laakiin aragtidayda, waxay leedahay fikrad qariib ah oo ah dashboards. Waxaa jira xiriir "abuurida dashboard". Laakiin markaad abuurto dashboard, waxaad abuurtaa liis laba tiir ah, liis garaafyo ah. Oo markaad u baahato inaad wax eegto, waxaad bilaabaysaa inaad gujiso jiirka, xoqin, raadinta jaantuska la rabo. Oo tani waxay qaadataa waqti, i.e. ma jiraan dashboards sida oo kale. Waxaa jira liisaska jaantusyada oo kaliya.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Maxaad ku dari lahayd dashboard-kan? Waxaad ku bilaabi kartaa sifada sida wakhtiga jawaabta. PostgreSQL waxay leedahay aragtida pg_stat_statements Waa naafo si caadi ah, laakiin waa mid ka mid ah aragtida nidaamka muhiimka ah ee ay tahay in had iyo jeer la awoodo oo la isticmaalo. Waxay kaydisaa macluumaadka ku saabsan dhammaan weydiimaha socda ee lagu fuliyay kaydka xogta.

Sidaa darteed, waxaan ka bilaabi karnaa xaqiiqda ah in aan qaadan karno wadarta wakhtiga fulinta dhammaan codsiyada oo aan u qaybinno tirada codsiyada iyadoo la adeegsanayo meelaha kore. Laakiin tani waa celceliska heerkulka isbitaalka. Waxaan ka bilaabi karnaa meelo kale - waqtiga ugu yar ee fulinta weydiinta, ugu badnaan iyo dhexdhexaad. Waxaan xitaa dhisi karnaa boqolleyda; PostgreSQL waxay leedahay hawlo u dhigma tan. Oo waxaan heli karnaa tirooyin tilmaamaya wakhtiga jawaabta ee xogtayada codsiyada hore loo dhamaystiray, tusaale ahaan ma fulino codsiga been abuurka ah 'dooro 1' oo eeg wakhtiga jawaabta, laakiin waxaanu falanqeynayaa wakhtiga jawaabta codsiyada hore loo dhammeeyey oo sawiri ama sawir gooni ah, ama waxaan dhisnaa garaaf ku salaysan.

Waxa kale oo muhiim ah in lala socdo tirada khaladaadka ee hadda uu soo saaray nidaamka. Taasna waxaad u isticmaali kartaa pg_stat_database view. Waxaan diirada saareynaa garoonka xact_rollback Goobtani ma muujinayso oo keliya tirada dib-u-celinta ee ku jirta kaydka xogta, laakiin sidoo kale waxay ku xisaabtamaysaa tirada khaladaadka. Marka la eego, waxaanu ku soo bandhigi karnaa sawirkan dashboardka oo aanu aragno inta khalad ee aanu hadda haysano. Haddii ay jiraan khaladaad badan, markaa tani waa sabab wanaagsan oo loo eego diiwaannada oo la eego nooca khaladaadka ay yihiin iyo sababta ay u dhacaan, ka dibna maalgashadaan oo xalliyaan.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Waxaad ku dari kartaa wax sida Tachometer. Kuwani waa tirada wax kala iibsiga halkii ilbiriqsi iyo tirada codsiyada ilbiriqsikiiba. Marka la eego, waxaad u isticmaali kartaa tirooyinkan sida waxqabadka hadda ee xogtaada oo aad u fiirsato haddii ay jiraan codsiyada ugu sarreeya, ugu sarreeya ee wax kala iibsiga, ama, taa beddelkeeda, haddii xog-ururinta ay hoos u dhacday sababtoo ah qaar ka mid ah dhabarka ayaa fashilmay. Waa muhiim in had iyo jeer la eego jaantuskan oo aan xasuusno in mashruuceena waxqabadka noocan ahi uu yahay mid caadi ah, laakiin qiyamka kor ku xusan iyo kuwa hooseba waa nooc ka mid ah dhibaatooyinka iyo kuwa aan la fahmi karin, taas oo macnaheedu yahay inaan u baahanahay inaan eegno sababta ay tirooyinkani yihiin. aad u sarreeya.

Si loo qiyaaso tirada wax kala iibsiga, waxaan mar kale tixraaci karnaa pg_stat_database view. Waxaan ku dari karnaa tirada ballan-qaadyada iyo tirada dib-u-celinta oo waxaan helnaa tirada macaamilka ilbiriqsi kasta.

Qof kastaa ma fahamsan yahay in dhowr codsi ay ku habboonaan karaan hal macaamil ganacsi? Sidaa darteed TPS iyo QPS wax yar bay ka duwan yihiin.

Tirada codsiyada ilbiriqsikiiba waxa laga heli karaa pg_stat_statements oo si fudud u xisaabi wadarta dhammaan codsiyada la dhammaystiray. Waxaa cad in aan is barbar dhigno qiimaha hadda iyo kii hore, ka jarnay, helno delta, oo helno tirada.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Waxaad ku dari kartaa cabbiro dheeraad ah haddii la rabo, taas oo sidoo kale gacan ka geysaneysa qiimeynta helitaanka xogtayada iyo la socoshada haddii ay jiraan wax waqti-dhimis ah.

Mid ka mid ah cabbirradan waa wakhti-kordhin Laakiin wakhtiga ku-meel-gaadhka ah ee PostgreSQL waa xoogaa dhib badan. Waan kuu sheegi doonaa sababta. Marka PostgreSQL uu bilaabo, wakhtigu wuxuu bilaabmaa warbixinta. Laakiin haddii mar uun, tusaale ahaan, hawlo habeenkii socday, OM-killer ayaa yimid oo si qasab ah u joojiyay nidaamka ilmaha ee PostgreSQL, markaa kiiskan PostgreSQL wuxuu joojiyaa isku xirka dhammaan macaamiisha, dib u dejinaya aagga xusuusta ee burburay oo bilaabay inuu ka soo kabsado isbaaradii u dambaysay. Iyo inta ka soo kabashadan ka soo kabashada isbaarada ay sii socoto, xog ururintu ma aqbalayso isku xirka, tusaale ahaan xaaladan waxaa lagu qiimeyn karaa waqti-dhimis. Laakin miiska saacadaha shaqada dib loo dajin maayo, sababtoo ah waxay ku xisaabtamaysaa wakhtiga bilawga maamulaha boostada laga bilaabo daqiiqada ugu horeysa. Sidaa darteed, xaaladahan oo kale waa laga boodi karaa.

Waa inaad sidoo kale la socotaa tirada shaqaalaha faakuumka. Qof kastaa ma yaqaanaa waxa autovacuum ku jira PostgreSQL? Kani waa nidaam hoose oo xiisa leh gudaha PostgreSQL. Maqaalo badan ayaa laga qoray, warbixino badan ayaa laga sameeyay. Waxaa jira doodo badan oo ku saabsan vacuum iyo sida ay tahay inay u shaqeyso. Kuwo badan ayaa u haysta inay tahay shar loo baahan yahay. Laakiin waa sida ay tahay. Kani waa nooc analooga ah oo qashinka qaada ah kaas oo nadiifiya noocyada safafka ee duugoobay ee aan loo baahnayn wax kala iibsi kasta oo ka sii daaya boosaska miisaska iyo tusmooyinka safafka cusub.

Maxaad ugu baahan tahay inaad la socoto? Sababtoo ah faakuumka mararka qaarkood aad ayuu u xanuunsadaa. Waxay isticmaashaa xaddi badan oo kheyraad ah iyo codsiyada macmiilku waxay bilaabaan inay dhibsadaan natiijada.

Oo waa in lagu kormeeraa pg_stat_activity view, kaas oo aan kaga hadli doono qaybta xigta. Aragtidani waxay muujinaysaa hawsha hadda ee kaydka xogta. Hawshanna waxaynu ku ogaan karnaa tirada faakuumka ee shaqaynaya hadda. Waxaan la socon karnaa faakuumyada oo aan aragno haddii aan dhaafnay xadka, markaa tani waa sabab loo eego goobaha PostgreSQL oo si uun kor loogu qaado hawlgalka faakuumka.

Waxyaabo kale oo ku saabsan PostgreSQL ayaa ah in PostgreSQL uu aad u xanuunsan yahay macaamil ganacsi dheer. Gaar ahaan wax kala iibsiga oo muddo dheer soo taagnaa oo aan waxba qaban. Kani waa waxa loogu yeero stat-in-transaction. Wax kala iibsiga noocan oo kale ah wuxuu hayaa quful wuxuuna ka hortagayaa faakuumku inuu shaqeeyo. Natiijo ahaan, miisaska ayaa barara oo kordhiya cabbirka. Su'aalaha la shaqeeya miisaskaan waxay bilaabaan inay si tartiib tartiib ah u shaqeeyaan, sababtoo ah waxaad u baahan tahay inaad majarafad dhammaan noocyada hore ee safafka xusuusta ilaa disk iyo dhabarka. Sidaa darteed, waqtiga, muddada macaamilada ugu dheer, codsiyada faaruqinta ugu dheer ayaa sidoo kale u baahan in la kormeero. Oo haddii aan aragno qaar ka mid ah hababka socday muddo aad u dheer, oo horeba in ka badan 10-20-30 daqiiqo load OLTP ah, ka dibna waxaan u baahan nahay in ay fiiro gaar ah iyaga oo si xoog ah u joojin, ama hagaajin codsiga si ay u. looma yeedho oo ha laadlaadin. Culayska shaqada ee falanqaynta, 10-20-30 daqiiqo waa caadi; waxa kale oo jira kuwo dheer.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky
Marka xigta waxaan haysanaa ikhtiyaarka macaamiisha ku xiran. Markaan horey u abuurnay dashboard oo aan ku dhejinay cabbirada helitaanka muhiimka ah, waxaan sidoo kale ku dari karnaa macluumaad dheeraad ah oo ku saabsan macaamiisha ku xiran.

Macluumaadka ku saabsan macaamiisha ku xiran waa muhiim sababtoo ah, marka laga eego dhinaca PostgreSQL, macaamiishu way kala duwan yihiin. Waxaa jira macaamiil wanaagsan iyo macaamiil xun.

Tusaale fudud. Macmiil ahaan waan fahmay codsiga Codsigu waxa uu ku xidhan yahay kaydka xogta oo isla markiiba waxa uu bilaabaa in uu codsigiisa u diro halkaas, xog ururintu waxa ay ka shaqaysaa oo ay fulisaa,waxana ay natiijada dib ugu celisaa macmiilka. Kuwani waa macaamiil wanaagsan oo sax ah.

Waxaa jira xaalado marka macmiilku ku xiran yahay, wuxuu hayaa xiriirka, laakiin waxba ma sameeyo. Waxay ku jirtaa xaalad aan shaqayn.

Laakiin waxaa jira macaamiil xun. Tusaale ahaan, isla macmiilkii ayaa isku xidhay, furay macaamil ganacsi, wax ku sameeyay kaydka xogta ka dibna galay koodka, tusaale ahaan, si ay u helaan ilo dibadeed ama si ay u socodsiiyaan xogta halkaas laga helay. Laakiin ma uusan xirin wax kala iibsiga. Wax kala iibsigana waxa uu ku xidhan yahay kaydka xogta waxana lagu hayaa quful ku yaala khadka. Tani waa xaalad xun. Oo haddii si lama filaan ah codsi meel gudaha laftiisa ah ku guuldareysto marka laga reebo, markaas wax kala iibsigu wuxuu ahaan karaa mid furan muddo aad u dheer. Tani waxay si toos ah u saameyneysaa waxqabadka PostgreSQL. PostgreSQL wuu yaraan doonaa Sidaa darteed, waxaa muhiim ah in lala socdo macaamiisha noocaas ah waqti ku habboon oo si xoog ah loo joojiyo shaqadooda. Oo waxaad u baahan tahay inaad sare u qaaddo codsigaaga si aanay xaaladahan oo kale u dhicin.

Macaamiisha kale ee xun ayaa sugaya macaamiisha. Laakiin waxay noqdaan kuwo xun sababtoo ah duruufaha. Tusaale ahaan, macaamil ganacsi oo fudud: waxay furi kartaa macaamil ganacsi, waxay qaadan kartaa quful khadadka qaarkood, ka dibna meel code ah way dhici doontaa, oo ka tagaysa macaamil ganacsi. Macmiil kale ayaa iman doona oo codsan doona isla xog isku mid ah, laakiin waxa uu la kulmi doonaa quful, sababtoo ah macaamilka laadlaadku wuxuu horey u hayaa qufulo safafka loo baahan yahay. Xawaaladda labaadna waxay ku xidhnaan doontaa sugitaanka macaamilka ugu horreeya si uu u dhammaystiro ama uu si khasab ah u xidho maamuluhu. Sidaa darteed, macaamilada la sugayo waxay ururin karaan oo buuxin karaan xadka isku xirka xogta. Oo markuu xadka buuxsamo, codsigu kuma sii shaqayn karo kaydka xogta. Tani waa xaalad degdeg ah oo mashruuca ah. Sidaa darteed, macaamiisha xun waxay u baahan yihiin in la raad raaco oo looga jawaabo waqtiga saxda ah.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Tusaale kale oo la socodka. Oo waxaa horeba u jiray dashboard wanaagsan. Waxa jira xog ku saabsan xidhiidhada kore. Isku xirka DB - 8 xabbo. Waana dhan. Ma hayno macluumaad ku saabsan macaamiishu firfircoon yihiin, macaamiishu waa shaqo-la'aan, oo aan waxba qaban. Ma jiraan wax macluumaad ah oo ku saabsan macaamil ganacsi oo la sugayo iyo isku xirka la sugayo, tusaale ahaan kani waa jaantus muujinaya tirada isku xirka waana taas. Ka dibna naftaada qiyaas.
Aasaaska kormeerka PostgreSQL. Alexey Lesovsky
Sidaa darteed, si loogu daro macluumaadkan la socodka, waxaad u baahan tahay inaad gasho nidaamka pg_stat_activity view. Haddii aad waqti badan ku qaadato PostgreSQL, markaa tani waa aragti aad u wanaagsan oo ay tahay inay noqoto saaxiibkaa, sababtoo ah waxay muujinaysaa waxqabadka hadda jira ee PostgreSQL, i.e. waxa ka dhacaya. Nidaam kastaa waxaa jira khad gaar ah oo muujinaya macluumaadka ku saabsan habkan: kaas oo martigeliyaha la sameeyay xiriirka, hoostiisa isticmaalaha, hoostiisa magaca, marka macaamilka la bilaabay, codsigee hadda socda, codsigee ayaa ugu dambeyntii la fuliyay. Iyo, si waafaqsan, waxaan qiimeyn karnaa gobolka macmiilka anagoo adeegsanayna goobta stats. Marka la eego, waxaan ku kooxeyn karnaa goobtan oo aan helnaa xisaabaadka hadda ku jira kaydka iyo tirada isku xirka ee leh heerkan xogta ku jira. Oo waxaan u diri kartaa lambarada horay loo helay kormeerkayaga oo aan sawiri karno garaafyada iyaga oo ku saleysan.
Waxa kale oo muhiim ah in la qiimeeyo muddada macaamilka. Waxaan horay u sheegay in ay muhiim tahay in la qiimeeyo muddada faakuumka, laakiin macaamilada ayaa lagu qiimeeyaa si isku mid ah. Waxaa jira xact_start iyo query_start fields. Iyaga, marka loo eego, waxay muujinayaan wakhtiga bilawga ah ee wax kala iibsiga iyo wakhtiga bilawga codsiga. Waxaan qaadnaa shaqada hadda() , taasoo tuseysa shaambada wakhtiga hadda jirta, oo aan kala jarno wax kala iibsiga oo codso shaambada waqtiyada. Oo waxaan helnaa muddada macaamilka, muddada codsiga.

Haddii aan aragno macaamil ganacsiyo dheer, waa in aan horay u dhamaystirno. Culayska OLTP, wax kala iibsiga dheer ayaa durba ka badan 1-2-3 daqiiqo. Culayska shaqada ee OLAP, wax kala iibsiga dheer waa caadi, laakiin haddii ay qaataan in ka badan laba saacadood in la dhammaystiro, markaa tani sidoo kale waa calaamad muujinaysa in aan meel qalloocan ku leenahay.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky
Marka macaamiishu ku xidhmaan xogta xogta, waxay bilaabaan inay la shaqeeyaan xogtayada. Waxay galaan miisaska, waxay galaan tusmooyinka si ay xogta uga helaan miiska. Waana muhiim in la qiimeeyo sida macaamiishu ula falgalaan xogtan.

Tani waxay lama huraan u tahay si loo qiimeeyo culayska shaqadayada oo aan qiyaas ahaan u fahanno shaxaha ugu "ugu kulul" noo. Tusaale ahaan, tan waxaa looga baahan yahay xaaladaha aan rabno inaan dhigno miisaska "kulul" nooc ka mid ah kaydinta SSD ee degdega ah. Tusaale ahaan, qaar ka mid ah miisaska kaydka ah oo aynaan isticmaalin muddo dheer waxaa loo wareejin karaa nooc ka mid ah kaydka "qabow", SATA wadis oo u ogolow inay ku noolaadaan, waa la heli doonaa haddii loo baahdo.

Tani waxay sidoo kale faa'iido u leedahay in la ogaado cilladaha ka dib marka la sii daayo ama la diro. Aynu nidhaahno mashruucu wuxuu soo saaray muuqaal cusub. Tusaale ahaan, waxa aanu ku darnay hawl cusub oo lagula shaqaynayo kaydka xogta. Haddii aan sawirno garaafyada isticmaalka miiska, waxaan si fudud u ogaan karnaa cilladahaan garaafyadan. Tusaale ahaan, cusboonaysii dillaacyada ama tirtir dillaacyada. Aad bay u muuqan doontaa.

Waxa kale oo aad ku ogaan kartaa cillado xagga tirakoobka β€œsabbaynaya”. Waxa loola jeedaa? PostgreSQL waxay leedahay jadwal su'aaleed aad u xoog badan oo aad u wanaagsan. Waxayna horumariyayaashu wakhti badan galiyaan horumarkeeda. Sidee ayuu u shaqeeyaa? Si loo sameeyo qorshooyin wanaagsan, PostgreSQL waxay ururisaa tirakoobyada qaybinta xogta miisaska wakhti go'an iyo mid joogto ah. Kuwani waa qiimayaasha ugu caansan: tirada qiyamka gaarka ah, macluumaadka ku saabsan NULL ee shaxda, macluumaad badan.

Iyadoo lagu salaynayo tira-koobkan, qorshayuhu wuxuu dhisaa dhawr su'aalood, wuxuuna doortaa midka ugu wanaagsan, wuxuuna adeegsadaa qorshahan waydiinta si uu u fuliyo su'aalaha laftiisa oo uu soo celiyo xogta.

Oo waxay dhacdaa in tirakoobyadu "sabbeeyaan". Xogta tayada iyo tirada ayaa si uun isku beddeshay shaxda, laakiin tirakoobka lama ururin. Qorshayaasha la sameeyayna waxa laga yaabaa in aanay fiicnayn. Oo haddii qorshayaashayadu noqdaan kuwo aad u hooseeya oo ku salaysan kormeerka la ururiyey, oo ku salaysan miisaska, waxaan awoodi doonaa inaan aragno cilladahan. Tusaale ahaan, meel xogtu si tayo leh ayay isu beddeshay oo halkii tusmada, waxa la bilaabay in la isticmaalo baas xidhiidhsan oo miiska soo mara, i.e. Haddii su'aaluhu u baahan yihiin inay soo celiyaan 100 saf oo keliya (waxaa jira xad 100 ah), ka dib baaritaan dhammaystiran ayaa lagu samayn doonaa weydiintan. Waxayna tani had iyo jeer saameyn aad u xun ku leedahay waxqabadka.

Taasna waxaan ku arki karnaa la socodka. Oo mar horeba u fiirso waydiintan, u sharax, u sharax, ururi tirakoob, dhis tusmo dheeraad ah oo cusub. Oo mar horeba ka jawaab dhibaatadan. Taasi waa sababta ay muhiim u tahay.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Tusaale kale oo la socodka. Waxaan u maleynayaa in dad badan ay aqoonsadeen isaga sababtoo ah aad ayuu caan u yahay. Yaa u isticmaala mashaariicdooda Prometheus? Yaa badeecadan u isticmaala Prometheus? Xaqiiqdu waxay tahay in kaydka caadiga ah ee kormeerkan uu jiro dashboard-ka la shaqeynta PostgreSQL - postgres_dhoofin Prometheus Laakiin waxaa jira hal faahfaahin xun.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Waxaa jira dhowr garaaf. Iyo bytes waxaa lagu tilmaamay midnimo ahaan, i.e. waxaa jira 5 garaaf. Kuwani waa xogta Gelida, Cusbooneysii xogta, Tirtir xogta, Keen xogta oo soo celi xogta. Cabbirka halbeeggu waa bytes. Laakiin shaygu waa in tirakoobyada PostgreSQL ay ku soo celiyaan xogta tuple (saf). Sidaas awgeed, garaafyadani waa hab aad u wanaagsan oo lagu dhayalsan karo culayska shaqadaada dhowr jeer, tobanaan jeer, sababtoo ah tuple maaha byte, tuple waa xadhig, waa bytes badan oo had iyo jeer waa dhererka isbeddelka. Taasi waa, xisaabinta culeyska shaqada ee bytes isticmaalaya tuples waa hawl aan dhab ahayn ama aad u adag. Sidaa darteed, marka aad isticmaasho dashboard-ka ama la socodka la dhisay, had iyo jeer waa muhiim inaad fahamto inay si sax ah u shaqeyso oo ay kuugu soo celiso xogta saxda ah ee la qiimeeyay.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Sidee lagu heli karaa tirakoobyada miisaskan? Ujeedadan awgeed, PostgreSQL waxay leedahay qoys gaar ah oo aragtiyo ah. Aragtida ugu weynina waa pg_stat_user_miisaska. User_tables - tani waxay ka dhigan tahay jaantusyo loo sameeyay magaca isticmaalaha. Taas bedelkeeda, waxaa jira aragtiyo nidaam ay adeegsato PostgreSQL lafteeda. Oo waxaa jira miiska soo koobaya Alltables, oo ay ku jiraan labadaba nidaamka iyo kuwa isticmaala. Waxaad ka bilaabi kartaa mid kasta oo ka mid ah kuwa aad ugu jeceshahay.

Isticmaalka meelaha kore waxaad qiyaasi kartaa tirada gelin, cusbooneysiinta iyo tirtiridda. Tusaalaha dashboard-ka aan isticmaalay wuxuu isticmaalaa meelahan si aan u qiimeeyo sifooyinka culayska shaqada. Sidaa darteed, waxaan sidoo kale ku dhisi karnaa iyaga. Laakiin waxaa habboon in la xasuusto in kuwani ay yihiin tuples, ma aha bytes, sidaas darteed ma samayn karno oo keliya bytes.

Iyada oo ku saleysan xogtan, waxaan dhisi karnaa waxa loogu yeero miisaska TopN. Tusaale ahaan, Top-5, Top-10. Waxaadna la socon kartaa miisaska kulul ee dib loo warshadeeyay si ka badan kuwa kale. Tusaale ahaan, 5 miis oo "kulul" oo la geliyo. Anaga oo adeegsanayna shaxdan TopN waxa aanu qiimaynaa culayska shaqadeena waxaanan qiimayn karnaa dilaaca culayska shaqada kadib marka la sii daayo, cusboonaysiinta, iyo dirida

Waxa kale oo muhiim ah in la qiimeeyo cabbirka miiska, sababtoo ah mararka qaarkood horumariyayaashu waxay soo saaraan muuqaal cusub, miisaskayaduna waxay bilaabaan inay bararaan cabbirkooda waaweyn, sababtoo ah waxay go'aansadeen inay ku daraan xog dheeri ah oo dheeraad ah, laakiin ma saadaalin sida tani u dhici doonto. saameeya cabbirka xogta xogta Kiisaska noocan oo kale ah waxay sidoo kale nagu noqdeen lama filaan.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Haddana su'aal yar ayaa kuu taal. Su'aal noocee ah ayaa soo baxaysa marka aad aragto culayska saaran server-kaaga xogta? Waa maxay su'aasha xigta ee aad hayso?

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Laakin run ahaantii su'aashu waxay soo baxaysaa sida soo socota. Waa maxay codsiyada uu keeno culaysku? Taasi waa, ma aha wax xiiso leh in la eego hababka uu keeno culeyska. Way caddahay in haddii martigeliyaha uu leeyahay database, markaas database-ku halkaas ayuu ku socdaa oo ay caddahay in kaliya database-yada halkaas lagu tuuri doono. Haddii aan furno Top, waxaan halkaas ku arki doonaa liiska hababka PostgreSQL ee wax sameynaya. Ma cadda Top waxa ay sameynayaan.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Sidaa darteed, waxaad u baahan tahay inaad hesho weydiimahaas oo keena culeyska ugu sarreeya, sababtoo ah su'aalaha hagaajinta, sida caadiga ah, waxay siisaa faa'iido badan marka loo eego hagaajinta PostgreSQL ama qaabeynta nidaamka hawlgalka, ama xitaa hagaajinta qalabka. Marka loo eego qiyaastayda, tani waa qiyaastii 80-85-90%. Taasna si degdeg ah ayaa loo sameeyaa. Way ka dhakhso badan tahay in la saxo codsiga intii la hagaajin lahaa qaabaynta, jadwal dib u bilaabista, gaar ahaan haddii aan xogta xogta dib loo bilaabi karin, ama lagu dari karin qalab. Way fududahay inaad meel ku qorto weydiinta ama aad ku darto tusmo si aad natiijo fiican uga hesho su'aashan.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky
Sidaas awgeed, waa lagama maarmaan in la kormeero codsiyada iyo ku filnaantooda. Aan soo qaadanno tusaale kale oo la socodka. Oo halkan, sidoo kale, waxay u muuqataa in ay jirto la socodka aad u fiican. Waxaa jira macluumaad ku saabsan ku celcelinta, waxaa jira macluumaad ku saabsan soo saarista, xannibista, ka faa'iidaysiga kheyraadka. Wax walba waa fiican yihiin, laakiin ma jiraan wax macluumaad ah oo ku saabsan codsiyada. Ma cadda waxa su'aalaha ku socda kaydkayaga, inta ay socdaan, inta ka mid ah weydiimahan. Had iyo jeer waxaan u baahanahay inaan xogtan ku hayno la socodkayaga.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Iyo si aan u helno macluumaadkan waxaan isticmaali karnaa cutubka pg_stat_statements. Iyada oo ku saleysan, waxaad dhisi kartaa garaafyo kala duwan. Tusaale ahaan, waxaad ka heli kartaa macluumaadka ku saabsan weydiimaha ugu badan, taas oo ah, weydiimaha kuwa la fuliyo inta badan. Haa, ka dib marka la diro sidoo kale aad bay faa'iido u leedahay in la eego oo la fahmo haddii ay jiraan wax kor u kaca codsiyada.

Waxaad la socon kartaa su'aalaha ugu dheer, taas oo ah, weydiimahaas oo qaata muddada ugu dheer in la dhammaystiro. Waxay ku shaqeeyaan processor-ka, waxay cunaan I/O. Waxaan sidoo kale ku qiimeyn karnaa tan anagoo adeegsanayna wadarta guud_time, mean_time, blk_write_time iyo blk_read_time.

Waxaan qiimeyn karnaa oo aan la socon karnaa codsiyada ugu culus marka la eego isticmaalka kheyraadka, kuwa wax ka akhriya saxanka, ee ku shaqeeya xusuusta, ama, liddi ku ah, abuurista nooc ka mid ah culeyska qoraalka.

Waxaan qiimeyn karnaa codsiyada deeqsinimada leh. Kuwani waa weydiimaha soo celinaya tiro badan oo saf ah. Tusaale ahaan, tani waxay noqon kartaa qaar codsi ah oo ay illoobeen inay xaddidaan. Oo waxay si fudud u soo celinaysaa dhammaan nuxurka miiska ama su'aalaha guud ahaan miisaska la waydiiyay.

Waxaad sidoo kale la socon kartaa su'aalaha isticmaala faylasha ku meel gaarka ah ama miisaska ku meel gaarka ah.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky
Oo waxaan weli haynaa hababka asalka ah. Nidaamyada asaasiga ahi waa isbaarada ama waxaa sidoo kale loo yaqaan isbaarada, kuwani waa autovacuum iyo ku celcelin.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Tusaale kale oo la socodka. Dhanka bidix waxaa ku yaal tab dayactirka, u tag oo rajayn inaad aragto wax faa'iido leh. Laakiin halkan waa kaliya wakhtiga hawlgalka vacuum iyo ururinta tirakoobka, wax kale maaha. Tani waa xog aad u liidata, marka waxaan had iyo jeer u baahanahay inaan helno macluumaad ku saabsan sida hababka asalka ahi ugu shaqeeyaan xogtayada iyo haddii ay jiraan wax dhibaato ah oo ka yimid shaqadooda.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Marka aan eegno isbaarooyinka, waa in aan xasuusannaa in isbaaradu ay ka soo daadiyaan bogag wasakh ah oo ka soo jeeda aagga xusuusta jeexan ilaa diskka, ka dibna abuuraan isbaaro. Isbaaradaan waxaa markaas loo isticmaali karaa meel lagu soo kabsado haddii PostgreSQL si lama filaan ah loo joojiyo xaalad degdeg ah.

Sidaa darteed, si aad u daadiso dhammaan boggaga "wasakha" ee diskka, waxaad u baahan tahay inaad sameyso qadar qoraal ah. Iyo, sida caadiga ah, nidaamyada leh qadar badan oo xusuusta ah, tani waa wax badan. Oo haddii aan samayno isbaarooyinka marar badan muddo gaaban gudaheed, markaa waxqabadka diskku aad ayuu hoos ugu dhacayaa. Codsiyada macmiilku waxay la kulmi doonaan ilo la'aan. Waxay ku tartami doonaan kheyraad iyo wax soo saar la'aan.

Sidaa darteed, iyada oo loo marayo pg_stat_bgwriter iyadoo la adeegsanayo meelaha la cayimay waxaan la socon karnaa tirada isbaarooyinka dhacaya. Oo haddii aan haysanno isbaarooyin badan oo waqti go'an ah (10-15-20 daqiiqo, nus saac), tusaale ahaan, 3-4-5, markaa tani waxay noqon kartaa dhibaato. Oo waxaad mar hore u baahan tahay inaad eegto kaydka xogta, fiiri qaabeynta, waxa sababa isbaarooyinka faraha badan. Waxaa laga yaabaa inuu jiro nooc ka mid ah duubista weyn ee socda. Waxaan horeyba u qiimeyn karnaa culeyska shaqada, sababtoo ah waxaan horey ugu darnay garaafyada shaqada. Waxaan horeyba u hagaajin karnaa cabbirada isbaarada waxaanan hubin karnaa inaysan si weyn u saameynin waxqabadka weydiinta.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Waxaan mar kale ku soo laabanayaa autovacuum sababtoo ah waa wax sidan oo kale ah, sida aan sheegay, taas oo si fudud u kordhin karta labadaba diskka iyo waxqabadka su'aalaha, markaa had iyo jeer waa muhiim in la qiyaaso qadarka autovacuum.

Tirada shaqaalaha autovacuum ee kaydka xogta ayaa xadidan. Sida caadiga ah, waxaa jira saddex ka mid ah, sidaas darteed haddii aan had iyo jeer haysanno saddex shaqaale oo ka shaqeeya xogta, tani waxay ka dhigan tahay in autovacuum aan la habeynin, waxaan u baahanahay inaan kor u qaadno xadka, dib u eegisyada goobaha autovacuum oo gal qaabeynta.
Waa muhiim in la qiimeeyo shaqaalaha vacuum ee aan hayno. Ama waxaa laga bilaabay isticmaalaha, DBA ayaa timid oo gacanta ku furtay nooc ka mid ah faaruqinta, taasina waxay abuurtay culays. Waxaan leenahay nooc ka mid ah dhibaato. Ama kani waa tirada faakuumka ee furaya miiska wax kala iibsiga. Noocyada qaarkood ee PostgreSQL kuwani waa faakuumooyin aad u culus. Oo waxay si fudud u kordhin karaan waxqabadka sababtoo ah waxay akhriyaan miiska oo dhan, sawiraan dhammaan baloogyada miiskaas.

Iyo, dabcan, muddada vacuums. Haddii aan haysano faakuumyo wakhti dheer soconaya oo soconaya wakhti aad u dheer, markaa tani waxay ka dhigan tahay inaan mar kale u baahanahay inaan fiiro gaar ah u yeelano qaabeynta faakuumka oo laga yaabo in aan dib u eegno goobaha. Sababtoo ah xaalad ayaa laga yaabaa inay soo baxdo marka faakuumku uu ku shaqeeyo miiska muddo dheer (3-4 saacadood), laakiin inta lagu jiro wakhtiga faakuumku shaqeynayey, tiro badan oo saf dhintay ayaa mar kale ku ururay miiska. Isla marka uu faakuumku dhammaado, waxa uu u baahan yahay in uu mar kale faaruqiyo miiskan. Oo waxaan u nimid xaalad - vacuum aan dhammaadka lahayn. Xaaladdan oo kale, faakuumku ma la qabsanayo shaqadiisa, miisaskana si tartiib tartiib ah ayey u bilaabaan inay bararaan cabbirka, inkastoo mugga xogta faa'iido leh ee ku jirta ay weli tahay. Sidaa darteed, inta lagu jiro vacuums dheer, waxaan had iyo jeer eegnaa qaabeynta oo aan isku daynaa inaan hagaajinno, laakiin isla markaaba si waxqabadka codsiyada macmiilku uusan u dhicin.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Maalmahan wax ku ool ah ma jiro rakibaadda PostgreSQL oo aan lahayn ku celcelinta qulqulka. Ku-noqoshada waa habka xogta laga raro sayidka loona wareejiyo nuqul.

Ku-noqoshada gudaha PostgreSQL waxa lagu sameeyaa diiwaanka wax kala iibsiga. Saaxirku waxa uu abuuraa diiwaanka wax kala iibsiga. Diiwaanka wax kala iibsiga waxa uu ku dul socdaa isku xidhka shabakada ee nuqulka, ka dibna waxa lagu soo saaray nuqulka. Way fududahay.

Sidaas awgeed, pg_stat_replication view waxa loo istcmaalay in lagula socdo dib u dhaca soo noqnoqda Laakiin wax walba iyada kuma fududa. Nooca 10, aragtidu waxay soo martay isbeddello dhowr ah. Marka hore, meelaha qaar ayaa magacyo laga beddelay. Beeraha qaarna waa lagu daray. Nooca 10, beero ayaa ka soo muuqday kuwaas oo kuu oggolaanaya inaad ku qiyaasto dib u dhaca ku-noqoshada ilbidhiqsiyo gudahood. Aad bay u raaxo badan tahay. Kahor nooca 10, waxaa suurtagal ah in la qiyaaso dib u dhaca ku yimid bytes. Doorashadani waxay ku sii jirtaa nooca 10, i.e. waxaad dooran kartaa waxa adiga kugu habboon - qiyaas dib u dhaca bytes ama qiyaas dib u dhaca ilbiriqsiyo gudahood. Dad badan ayaa labadaba sameeya.

Laakiin si kastaba ha ahaatee, si aad u qiimeyso dib u dhaca ku-noqoshada, waxaad u baahan tahay inaad ogaato booska log ee macaamilka. Iyo boosaska diiwaanka wax kala iibsiga ayaa si sax ah ugu jira muuqaalka pg_stat_replication. Marka la eego, waxaan ku qaadan karnaa laba dhibcood log-ga wax kala iibsiga anagoo adeegsanayna shaqada pg_xlog_location_diff(). Xisaabi duleelka dhexdooda oo hel dib u dhaca ku celcelinta bytes. Aad bay u habboon tahay oo fudud.

Nooca 10, shaqadan waxaa loo beddelay pg_wal_lsn_diff(). Guud ahaan, dhammaan hawlaha, aragtida, iyo adeegyada meesha ereyga "xlog" laga helay, waxaa lagu beddelay qiimaha "wal". Tani waxay khusaysaa labada aragtiyood iyo hawlahooda. Tani waa ikhtiraac cusub.

Waxaa dheer, nooca 10, waxaa lagu daray khadadka si gaar ah u muujinaya dib u dhaca. Kuwani waa dib-u-dhac qor, dib-u-dhac, dib-u-dhac ku celis ah. Taasi waa, waa muhiim in la kormeero arrimahan. Haddii aan aragno in aan haysanno dib-u-celinta taranka, markaa waxaan u baahanahay inaan baarno sababta ay u soo baxday, meesha ay ka timid oo aan hagaajinno dhibaatada.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Ku dhawaad ​​wax walba waa ay hagaagsan yihiin marka la eego cabbirada nidaamka. Marka kormeer kasta uu bilowdo, waxay ku bilaabataa cabbirada nidaamka. Tani waa tuurista processor-rada, xusuusta, isdhaafsiga, shabakadda iyo diskka. Si kastaba ha ahaatee, xuduudo badan ayaan meesha ku jirin si caadi ah.

Haddii wax walba ay ku habboon yihiin habka dib-u-warshadaynta, markaa waxaa jira dhibaatooyin dib-u-warshadaynta diskka. Sida caadiga ah, kormeerayaasha horumariyayaashu waxay ku daraan macluumaadka ku saabsan wax soo saarka. Waxay noqon kartaa yops ama bytes. Laakin waxay iloobaan latency iyo ka faa'iidaysiga aaladaha diskooga. Kuwani waa halbeegyo aad u muhiim ah oo noo ogolaanaya inaan qiimeyno sida ay u raran yihiin saxanadayada iyo sida ay u gaabiyaan. Haddii aan haysanno daahitaan sare, markaa tani waxay ka dhigan tahay inay jiraan dhibaatooyin qaar ka mid ah saxanadaha. Haddii aan haysano ka faa'iidaysi sare, waxay la macno tahay in saxanadu aanay la qabsanayn. Kuwani waa sifooyin ka wanaagsan wax soo saarka.

Waxaa intaa dheer, tirakoobyadan sidoo kale waxaa laga heli karaa nidaamka faylka /proc, sida loo sameeyo dib-u-warshadaynta soo-saareyaasha. Ma garanayo sababta macluumaadkan loogu darin la socodka. Laakiin si kastaba ha ahaatee, waa muhiim inaad tan ku hayso la socodkaaga.

Isla sidaas oo kale ayaa khuseeysa is-dhexgalka shabakada. Waxaa jira macluumaad ku saabsan wax soo saarka shabakadda ee xirmooyinka, bytes, laakiin si kastaba ha ahaatee ma jiraan wax macluumaad ah oo ku saabsan latency iyo wax macluumaad ah oo ku saabsan isticmaalka, inkastoo tani sidoo kale waa macluumaad faa'iido leh.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Kormeer kastaa wuxuu leeyahay cillado. Si kastaba ha ahaatee nooca kormeer ee aad qaadato, had iyo jeer ma buuxin doonto shuruudaha qaarkood. Laakiin si kastaba ha ahaatee, way horumarayaan, astaamo cusub iyo waxyaabo cusub ayaa lagu soo kordhinayaa, ee wax dooro oo dhammeeyo.

Oo si loo dhammeeyo, waa in aad had iyo jeer lahaa fikrad ah macnaha tirakoobyada la bixiyay iyo sida aad u isticmaali karto si aad u xalliso dhibaatooyinka.

Iyo dhowr qodob oo muhiim ah:

  • Waa inaad had iyo jeer la socotaa helitaanka oo aad haysato dashboards si aad si dhakhso ah u qiimeyso in wax walba ay u hagaagsan yihiin xogta xogta.
  • Had iyo jeer waxaad u baahan tahay inaad fikrad ka haysato waxa ay macaamiishu kula shaqeynayaan xogtaada si aad uga saarto macaamiisha xun oo aad u riddo.
  • Waa muhiim in la qiimeeyo sida macaamiishani ula shaqeeyaan xogta. Waxaad u baahan tahay inaad fikrad ka haysato culayska shaqadaada.
  • Waa muhiim in la qiimeeyo sida culeyska shaqada loo sameeyay, iyadoo la kaashanayo su'aalaha. Waad qiimeyn kartaa su'aalaha, waad wanaajin kartaa, dib u habeyn kartaa, u dhisi kartaa tusmooyin iyaga. Aad bay muhiim u tahay.
  • Nidaamyada asaasiga ah waxay si xun u saameyn karaan codsiyada macmiilka, markaa waa muhiim in la kormeero inaysan isticmaalin ilo badan.
  • Qiyaasta nidaamka waxay kuu oggolaaneysaa inaad sameyso qorshooyin cabbirid iyo kordhinta awoodda server-yadaada, sidaas darteed waa muhiim inaad sidoo kale la socoto oo aad qiimeyso.

Aasaaska kormeerka PostgreSQL. Alexey Lesovsky

Haddii aad xiisaynayso mawduucan, markaa waxaad raaci kartaa xiriiriyeyaashan.
http://bit.do/stats_collector - Tani waa dukumeenti rasmi ah oo ka yimid ururiyaha tirakoobka. Waxaa jira sharraxaad dhammaan aragtiyaha tirakoobka iyo sharraxaadda dhammaan goobaha. Waad akhrin kartaa, fahmi kartaa oo aad falanqayn kartaa. Oo iyaga ku saleysan, dhis garaafyadaada oo ku dar kormeerkaaga.

Codsiyada Tusaalaha:
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

Kani waa kaydka shirkadeena iyo anigaba. Waxay ka kooban yihiin tusaale ahaan weydiimo. Ma jiraan wax su'aalo ah oo ka mid ah xulashada * taxanaha halkaas. Waxaa jira su'aalo diyaarsan oo horay loo sameeyay oo leh isku-xirno, adoo isticmaalaya hawlo xiiso leh oo kuu ogolaanaya inaad tirooyinka cayriin u rogaan qiimaha la akhriyi karo, qiyamka habboon, i.e. kuwani waa bytes, waqti. Waad soo qaadi kartaa, fiirin kartaa, falanqeyn kartaa, ku dari kartaa la socodkaaga, dhisi kartaa kormeerkaaga iyaga oo ku saleysan.

Su'aalahaada

Su'aal: Waxaad sheegtay inaadan xayeysiin doonin summadaha, laakiin weli waan xiiseeyaa - waa maxay nooca dashboard-ka aad ku isticmaasho mashaariicdaada?
Jawaab: Way kala duwan tahay. Waxay dhacdaa in aanu u nimaadno macaamiil oo uu horeba u lahaa kormeerkiisa. Waxaanan kula talinaynaa macmiilka waxa loo baahan yahay in lagu daro kormeerkooda. Xaaladda ugu xun waa Zabbix. Sababtoo ah ma laha awood ay ku dhisto garaafyada TopN. Anaga lafteena ayaa isticmaalnaa okmeter, sababtoo ah waxaan kala tashanay nimankan korjoogteynta. Waxay la socdeen PostgreSQL oo ku salaysan tilmaamo farsamo. Waxaan qorayaa mashruucayga xayawaanka rabaayada ah, kaas oo xogta ku ururiya Prometheus oo ku soo gudbiya Grafana. Hawshaydu waa in aan abuuro dhoofiye u gaar ah Prometheus ka dibna wax walba ku bixiyo Grafana.

Su'aal: Ma jiraan wax isbarbardhig oo ah warbixinnada AWR ama... isku darka? Ma ka taqaan wax sidan oo kale ah?
Jawaab: Haa, waan ogahay waxa AWR yahay, waa shay fiican. Waqtigan xaadirka ah waxaa jira baaskiilo kala duwan oo hirgeliya qiyaas ahaan qaabka soo socda. Mudo wakhti ah, qaar ka mid ah khadadka aasaasiga ah ayaa loo qoraa isla PostgreSQL ama kayd gaar ah. Waxaad ku google kartaa internetka, way jiraan. Mid ka mid ah kuwa wax soo saara ee noocan oo kale ah ayaa ku fadhiya golaha sql.ru ee dunta PostgreSQL. Waad ku qaban kartaa halkaas. Haa, waxaa jira waxyaabo noocaas ah, waa la isticmaali karaa. Oo lagu daray ay pgCenter Waxa kale oo aan qorayaa shay kuu ogolaanaya inaad samayso wax la mid ah.

PS1 Haddii aad isticmaalayso postgres_exporter, waa maxay dashboard-ka aad isticmaalayso? Waxaa jira dhowr ka mid ah. Durba waa duugoobay. Ma laga yaabaa in bulshadu abuurto qaab-dhismeedka la cusboonaysiiyay?

PS2 waa la saaray pganalyze sababtoo ah waa bixinta SaaS lahaanshaha taas oo diiradda saareysa la socodka waxqabadka iyo talooyinka toosinta.

Isticmaalayaasha diiwaangashan oo keliya ayaa ka qaybqaadan kara sahanka. Soo gal, soo dhawoow.

Kormeerka postgresql ee is-martigeliyay (oo leh dashboard) ayaad u aragtaa tan ugu fiican?

  • 30,0%Zabbix + kordhinta Alexey Lesovsky ama zabbix 4.4 ama libzbxpgsql + zabbix libzbxpgsql + zabbix3

  • 0,0%https://github.com/lesovsky/pgcenter0

  • 0,0%https://github.com/pg-monz/pg_monz0

  • 20,0%https://github.com/cybertec-postgresql/pgwatch22

  • 20,0%https://github.com/postgrespro/mamonsu2

  • 0,0%https://www.percona.com/doc/percona-monitoring-and-management/conf-postgres.html0

  • 10,0%pganalyze waa SaaS iska leh - Ma tirtiri karo1

  • 10,0%https://github.com/powa-team/powa1

  • 0,0%https://github.com/darold/pgbadger0

  • 0,0%https://github.com/darold/pgcluu0

  • 0,0%https://github.com/zalando/PGObserver0

  • 10,0%https://github.com/spotify/postgresql-metrics1

10 isticmaale ayaa u codeeyay. 26 isticmaale ayaa ka aamusay.

Source: www.habr.com

Add a comment