Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Tar-sgrìobhadh den aithisg 2015 le Ilya Kosmodemyansky "Linux a’ gleusadh gus coileanadh PostgreSQL a leasachadh"

Àicheadh: Tha mi a’ toirt fa-near gu bheil ceann-latha air an aithisg seo Samhain 2015 - tha còrr is 4 bliadhna air a dhol seachad agus tòrr ùine air a dhol seachad. Chan eil an dreach 9.4 air a bheilear a’ beachdachadh san aithisg a’ faighinn taic tuilleadh. Thairis air na 4 bliadhna a dh’ fhalbh, chaidh 5 fiosan ùra de PostgreSQL a leigeil ma sgaoil, agus chaidh dreachan 15 den kernel Linux fhoillseachadh. Ma nì thu ath-sgrìobhadh air na h-earrannan seo, gheibh thu aithisg eile mu dheireadh. Ach an seo tha sinn a’ beachdachadh air gleusadh Linux bunaiteach airson PostgreSQL, a tha fhathast buntainneach an-diugh.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh


Is e m ’ainm Ilya Kosmodemyansky. Tha mi ag obair aig PostgreSQL-Consulting. Agus a-nis bruidhnidh mi beagan mu dè a nì mi le Linux a thaobh stòran-dàta san fharsaingeachd agus PostgreSQL gu sònraichte, leis gu bheil na prionnsapalan gu math coltach.

Dè a bhios sinn a 'bruidhinn? Ma nì thu conaltradh le PostgreSQL, an uairsin gu ìre feumaidh tu a bhith nad rianadair UNIX. Dè a tha e a’ ciallachadh? Ma nì sinn coimeas eadar Oracle agus PostgreSQL, an uairsin ann an Oracle feumaidh tu a bhith nad rianadair stòr-dàta 80% DBA agus 20% Linux admin.

Le PostgreSQL tha e beagan nas iom-fhillte. Le PostgreSQL feumaidh tuigse nas fheàrr a bhith agad air mar a tha Linux ag obair. Agus aig an aon àm, ruith beagan às deidh an locomotaibh, oir o chionn ghoirid chaidh a h-uile càil ùrachadh gu math. Agus thèid kernels ùra a leigeil ma sgaoil, agus nochdaidh gnìomhachd ùr, coileanadh a’ leasachadh, msaa.

Carson a tha sinn a’ bruidhinn mu dheidhinn Linux? Chan ann idir leis gu bheil sinn aig co-labhairt Linux Peter, ach air sgàth ann an suidheachaidhean an latha an-diugh is e Linux aon de na siostaman obrachaidh as reusanta airson stòran-dàta a chleachdadh san fharsaingeachd agus PostgreSQL gu sònraichte. Leis gu bheil FreeBSD, gu mì-fhortanach, a’ leasachadh ann an dòigh gu math neònach. Agus bidh trioblaidean ann an dà chuid le coileanadh agus le iomadh rud eile. Tha coileanadh PostgreSQL air Windows sa chumantas na fhìor chùis air leth, stèidhichte air nach eil an aon chuimhne co-roinnte aig Windows ri UNIX, fhad ‘s a tha PostgreSQL uile ceangailte ri seo, leis gur e siostam ioma-phròiseas a th’ ann.

Agus tha mi a’ smaoineachadh gu bheil nas lugha de ùidh aig a h-uile duine ann an exotics mar Solaris, mar sin rachamaid.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Tha còrr air 1 roghainn syctl aig cuairteachadh Linux ùr-nodha, a rèir mar a thogas tu an kernel. Aig an aon àm, ma choimheadas sinn air na diofar chnothan, is urrainn dhuinn rudeigin atharrachadh ann an iomadh dòigh. Tha paramadairean siostam faidhle ann air mar a chuireas iad suas iad. Ma tha ceistean agad mu mar a thòisicheas tu e: dè a nì thu comasach anns a’ BIOS, mar a rèiticheas tu am bathar-cruaidh, msaa.

Is e tomhas mòr a tha seo a dh'fhaodar a dheasbad thairis air grunn làithean, agus chan ann ann an aon aithisg ghoirid, ach a-nis cuiridh mi fòcas air rudan cudromach, mar a sheachlas tu na ràcan sin a tha cinnteach gun cuir thu stad ort bho bhith a 'cleachdadh an stòr-dàta agad gu math air Linux ma tha thu. na cuir ceart iad. Agus aig an aon àm, is e puing chudromach nach eil mòran de pharaimearan bunaiteach air an toirt a-steach do na roghainnean a tha ceart airson an stòr-dàta. Is e sin, gu bunaiteach obraichidh e gu dona no gun a bhith idir.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Dè na targaidean gleusaidh traidiseanta a tha ann an Linux? Tha mi a’ smaoineachadh leis gu bheil thu uile a’ dèiligeadh ri rianachd Linux, nach eil feum sònraichte air mìneachadh dè na targaidean a th’ ann.

Faodaidh tu gleusadh:

  • CPUs.
  • Cuimhne.
  • Stòradh.
  • Eile. Bruidhnidh sinn mu dheidhinn seo aig an deireadh airson greim-bìdh. Fiù 's, mar eisimpleir, faodaidh crìochan leithid poileasaidh sàbhalaidh lùth buaidh a thoirt air coileanadh ann an dòigh nach gabh a thuigsinn agus chan e an dòigh as tlachdmhoire.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Dè na mion-fhiosrachadh a th’ aig PostgreSQL agus an stòr-dàta san fharsaingeachd? Is e an duilgheadas a th’ ann nach urrainn dhut cnò fa leth a tweakadh agus faicinn gu bheil ar coileanadh air a thighinn air adhart gu mòr.

Tha, tha innealan mar sin ann, ach tha stòr-dàta na rud iom-fhillte. Bidh e ag eadar-obrachadh leis a h-uile goireas a tha aig an fhrithealaiche agus is fheàrr leis eadar-obrachadh chun na h-ìre as àirde. Ma choimheadas tu air molaidhean gnàthach Oracle air mar a chleachdas tu OS aoigheachd, bidh e coltach ris an fhealla-dhà mun cosmonaut Mongolia sin - thoir biadh don chù agus na suathadh ri dad. Bheir sinn na goireasan gu lèir don stòr-dàta, rèitichidh an stòr-dàta fhèin a h-uile càil.

Ann am prionnsapal, gu ìre tha an suidheachadh dìreach mar a tha e le PostgreSQL. Is e an t-eadar-dhealachadh nach urrainn don stòr-dàta fhathast na goireasan gu lèir a ghabhail air a shon fhèin, ie an àiteigin aig ìre Linux feumaidh tu a h-uile càil a rèiteachadh leat fhèin.

Is e am prìomh bheachd gun a bhith a’ taghadh aon thargaid agus tòiseachadh air a ghleusadh, mar eisimpleir, cuimhne, CPU no rudeigin mar sin, ach sgrùdadh a dhèanamh air an eallach obrach agus feuchainn ris an t-slighe a-steach a leasachadh cho mòr ‘s as urrainn gus am bi an luchd a chruthaich deagh phrògramadairean e. dhuinne, a’ gabhail a-steach ar luchd-cleachdaidh.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Seo dealbh airson mìneachadh dè th’ ann. Tha bufair Linux OS ann agus tha cuimhne co-roinnte ann agus tha bufairean co-roinnte PostgreSQL ann. Bidh PostgreSQL, eu-coltach ri Oracle, ag obair gu dìreach tron ​​​​bufair kernel, ie, gus am faigh duilleag bhon diosc a-steach don chuimhne roinnte aige, feumaidh e a dhol tron ​​​​bufair kernel agus air ais, an dearbh shuidheachadh.

Под этой системой живут диски. Я это нарисовал как диски. На самом деле там может быть RAID-контроллер и т. д.

Agus bidh an toradh seo a-steach aon dòigh no dòigh eile a’ tachairt tron ​​​​chùis seo.

Tha PostgreSQL na stòr-dàta clasaigeach. Tha duilleag a-staigh. Agus bidh a h-uile cuir a-steach agus toradh a ’tachairt a’ cleachdadh dhuilleagan. Tha sinn a 'togail bhlocaichean gu cuimhne le duilleagan. Agus mura do thachair dad, bidh sinn dìreach gan leughadh, an uairsin bidh iad a’ dol à sealladh mean air mhean bhon tasgadan seo, bho na bufairean co-roinnte agus a ’tighinn gu crìch air ais air an diosc.

Ma chuireas sinn rudeigin an àite àiteigin, tha an duilleag gu lèir air a chomharrachadh mar salach. Chomharraich mi iad an seo ann an gorm. Agus tha seo a 'ciallachadh gum feum an duilleag seo a bhith air a shioncronachadh le stòradh bloc. Is e sin, nuair a rinn sinn salach e, rinn sinn inntrig ann an WAL. Agus aig àm iongantach air choireigin, thàinig iongantas ris an canar checkpoint. Agus chaidh fiosrachadh a chlàradh sa log seo gun robh e air ruighinn. Agus tha seo a’ ciallachadh gun deach a h-uile duilleag salach a bha an seo aig an àm sin anns na bufairean co-roinnte sin a shioncronachadh leis an diosc stòraidh a’ cleachdadh fsync tron ​​​​bufair kernel.

Carson a tha seo ga dhèanamh? Ma chaill sinn bholtaids, cha d 'fhuair sinn an suidheachadh gun deach an dàta gu lèir a chall. Tha cuimhne leantainneach, a dh'innis a h-uile duine dhuinn, gu ruige seo ann an teòiridh stòr-dàta - is e àm ri teachd soilleir a tha seo, a tha sinn, gu dearbh, a 'strì airson agus is toil leinn e, ach airson a-nis tha iad beò ann an 20 bliadhna nas lugha. Agus, gu dearbh, feumar sùil a chumail air seo uile.

Agus is e an obair a th’ ann a bhith a’ meudachadh trochur a bhith a’ gleusadh aig na h-ìrean sin uile gus an gluais e air ais is air adhart gu sgiobalta. Tha cuimhne co-roinnte gu bunaiteach na tasgadan duilleag. Ann am PostgreSQL chuir sinn ceist taghte no rudeigin, thug e air ais an dàta seo bhon diosc. Chrìochnaich iad ann am bufairean co-roinnte. Mar sin, airson seo a bhith ag obair nas fheàrr, feumaidh tòrr cuimhne a bhith ann.

Gus an obraich seo gu math agus gu sgiobalta, feumaidh tu an siostam obrachaidh a rèiteachadh gu ceart aig a h-uile ìre. Agus tagh bathar-cruaidh cothromach, oir ma tha mì-chothromachadh ann an àite air choreigin, faodaidh tu tòrr cuimhne a dhèanamh, ach cha bhith e air a fhrithealadh aig astar gu leòr.

Agus rachamaid tro gach aon de na puingean sin.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Gus toirt air na duilleagan seo siubhal air ais is air adhart nas luaithe, feumaidh tu na leanas a choileanadh:

  • An toiseach, feumaidh tu obrachadh nas èifeachdaiche le cuimhne.
  • San dàrna h-àite, bu chòir an gluasad seo nuair a thèid duilleagan bhon chuimhne gu diosc a bhith nas èifeachdaiche.
  • Agus san treas àite, feumaidh diosgan math a bhith ann.

Ma tha 512 GB de RAM agad san t-seirbheisiche agus gu bheil e gu lèir a ’tighinn gu crìch air draibh cruaidh SATA gun tasgadan sam bith, bidh frithealaiche an stòr-dàta gu lèir a’ tionndadh gu bhith chan e a-mhàin pumpkin, ach pumpkin le eadar-aghaidh SATA. Ruithidh tu a-steach gu dìreach. Agus cha sàbhail dad thu.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

A thaobh a 'chiad phuing le cuimhne, tha trì rudan ann a dh' fhaodadh beatha a dhèanamh gu math duilich.

Is e a’ chiad fhear dhiubh NUMA. Tha NUMA na rud a thathas a’ dèanamh gus coileanadh a leasachadh. A rèir an eallach obrach, faodar diofar rudan a bharrachadh. Agus anns an fhoirm làithreach ùr aige, chan eil e glè mhath airson tagraidhean leithid stòran-dàta a bhios gu dian a’ cleachdadh bufairean co-roinnte tasgadan duilleag.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Ann an ùine ghoirid. Ciamar as urrainn dhut innse a bheil rudeigin ceàrr air NUMA? Tha seòrsa de bhualadh mì-thlachdmhor agad, gu h-obann tha cuid de CPU air a luchdachadh cus. Aig an aon àm, bidh thu a’ sgrùdadh cheistean ann am PostgreSQL agus a’ faicinn nach eil dad coltach ris an sin. Cha bu chòir na ceistean sin a bhith cho dian CPU. Faodaidh tu seo a ghlacadh airson ùine mhòr. Tha e nas fhasa am moladh ceart a chleachdadh bhon fhìor thoiseach air mar a chuireas tu NUMA air dòigh airson PostgreSQL.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Dè dha-rìribh a tha a’ dol? Tha NUMA a’ seasamh airson Cothrom Cuimhne Neo-Èideadh. Dè a’ phuing? Tha CPU agad, ri thaobh tha a chuimhne ionadail. Agus faodaidh an eadar-cheangal cuimhne seo cuimhne a tharraing suas bho CPUan eile.

Ma ruitheas tu numactl --hardware, an uairsin gheibh thu duilleag cho mòr. Am measg rudan eile, bidh raon astaran ann. Bidh àireamhan ann - 10-20, rudeigin mar sin. Chan eil na h-àireamhan sin nas motha na an àireamh de hopan airson a’ chuimhne iomallach seo a thogail agus a chleachdadh gu h-ionadail. Ann am prionnsabal, deagh bheachd. Bidh seo a’ luathachadh coileanadh gu math fo raon eallach obrach.

A-nis smaoinich gu bheil aon CPU agad an-toiseach a’ feuchainn ris a’ chuimhne ionadail aige a chleachdadh, agus an uairsin a’ feuchainn ri cuimhne eile a tharraing suas tro eadar-cheangal airson rudeigin. Agus gheibh an CPU seo an tasgadan duilleag PostgreSQL gu lèir agad - sin e, cuid de gigabytes. Bidh thu an-còmhnaidh a’ faighinn a’ chùis as miosa, oir air an CPU mar as trice chan eil mòran cuimhne anns a’ mhodal sin fhèin. Agus tha a h-uile cuimhne a tha air a sheirbheis a 'dol tro na h-eadar-cheanglaichean sin. Tha e a 'tionndadh a-mach slaodach agus brònach. Agus tha am pròiseasar agad a tha a’ toirt seirbheis don nód seo an-còmhnaidh air a luchdachadh cus. Agus tha ùine ruigsinneachd na cuimhne seo dona, slaodach. Seo an suidheachadh nach eil thu ag iarraidh ma tha thu a' cleachdadh seo airson stòr-dàta.

Mar sin, is e roghainn nas ceart airson an stòr-dàta nach eil fios aig siostam-obrachaidh Linux dè a tha a’ dol ann idir. Gus am faigh e cothrom air cuimhne mar a tha e.

Carson a tha sin? Bhiodh e coltach gum bu chòir dha a bhith an taobh eile. Tha seo a 'tachairt airson aon adhbhar sìmplidh: feumaidh sinn tòrr cuimhne airson an tasgadan duilleag - deichean, ceudan de gigabytes.

Agus ma bhuilich sinn seo gu lèir agus gun do thaisg sinn an dàta againn an sin, bidh a’ bhuannachd bho bhith a’ cleachdadh an tasgadan gu math nas motha na a’ bhuannachd bho ruigsinneachd cho duilich air cuimhne. Agus mar sin gheibh sinn buannachd gun choimeas an taca ris an fhìrinn gum faigh sinn cothrom air cuimhne nas èifeachdaiche a’ cleachdadh NUMA.

Mar sin, tha dà dhòigh-obrach an seo an-dràsta, gus am bi an àm ri teachd soilleir air ruighinn, agus chan urrainn don stòr-dàta fhèin obrachadh a-mach dè na CPUan air a bheil e a’ ruith agus cò às a dh’ fheumas e rudeigin a tharraing.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Mar sin, is e an dòigh cheart NUMA a dhì-cheadachadh gu tur, mar eisimpleir, nuair a bhios tu ag ath-thòiseachadh. Anns a 'mhòr-chuid de shuidheachaidhean, tha na buannachdan ann an òrdugh meudachd nach eil a' cheist mu dè a tha nas fheàrr ag èirigh idir.

Tha roghainn eile ann. Bidh sinn ga chleachdadh nas trice na a’ chiad fhear, oir nuair a thig neach-dèiligidh thugainn airson taic, tha e gu math mòr dha ath-thòiseachadh an fhrithealaiche. Tha gnìomhachas aige an sin. Agus tha duilgheadasan aca air sgàth NUMA. Mar sin, feuchaidh sinn ri a chuir dheth ann an dòighean nach eil cho ionnsaigheach na ath-thòiseachadh, ach bi faiceallach dèanamh cinnteach gu bheil e ciorramach. Air sgàth, mar a tha eòlas a ’sealltainn, tha e math gun cuir sinn à comas NUMA air pròiseas pàrant PostgreSQL, ach chan eil e riatanach idir gun obraich e. Feumaidh sinn dèanamh cinnteach agus faicinn gun do thionndaidh i dheth.

Tha post math ann le Robert Haas. Is e seo aon de luchd-coimhid PostgreSQL. Aon de na prìomh luchd-leasachaidh aig a h-uile ìre ìosal giblets. Agus ma leanas tu na ceanglaichean bhon phost seo, bidh iad a’ toirt cunntas air grunn sgeulachdan dathach air mar a rinn NUMA beatha duilich dha daoine. Coimhead, dèan sgrùdadh air liosta sgrùdaidh rianadair an t-siostaim de na dh’ fheumar a rèiteachadh air an t-seirbheisiche gus am bi an stòr-dàta againn ag obair gu math. Feumar na roghainnean sin a sgrìobhadh sìos agus a sgrùdadh, oir air dhòigh eile cha bhith e glè mhath.

Thoir an aire gu bheil seo a’ buntainn ris a h-uile suidheachadh air am bi mi a’ bruidhinn. Ach mar as trice bidh stòran-dàta air an cruinneachadh ann am modh maighstir-tràill airson fulangas sgàinidhean. Na dì-chuimhnich na roghainnean sin a dhèanamh air an tràill oir aon latha bidh tubaist agad agus gluaisidh tu chun tràill agus bidh e na mhaighstir.

Ann an suidheachadh èiginneach, nuair a tha a h-uile càil gu math dona, tha am fòn agad an-còmhnaidh a’ glaodhadh agus bidh do cheannard a’ ruith le maide mòr, cha bhith ùine agad smaoineachadh air sgrùdadh. Agus faodaidh na toraidhean a bhith gu math tubaisteach.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Is e an ath phuing duilleagan mòra. Tha e duilich duilleagan mòra a dhearbhadh air leth, agus chan eil feum sam bith sin a dhèanamh, ged a tha slatan-tomhais ann as urrainn seo a dhèanamh. Tha iad furasta do Google.

Dè a’ phuing? Tha frithealaiche nach eil gu math daor agad le tòrr RAM, mar eisimpleir, barrachd air 30 GB. Cha bhith thu a’ cleachdadh duilleagan mòra. Tha seo a’ ciallachadh gu bheil cosgais a bharrachd agad a thaobh cleachdadh cuimhne. Agus tha an t-àrdachadh seo fada bhon fheadhainn as tlachdmhoire.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Carson a tha sin? Mar sin dè tha dol? Bidh an siostam obrachaidh a’ riarachadh cuimhne ann am pìosan beaga. Tha e cho goireasach, is ann mar a thachair e gu h-eachdraidheil. Agus ma thèid sinn gu mion-fhiosrachadh, feumaidh an OS seòlaidhean brìgheil eadar-theangachadh gu seòlaidhean fiosaigeach. Agus chan e am pròiseas seo an rud as sìmplidh, agus mar sin bidh an OS a’ tasgadh toradh na h-obrach seo anns an Translation Lookaside Buffer (TLB).

Agus leis gur e tasgadan a th’ anns an TLB, tha a h-uile duilgheadas a tha dualach don tasgadan ag èirigh san t-suidheachadh seo. An toiseach, ma tha tòrr RAM agad agus gu bheil e uile air a riarachadh ann am pìosan beaga, bidh am bufair seo gu math mòr. Agus ma tha an tasgadan mòr, tha e nas slaodaiche sgrùdadh a dhèanamh troimhe. Tha os cionn fallain agus bidh e fhèin a’ gabhail àite, i.e. tha RAM ga chaitheamh le rudeigin ceàrr. An turas seo.

A dhà - mar as motha a dh’ fhàsas an tasgadan ann an suidheachadh mar sin, is ann as coltaiche a bhios e gun caill thu tasgadan. Agus bidh èifeachdas an tasgadan seo a’ lùghdachadh gu luath mar a bhios a mheud a’ dol am meud. Mar sin, thàinig siostaman obrachaidh suas le dòigh-obrach shìmplidh. Tha e air a bhith air a chleachdadh ann an Linux airson ùine mhòr. Nochd e ann an FreeBSD chan eil cho fada air ais. Ach tha sinn a 'bruidhinn mu dheidhinn Linux. Is e duilleagan mòra a tha seo.

Agus an seo bu chòir a thoirt fa-near gun deach duilleagan mòra, mar bheachd, a phutadh an toiseach le coimhearsnachdan a bha a’ toirt a-steach Oracle agus IBM, ie bha luchd-saothrachaidh stòr-dàta den bheachd gu làidir gum biodh seo feumail airson stòran-dàta cuideachd.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Agus ciamar as urrainnear seo a dhèanamh caraidean le PostgreSQL? An toiseach, feumaidh duilleagan mòra a bhith air an comasachadh ann an kernel Linux.

San dàrna h-àite, feumaidh iad a bhith air an sònrachadh gu soilleir le paramadair sysctl - cia mheud a tha ann. Tha na h-àireamhan an seo bho chuid de sheann fhrithealaiche. Faodaidh tu obrachadh a-mach cia mheud bufair co-roinnte a th’ agad gus am bi duilleagan mòra a’ freagairt ann.

Agus ma tha an frithealaiche gu lèir agad coisrigte do PostgreSQL, is e deagh thoiseach tòiseachaidh a bhith a’ riarachadh an dàrna cuid 25% den RAM gu bufairean co-roinnte, no 75% ma tha thu cinnteach gum bi an stòr-dàta agad gu cinnteach a’ freagairt air an 75% seo. A’ chiad àite tòiseachaidh. Agus smaoinich, ma tha 256 GB de RAM agad, an uairsin, a rèir sin, bidh 64 GB de bhufairean mòra agad. Obraich a-mach timcheall air le beagan iomall - cò ris a bu chòir am figear seo a shuidheachadh.

Ro dhreach 9.2 (mura h-eil mi ceàrr, bhon dreach 8.2), bha e comasach PostgreSQL a cheangal ri duilleagan mòra a’ cleachdadh leabharlann treas-phàrtaidh. Agus bu chòir seo a dhèanamh an-còmhnaidh. An toiseach, feumaidh tu an kernel gus a bhith comasach air duilleagan mòra a riarachadh gu ceart. Agus, san dàrna àite, gus an urrainn don tagradh a tha ag obair leotha an cleachdadh. Cha bhith e dìreach air a chleachdadh mar sin. Leis gu bheil PostgreSQL a’ riarachadh cuimhne ann an stoidhle siostam 5, dh’ fhaodadh seo a dhèanamh a’ cleachdadh libhugetlbfs - is e seo làn ainm an leabharlainn.

Ann an 9.3, chaidh coileanadh PostgreSQL a leasachadh nuair a bha e ag obair le cuimhne agus chaidh modh riarachadh cuimhne siostam 5 a thrèigsinn. Bha a h-uile duine glè thoilichte, oir air dhòigh eile feuchaidh tu ri dà chùis PostgreSQL a ruith air aon inneal, agus tha e ag ràdh nach eil cuimhne cho-roinnte gu leòr agam. Agus tha e ag ràdh gum feumar sysctl a cheartachadh. Agus tha leithid de sysctl ann gum feum thu fhathast ath-thòiseachadh, msaa San fharsaingeachd, bha a h-uile duine toilichte. Ach bhris riarachadh cuimhne mmap cleachdadh dhuilleagan mòra. Bidh a’ mhòr-chuid de ar teachdaichean a’ cleachdadh bufairean mòra co-roinnte. Agus mhol sinn gu làidir gun a bhith ag atharrachadh gu 9.3, oir thòisich e air obrachadh a-mach ann an ceudadan math.

Ach thug a’ choimhearsnachd aire don duilgheadas seo agus ann an 9.4 rinn iad ath-obrachadh air an tachartas seo glè mhath. Agus ann an 9.4 nochd paramadair ann am postgresql.conf anns an urrainn dhut feuchainn, air no dheth.

Feuch an e an roghainn as sàbhailte. Nuair a thòisicheas PostgreSQL, nuair a bhios e a 'riarachadh cuimhne co-roinnte, bidh e a' feuchainn ris a 'chuimhne seo a ghlacadh bho na duilleagan mòra. Agus mura obraich e, bidh e a’ dol air ais chun taghadh àbhaisteach. Agus ma tha FreeBSD no Solaris agad, faodaidh tu feuchainn, tha e an-còmhnaidh sàbhailte.

Ma tha e air adhart, an uairsin cha tòisich e mura b’ urrainn dha taghadh bho na duilleagan mòra. An seo tha e mu thràth mu dheidhinn cò agus dè a tha nas fheàrr. Ach ma dh’ fheuch thu, dèan cinnteach gu bheil na tha a dhìth ort air a chomharrachadh, oir tha tòrr rùm ann airson mearachd. An-dràsta chan obraich an gnìomh seo ach air Linux.

Aon nota beag eile mus tèid sinn nas fhaide. Chan eil duilleagan mòra follaiseach mu dheidhinn PostgreSQL fhathast. Chan urrainn dha an cleachdadh gu h-àbhaisteach. Agus le duilleagan mòra Transparent airson a leithid de dh ’eallach obrach, nuair a tha feum air pìos mòr de chuimhne roinnte, chan eil na buannachdan a’ tighinn ach le meudan mòra. Ma tha terabytes cuimhne agad is dòcha gun tig seo gu buil. Ma tha sinn a’ bruidhinn mu dheidhinn barrachd thagraidhean làitheil, nuair a tha 32, 64, 128, 256 GB de chuimhne agad air an inneal agad, tha na duilleagan mòra àbhaisteach ceart gu leòr, agus tha sinn dìreach a’ cuir dheth Transparent.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Agus chan eil an rud mu dheireadh mu chuimhne ceangailte gu dìreach ri fruitut, faodaidh e do bheatha a mhilleadh. Bidh buaidh mhòr air a h-uile toradh leis gu bheil an frithealaiche an-còmhnaidh ag iomlaid.

Agus bidh seo gu math mì-thlachdmhor ann an grunn dhòighean. Agus is e am prìomh dhuilgheadas gu bheil kernels an latha an-diugh gan giùlan fhèin beagan eadar-dhealaichte bho kernels Linux nas sine. Agus tha an rud seo gu math mì-thlachdmhor a dhol air adhart, oir nuair a bhios sinn a 'bruidhinn mu dheidhinn obair de sheòrsa air choreigin le suaip, tha e a' crìochnachadh le teachd a-steach an OOM-killer. Agus tha an neach-marbhadh OOM, nach do ràinig ann an deagh àm agus a thuit PostgreSQL, mì-thlachdmhor. Bidh fios aig a h-uile duine mu dheidhinn seo, is e sin, gus an neach-cleachdaidh mu dheireadh.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Dè tha dol? Tha tòrr RAM agad an sin, tha a h-uile dad ag obair gu math. Ach airson adhbhar air choireigin tha am frithealaiche crochte ann an suaip agus a’ slaodadh sìos air sgàth seo. Bhiodh e coltach gu bheil tòrr cuimhne ann, ach tha seo a’ tachairt.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Roimhe sin, chomhairlich sinn vm.swappiness a shuidheachadh gu neoni, i.e. suaip a chuir dheth. Roimhe sin, bha e coltach gu robh 32 GB de RAM agus bufairean co-roinnte co-fhreagarrach gu math mòr. Is e prìomh adhbhar na suaip àite a bhith againn airson an rùsg a thilgeil ma thuiteas sinn dheth. Agus cha robh e gu sònraichte air a choileanadh tuilleadh. Agus an uairsin dè a tha thu a’ dol a dhèanamh leis an sgudal seo? Is e gnìomh a tha seo far nach eil e gu math soilleir carson a tha feum air suaip, gu sònraichte den leithid de mheud.

Ach ann an dreachan nas ùire, ie, an treas dreach den kernel, tha an giùlan air atharrachadh. Agus ma shuidhicheas tu suaip gu neoni, ie cuir dheth e, an uairsin luath no mall, eadhon ged a tha beagan RAM air fhàgail, thig marbhadh OOM thugad gus an luchd-ceannach as dian a mharbhadh. Leis gum beachdaich e le leithid de dh ’eallach obrach tha beagan air fhàgail againn fhathast agus leumaidh sinn a-mach, ie, gun a bhith a’ cuir sìos pròiseas an t-siostaim, ach gus rudeigin nach eil cho cudromach a chuir sìos. Bidh am fear seo nach eil cho cudromach na neach-cleachdaidh dian de chuimhne roinnte, is e sin am maighstir-puist. Agus às deidh sin bidh e math mura feum am bonn ath-nuadhachadh.

Mar sin, a-nis mar an àbhaist, cho fad ‘s a chuimhnicheas mi, tha a’ mhòr-chuid de sgaoilidhean an àiteigin timcheall air 6, i.e. dè an ìre a bu chòir dhut tòiseachadh a ’cleachdadh suaip a rèir na tha de chuimhne air fhàgail. Tha sinn a-nis a’ moladh suidheachadh vm.swappiness = 1, oir tha seo gu practaigeach ga thionndadh dheth, ach chan eil e a’ toirt seachad na h-aon bhuaidhean ri neach-marbhadh OOM a ràinig agus a mharbh an rud gu lèir gun dùil.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Dè an ath rud? Nuair a bhios sinn a 'bruidhinn mu dheidhinn coileanadh stòran-dàta agus mean air mhean a' gluasad a dh'ionnsaigh disks, a h-uile duine a 'tòiseachadh a ghlacadh an cinn. Leis gu bheil an fhìrinn gu bheil an diosc slaodach agus an cuimhne luath eòlach air a h-uile duine bho leanabachd. Agus tha fios aig a h-uile duine gum bi duilgheadasan coileanaidh diosc aig an stòr-dàta.

Chan eil am prìomh dhuilgheadas coileanaidh PostgreSQL co-cheangailte ri spìcean puingean-seic a’ tachairt leis gu bheil an diosc slaodach. Tha seo nas coltaiche mar thoradh air nach eil cuimhne agus leud-bann diosc air a chothromachadh. Ach, is dòcha nach bi iad air an cothromachadh ann an diofar àiteachan. Chan eil PostgreSQL air a rèiteachadh, chan eil an OS air a rèiteachadh, chan eil am bathar-cruaidh air a rèiteachadh agus tha am bathar-cruaidh ceàrr. Agus chan eil an duilgheadas seo a 'tachairt a-mhàin ma thachras a h-uile càil mar a bu chòir, ie an dara cuid chan eil luchd ann, no tha na roghainnean agus am bathar-cruaidh air an deagh thaghadh.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Dè a th’ ann agus cò ris a tha e coltach? Mar as trice bidh daoine a tha ag obair le PostgreSQL air a dhol a-steach don chùis seo barrachd air aon uair. mìnichidh mi. Mar a thuirt mi, bidh PostgreSQL bho àm gu àm a’ dèanamh puingean-seic gus duilleagan salach a dhumpadh ann an cuimhne co-roinnte gu diosc. Ma tha tòrr cuimhne co-roinnte againn, bidh an t-àite-seic a’ tòiseachadh a’ toirt buaidh dhian air an diosc, leis gu bheil e a’ tilgeil nan duilleagan sin le fsync. Bidh e a’ ruighinn a-steach don bhufair kernel agus air a sgrìobhadh gu diosgan a’ cleachdadh fsync. Agus ma tha meud a 'ghnìomhachais seo mòr, is urrainn dhuinn buaidh mì-thlachdmhor fhaicinn, is e sin cleachdadh glè mhòr de dhioscaichean.

Seo dà dhealbh agam. Mìnichidh mi a-nis dè a th’ ann. Is e seo dà ghraf co-cheangailte ri ùine. Is e a’ chiad ghraf cleachdadh diosc. An seo tha e a’ ruighinn faisg air 90% aig an àm seo. Ma dh’ fhàillig stòr-dàta le diosc corporra, le cleachdadh rianadair RAID aig 90%, is e droch naidheachd a tha seo. Tha seo a 'ciallachadh gum bi beagan a bharrachd agus ruigidh e 100 agus stadaidh an I / O.

Ma tha clàr diosc agad, is e sgeulachd beagan eadar-dhealaichte a th’ ann. Tha e an urra ri mar a tha e air a rèiteachadh, dè an seòrsa raon a th’ ann, msaa.

Agus aig an aon àm, tha graf bhon t-sealladh postgres a-staigh air a rèiteachadh an seo, a tha ag innse mar a tha an t-àite-seic a’ tachairt. Agus tha an dath uaine an seo a’ sealltainn cia mheud bufair, na duilleagan salach sin, a ràinig aig an àm sin an àite-seicidh seo airson sioncronadh. Agus is e seo am prìomh rud a dh'fheumas tu a bhith eòlach an seo. Tha sinn a 'faicinn gu bheil tòrr dhuilleagan againn an seo agus aig àm air choireigin bhuail sinn am bòrd, is e sin, sgrìobh sinn agus sgrìobh sinn, an seo tha e soilleir gu bheil an siostam diosg gu math trang. Agus tha buaidh làidir aig a’ phuing-seic againn air an diosc. Mas fheàrr, bu chòir gum biodh an suidheachadh a’ coimhead nas coltaiche ri seo, i.e. bha nas lugha de chlàradh againn an seo. Agus is urrainn dhuinn a chàradh leis na roghainnean gus am bi e mar seo. Is e sin, tha an ath-chuairteachadh beag, ach an àiteigin tha sinn a 'sgrìobhadh rudeigin an seo.

Dè a dh'fheumar a dhèanamh gus faighinn thairis air an duilgheadas seo? Ma tha thu air stad a chuir air IO fon stòr-dàta, tha seo a’ ciallachadh gum fuirich a h-uile neach-cleachdaidh a thàinig gus na h-iarrtasan aca a choileanadh.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Ma sheallas tu bho shealladh Linux, ma ghlac thu bathar-cruaidh math, ma shuidhich thu e gu ceart, rèiteachaidh e PostgreSQL gu h-àbhaisteach gus am bi e a’ dèanamh na puingean-seicidh sin cho tric, gan sgaoileadh thar ùine eadar a chèile, an uairsin bidh thu a’ ceumadh a-steach do na paramadairean bunaiteach Debian. Airson a’ mhòr-chuid de sgaoilidhean Linux, seo an dealbh: vm.dirty_ratio=20, vm.dirty_background_ratio=10.

Dè a tha e a’ ciallachadh? Nochd aon deamhan sruthadh bho kernel 2.6. Pdglush, a rèir cò a bhios a’ cleachdadh dè, a tha an sàs ann a bhith a’ tilgeil cùl-fhiosrachaidh de dhuilleagan salach bhon bhufair kernel agus a’ tilgeadh air falbh nuair a dh’ fheumar duilleagan salach a thilgeil air falbh ge bith dè, nuair nach cuidich tilgeil cùl-raoin.

Cuin a thig cùl-fhiosrachadh? Nuair a tha 10% den RAM iomlan a tha ri fhaighinn air an fhrithealaiche air a ghabhail thairis le duilleagan salach anns a’ bhufair kernel, canar gnìomh sgrìobhaidh sònraichte ris a’ chùl. Carson a tha cùl-fhiosrachadh ann? Mar paramadair, bidh e a’ gabhail a-steach cia mheud duilleag a bu chòir a sgrìobhadh dheth. Agus, canaidh sinn, bidh e a’ sgrìobhadh duilleagan N. Agus airson greis tha an rud seo a 'tuiteam na chadal. Agus an uairsin thig i a-rithist agus dèan lethbhreac de dhuilleagan eile.

Is e sgeulachd air leth sìmplidh a tha seo. Tha an duilgheadas an seo coltach ri amar-snàmh, nuair a bhios e a 'dòrtadh a-steach do aon phìob, bidh e a' sruthadh a-steach do fhear eile. Ràinig an t-àite-seic againn agus ma chuir e beagan dhuilleagan salach airson an tilgeadh air falbh, mean air mhean thèid an rud gu lèir fhuasgladh gu sgiobalta bhon kernel bufair pgflush.

Ma chumas na duilleagan salach sin a’ cruinneachadh, cruinnichidh iad suas ri 20%, agus às deidh sin is e prìomhachas an OS an rud gu lèir a chuir dheth chun diosc, oir fàilligidh an cumhachd agus bidh a h-uile dad dona dhuinn. Caillidh sinn an dàta seo, mar eisimpleir.

Dè an cleas? Is e an cleas gu bheil na crìochan sin anns an t-saoghal ùr-nodha 20 agus 10% den RAM iomlan a tha air an inneal, tha iad gu tur uamhasach a thaobh trochur siostam diosc sam bith a tha agad.

Smaoinich gu bheil 128 GB de RAM agad. Bidh 12,8 GB a’ tighinn a-steach don t-siostam diosc agad. Agus ge bith dè an tasgadan a th’ agad an sin, ge bith dè an raon a th’ agad ann, cha mhair iad cho fada sin.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Mar sin, tha sinn a’ moladh gun atharraich thu na h-àireamhan sin sa bhad stèidhichte air comasan an rianadair RAID agad. Rinn mi moladh sa bhad an seo airson rianadair aig a bheil 512 MB de tasgadan.

Thathas den bheachd gu bheil a h-uile dad gu math sìmplidh. Faodaidh tu vm.dirty_background a chuir ann am bytes. Agus tha na roghainnean sin a’ cuir dheth an dithis roimhe. Tha co-mheas an dàrna cuid gu bunaiteach, no an fheadhainn le bytes air an cur an gnìomh, obraichidh an fheadhainn le bytes. Ach leis gu bheil mi nam chomhairliche DBA agus ag obair le luchd-dèiligidh eadar-dhealaichte, bidh mi a’ feuchainn ri stràbhan a tharraing agus mar sin, ma tha mi ann am bytes, an uairsin ann am bytes. Cha tug duine gealltanas sam bith nach cuireadh deagh rianaire barrachd cuimhne ris an fhrithealaiche, ath-thòisich e, agus gum fuiricheadh ​​​​am figear mar a bha e. Dìreach obraich a-mach na h-àireamhan sin gus am bi a h-uile dad a’ freagairt air gealltanas.

Dè thachras mura tèid thu a-steach? Tha mi air sgrìobhadh gu bheil sruthadh sam bith air a stad gu h-èifeachdach, ach gu dearbh is e figear cainnt a tha seo. Tha duilgheadas mòr aig an t-siostam obrachaidh - tha tòrr dhuilleagan salach aige, agus mar sin tha an IO a ghineas an teachdaichean agad air a stad gu h-èifeachdach, ie tha an tagradh air tighinn gus ceist sql a chuir chun stòr-dàta, tha e a’ feitheamh. Tha cur-a-steach/toradh sam bith na phrìomhachas as ìsle, leis gu bheil àite-seic air an stòr-dàta. Agus cuin a bhios i deiseil tha e gu tur neo-shoilleir. Agus nuair a tha thu air sruthadh neo-chùl-raon a choileanadh, tha e a’ ciallachadh gu bheil an IO agad gu lèir air a ghabhail thairis leis. Agus gus an tig e gu crìch, cha dèan thu dad.

Tha dà phuing nas cudromaiche an seo a tha taobh a-muigh raon na h-aithisge seo. Bu chòir na roghainnean sin a bhith co-ionnan ris na roghainnean ann am postgresql.conf, i.e. roghainnean puingean-seic. Agus feumaidh an siostam diosc agad a bhith air a rèiteachadh gu leòr. Ma tha tasgadan agad air RAID, feumaidh bataraidh a bhith aige. Bidh daoine a’ ceannach RAID le tasgadan math às aonais bataraidh. Ma tha SSDs agad ann an RAID, feumaidh iad a bhith nan luchd-frithealaidh, feumaidh capacitors a bhith ann. Seo liosta sgrùdaidh mionaideach. Anns a’ cheangal seo tha an aithisg agam air mar a chuireas tu diosc coileanaidh air dòigh ann am PostgreSQL. Tha na liostaichean-sgrùdaidh sin uile an sin.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Dè eile a nì beatha gu math duilich? Is iad seo dà pharamadair. Tha iad an ìre mhath ùr. Gu gnàthach, faodar an toirt a-steach do dhiofar thagraidhean. Agus faodaidh iad beatha a dhèanamh a cheart cho doirbh ma thèid an tionndadh gu ceàrr.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Tha dà rud an ìre mhath ùr ann. Tha iad mu thràth air nochdadh anns na treas cores. Tha seo sched_migration_cost ann an nanoseconds agus sched_autogroup_enabled, a tha mar aon gu bunaiteach.

Agus ciamar a sgriosas iad do bheatha? Dè a th’ ann an sched_migration_cost? Air Linux, faodaidh an clàr-ama pròiseas a ghluasad bho aon CPU gu fear eile. Agus airson PostgreSQL, a bhios a’ cur an gnìomh cheistean, tha imrich gu CPU eile gu tur neo-shoilleir. Bho shealladh siostam obrachaidh, nuair a thionndaidheas tu uinneagan eadar openoffice agus terminal, faodaidh seo a bhith math, ach airson stòr-dàta tha seo gu math dona. Mar sin, is e poileasaidh reusanta imrich_cost a shuidheachadh gu luach mòr, co-dhiù grunn mhìltean nanoseconds.

Dè bhios seo a’ ciallachadh don neach-clàraidh? Bithear den bheachd gu bheil am pròiseas fhathast teth rè na h-ùine seo. Is e sin, ma tha malairt fhada agad a tha air a bhith a’ dèanamh rudeigin airson ùine mhòr, tuigidh an neach-clàraidh seo. Gabhaidh e ris gus an tèid an ùine seo seachad, nach fheumar am pròiseas seo a ghluasad a dh'àite sam bith. Ma nì am pròiseas rudeigin aig an aon àm, cha tèid a ghluasad gu àite sam bith, obraichidh e gu sàmhach air an CPU a chaidh a thoirt dha. Agus tha an toradh sàr-mhath.

Is e an dàrna puing autogroup. Tha deagh bheachd ann airson eallach obrach sònraichte nach eil co-cheangailte ri stòran-dàta an latha an-diugh - tha seo airson pròiseasan a chuir còmhla leis a’ phort-adhair brìgheil bhon tèid an cur air bhog. Tha seo goireasach airson cuid de ghnìomhan. Ann an cleachdadh, tha PostgreSQL na shiostam ioma-phròiseas le prefork a bhios a’ ruith bho aon cheann-uidhe. Tha sgrìobhadair glasaidh agad, puing-seic, agus bidh na h-iarrtasan teachdaiche agad uile air an cruinneachadh ann an aon chlàr, gach CPU. Agus feithidh iad an sin ann an aonadh gus am bi e saor, a‑chum a bhith a’ dealachadh ri chèile agus ga chumail nas fhaide. Is e sgeulachd a tha seo a tha gu tur neo-riatanach a thaobh a leithid de luchd agus mar sin feumar a chuir dheth.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Rinn mo cho-obraiche Alexey Lesovsky deuchainnean le pgbench sìmplidh, far an do mheudaich e imrich_cost le òrdugh meudachd agus chuir e dheth autogroup. Bha an eadar-dhealachadh air droch bhathar-cruaidh faisg air 10%. Tha còmhradh ann air liosta puist postgres far am bi daoine a’ toirt seachad toraidhean bho atharrachaidhean co-chosmhail air astar ceiste buaidh 50%. Tha tòrr sgeulachdan mar sin ann.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Agus mu dheireadh, mu dheidhinn poileasaidh sàbhalaidh cumhachd. Is e an rud math gum faodar Linux a chleachdadh a-nis air laptop. Agus tha còir aige am bataraidh a chleachdadh gu math. Ach gu h-obann tha e a 'tionndadh a-mach gum faod seo tachairt cuideachd air an fhrithealaiche.

A bharrachd air an sin, ma tha thu air màl frithealaichean bho neach-aoigheachd, chan eil dragh aig na h-aoighean “math” gu bheil coileanadh nas fheàrr agad. Is e an obair aca dèanamh cinnteach gu bheil an iarann ​​​​aca air a chleachdadh cho èifeachdach sa ghabhas. Mar sin, gu gnàthach faodaidh iad modh sàbhalaidh cumhachd laptop a chomasachadh air an t-siostam obrachaidh.

Ma chleachdas tu an stuth seo air frithealaiche le stòr-dàta fo luchd trom, is e acpi_cpufreq + permormance do roghainn. Eadhon le onemand bidh duilgheadasan ann.

Tha Intel_pstate na dhràibhear beagan eadar-dhealaichte. Agus a-nis tha roghainn air a thoirt don fhear seo, oir tha e nas fhaide air adhart agus ag obair nas fheàrr.

Agus, a rèir sin, chan eil ann an riaghladair ach coileanadh. Chan eil Ondemand, powersave agus a h-uile càil eile mu do dheidhinn.

Faodaidh toraidhean mion-sgrùdadh mìneachaidh PostgreSQL a bhith eadar-dhealaichte le grunn òrdughan meud ma bheir thu comas air cumhachd a shàbhaladh, oir gu practaigeach bidh an CPU fon stòr-dàta agad a’ ruith ann an dòigh gu tur neo-fhaicsinneach.

Faodar na stuthan sin a thoirt a-steach gu bunaiteach. Coimhead gu faiceallach feuch an do thionndaidh iad air gu bunaiteach e. Faodaidh seo a bhith na dhuilgheadas mòr dha-rìribh.

Tuning Linux gus coileanadh PostgreSQL a leasachadh. Ilya Kosmodemyansky saor an asgaidh

Agus aig a’ cheann thall, bha mi airson taing a thoirt dha na balaich bhon sgioba PosgreSQL-Consulting DBA againn, is e sin Max Boguk agus Alexey Lesovsky, a tha a’ dèanamh adhartas sa chùis seo a h-uile latha. Agus bidh sinn a’ feuchainn ri dèanamh cho math ‘s as urrainn dhuinn airson ar teachdaichean gus am bi e uile ag obair dhaibh. Tha e coltach ri stiùireadh sàbhailteachd itealain. Tha a h-uile dad an seo sgrìobhte ann am fuil. Tha gach aon de na cnothan sin air a lorg ann am pròiseas seòrsa de dhuilgheadas. Tha mi toilichte an roinn leat.

Ceistean:

Tapadh leat! Ma tha, mar eisimpleir, companaidh airson airgead a shàbhaladh agus an stòr-dàta agus loidsig an tagraidh a chuir air aon fhrithealaiche, no ma tha a ’chompanaidh a’ leantainn a ’ghluasaid fhasanta de ailtireachd microservice, anns a bheil PostgreSQL a’ ruith ann an soitheach. Dè an cleas? Bheir Sysctl buaidh air an kernel gu lèir air feadh na cruinne. Cha chuala mi mu sysctls a bhith air an dèanamh mas-fhìor gus am bi iad ag obair air leth air soitheach. Chan eil ann ach cgroup agus chan eil ach pàirt den smachd ann. Ciamar as urrainn dhut a bhith beò le seo? No ma tha thu ag iarraidh coileanadh, an uairsin ruith PostgreSQL air frithealaiche bathar-cruaidh air leth agus fonn air?

Fhreagair sinn do cheist ann an trì dòighean. Mura h-eil sinn a’ bruidhinn mu dheidhinn frithealaiche bathar-cruaidh a ghabhas gleusadh, msaa, an uairsin gabh fois, obraichidh a h-uile dad gu math às aonais na roghainnean sin. Ma tha an leithid de luchd agad a dh ’fheumas tu gus na roghainnean sin a dhèanamh, thig thu chun t-seirbheisiche iarainn nas tràithe na na roghainnean sin.

Dè an duilgheadas a th’ ann? Mas e inneal brìgheil a tha seo, is coltaiche gum bi mòran dhuilgheadasan agad, mar eisimpleir, leis gu bheil latency an diosc gu math neo-chunbhalach air a’ mhòr-chuid de dh ’innealan brìgheil. Eadhon ged a tha an gluasad diosc math, an uairsin dh’ fhàillig aon ghnothach I/O nach toir buaidh mhòr air an gluasad cuibheasach a thachair aig àm an àite-seic no aig àm sgrìobhaidh gu WAL, bidh an stòr-dàta a’ fulang gu mòr le seo. Agus mothaichidh tu seo mus ruith thu a-steach do na duilgheadasan sin.

Ma tha NGINX agad air an aon fhrithealaiche, bidh an aon dhuilgheadas agad cuideachd. Bidh e a 'sabaid airson cuimhne roinnte. Agus chan fhaigh thu gu na duilgheadasan a tha air am mìneachadh an seo.

Ach air an làimh eile, bidh cuid de na crìochan sin fhathast buntainneach dhut. Mar eisimpleir, suidhich dirty_ratio le sysctl gus nach bi e cho seòlta - co-dhiù, cuidichidh seo. Aon dòigh no dòigh eile, bidh eadar-obrachadh agad leis an diosc. Agus bidh e a rèir a 'phàtrain ceàrr. Tha seo mar as trice bunaiteach airson na paramadairean a sheall mi. Agus ann an suidheachadh sam bith tha e nas fheàrr an atharrachadh.

Ach dh’ fhaodadh gum bi duilgheadasan ann le NUMA. Bidh VmWare, mar eisimpleir, ag obair gu math le NUMA le dìreach na roghainnean eile. Agus an seo feumaidh tu taghadh - frithealaiche iarainn no fear nach eil iarann.

Tha ceist agam co-cheangailte ri Amazon AWS. Tha ìomhaighean aca air an rèiteachadh ro-làimh. Canar Amazon RDS ri fear dhiubh. A bheil roghainnean gnàthaichte sam bith ann airson an t-siostam-obrachaidh aca?

Tha suidheachaidhean ann an sin, ach tha iad nan suidheachaidhean eadar-dhealaichte. An seo bidh sinn a’ rèiteachadh an t-siostam obrachaidh a thaobh mar a chleachdas an stòr-dàta an rud seo. Agus tha crìochan ann a tha a’ dearbhadh càite am bu chòir dhuinn a dhol a-nis, leithid cumadh. Is e sin, tha feum againn air na h-uimhir de ghoireasan, bidh sinn a-nis gan ithe. Às deidh seo, bidh Amazon RDS a ’teannachadh nan goireasan sin, agus bidh coileanadh a’ tuiteam an sin. Tha sgeulachdan fa-leth ann air mar a tha daoine a’ tòiseachadh a’ dol an sàs anns a’ chùis seo. Uaireannan eadhon gu math soirbheachail. Ach chan eil gnothach aig seo ri roghainnean OS. Tha e coltach ri bhith a’ slaodadh na sgòthan. Sin sgeulachd eadar-dhealaichte.

Carson nach eil buaidh aig duilleagan mòra Transparent an taca ri Huge TLB?

Na toir. Faodar seo a mhìneachadh ann an iomadh dòigh. Ach gu dearbh chan eil iad dìreach ga thoirt seachad. Dè an eachdraidh a th’ aig PostgreSQL? Aig toiseach tòiseachaidh, bidh e a’ riarachadh pìos mòr de chuimhne roinnte. Co-dhiù a tha iad follaiseach no nach eil, tha e gu tur neo-iomchaidh. Tha an fhìrinn gu bheil iad a’ seasamh a-mach aig an toiseach a’ mìneachadh a h-uile càil. Agus ma tha tòrr cuimhne ann agus feumaidh tu an roinn shared_memory ath-thogail, bidh duilleagan mòra Transparent buntainneach. Ann am PostgreSQL, tha e dìreach air a riarachadh ann an cnap mòr aig an toiseach agus sin e, agus an uairsin chan eil dad sònraichte a’ tachairt an sin. Faodaidh tu, gu dearbh, a chleachdadh, ach tha teansa ann gum faigh thu coirbeachd de shared_memory nuair a bhios e ag ath-riarachadh rudeigin. Chan eil fios aig PostgreSQL mu dheidhinn seo.

Source: www.habr.com

Cuir beachd ann