Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Traskrizzjoni tar-rapport tal-2015 minn Ilya Kosmodemyansky "Linux irfinar biex tittejjeb il-prestazzjoni ta' PostgreSQL"

Ċaħda: Ninnota li dan ir-rapport huwa datat Novembru 2015 - għaddew aktar minn 4 snin u għadda ħafna żmien. Il-verżjoni 9.4 diskussa fir-rapport m'għadhiex appoġġjata. Matul l-aħħar 4 snin, ġew rilaxxati 5 rilaxxi ġodda ta 'PostgreSQL, u ġew rilaxxati 15-il verżjoni tal-kernel Linux. Jekk terġa’ tikteb dawn is-siltiet, tispiċċa b’rapport differenti. Iżda hawnhekk nikkunsidraw l-irfinar fundamentali tal-Linux għal PostgreSQL, li għadu rilevanti llum.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky


Jisimni Ilya Kosmodemyansky. Jien naħdem fuq PostgreSQL-Consulting. U issa se nitkellem ftit dwar x'għandek tagħmel mal-Linux fir-rigward tad-databases in ġenerali u PostgreSQL b'mod partikolari, minħabba li l-prinċipji huma pjuttost simili.

X’se nitkellmu? Jekk tikkomunika ma' PostgreSQL, allura sa ċertu punt trid tkun amministratur ta' UNIX. Xi tfisser? Jekk inqabblu Oracle u PostgreSQL, allura f'Oracle trid tkun 80% admin tad-database DBA u 20% admin Linux.

Bil-PostgreSQL huwa ftit aktar ikkumplikat. Bil-PostgreSQL jeħtieġ li jkollok fehim ħafna aħjar ta' kif jaħdem Linux. U fl-istess ħin, mexxi ftit wara l-lokomotiva, għax dan l-aħħar kollox ġie aġġornat pjuttost tajjeb. U qlub ġodda huma rilaxxati, u tidher funzjonalità ġdida, il-prestazzjoni titjieb, eċċ.

Għaliex qed nitkellmu dwar Linux? Mhux għax qegħdin fil-konferenza tal-Linux Peter, iżda għax f'kundizzjonijiet moderni waħda mis-sistemi operattivi l-aktar ġustifikati għall-użu tad-databases b'mod ġenerali u PostgreSQL b'mod partikolari hija Linux. Minħabba li FreeBSD, sfortunatament, qed jiżviluppa f'xi direzzjoni stramba ħafna. U se jkun hemm problemi kemm bil-prestazzjoni kif ukoll b'ħafna affarijiet oħra. Il-prestazzjoni ta 'PostgreSQL fuq Windows hija ġeneralment kwistjoni serja separata, ibbażata fuq il-fatt li Windows m'għandux l-istess memorja kondiviża bħal UNIX, filwaqt li PostgreSQL huwa kollu marbut ma' dan, minħabba li hija sistema b'ħafna proċessi.

U naħseb li kulħadd huwa inqas interessat f'eżotiċi bħal Solaris, allura ejja.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Distribuzzjoni moderna tal-Linux għandha aktar minn 1 għażla syctl, skont kif tibni l-kernel. Fl-istess ħin, jekk inħarsu lejn il-ġewż differenti, nistgħu naġġustaw xi ħaġa f'ħafna modi. Hemm parametri tas-sistema tal-fajls dwar kif jintramawhom. Jekk għandek mistoqsijiet dwar kif tibda: x'għandek tippermetti fil-BIOS, kif tikkonfigura l-ħardwer, eċċ.

Dan huwa volum kbir ħafna li jista 'jiġi diskuss fuq diversi jiem, u mhux f'rapport qasir wieħed, iżda issa se niffoka fuq affarijiet importanti, kif tevita dawk ir-rakes li huma garantiti biex jipprevjenuk milli tuża d-database tiegħek sew fuq Linux jekk inti tikkoreġihomx. U fl-istess ħin, punt importanti huwa li ħafna parametri default mhumiex inklużi fis-settings li huma korretti għad-database. Jiġifieri, awtomatikament se taħdem ħażin jew xejn.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

X'miri ta' rfinar tradizzjonali hemm fil-Linux? Naħseb li peress li inti kollha qed jittrattaw ma 'amministrazzjoni Linux, m'hemmx bżonn partikolari li tispjega x'inhuma l-miri.

Tista' tixgħel:

  • CPUs.
  • Memorja.
  • Ħażna.
  • Oħrajn. Aħna ser nitkellmu dwar dan fl-aħħar għal snack. Anke, pereżempju, parametri bħall-politiki tal-iffrankar tal-enerġija jistgħu jaffettwaw il-prestazzjoni b'mod imprevedibbli ħafna u mhux bl-aktar mod pjaċevoli.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

X'inhuma l-ispeċifiċitajiet ta 'PostgreSQL u d-database b'mod ġenerali? Il-problema hija li ma tistax ttejjeb l-ebda ġewż individwali u tara li l-prestazzjoni tagħna tjiebet b'mod sinifikanti.

Iva, hemm tali aġġeġġi, iżda database hija ħaġa kumplessa. Jinteraġixxi mar-riżorsi kollha li għandu s-server u jippreferi jinteraġixxi bl-aħjar mod. Jekk tħares lejn ir-rakkomandazzjonijiet attwali tal-Oracle dwar kif tuża OS ospitanti, se tkun bħall-ċajta dwar dak il-kosmonawt Mongoljan - għalf lill-kelb u ma tmiss xejn. Ejja nagħtu lid-database ir-riżorsi kollha, id-database nnifisha ser issolvi kollox.

Fil-prinċipju, sa ċertu punt is-sitwazzjoni hija eżattament l-istess ma 'PostgreSQL. Id-differenza hija li d-database għadha mhix kapaċi tieħu r-riżorsi kollha għaliha nnifisha, jiġifieri x'imkien fil-livell tal-Linux għandek bżonn issolviha kollox lilek innifsek.

L-idea ewlenija mhix li tagħżel mira waħda u tibda tirfina, pereżempju, memorja, CPU jew xi ħaġa bħal dik, iżda li tanalizza l-ammont ta 'xogħol u tipprova ttejjeb il-fluss kemm jista' jkun sabiex it-tagħbija li l-programmaturi tajbin ħolquha għalina, inklużi l-utenti tagħna.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Hawnhekk hawn stampa biex tispjega x'inhu. Hemm buffer tal-Linux OS u hemm memorja kondiviża u hemm buffers kondiviżi PostgreSQL. PostgreSQL, b'differenza Oracle, jaħdem direttament biss permezz tal-buffer tal-kernel, jiġifieri, sabiex paġna mid-diska tidħol fil-memorja kondiviża tagħha, trid tgħaddi mill-buffer tal-kernel u lura, l-istess sitwazzjoni eżatta.

Id-diski jgħixu taħt din is-sistema. I ġibdet dan bħala diski. Fil-fatt, jista 'jkun hemm kontrollur RAID, eċċ.

U dan l-input-output b'xi mod jew ieħor jiġri permezz ta 'din il-kwistjoni.

PostgreSQL hija database klassika. Hemm paġna ġewwa. U l-input u l-output kollu jseħħ bl-użu tal-paġni. Qed ngħollu blokki fil-memorja bil-paġni. U jekk ma ġara xejn, naqrawhom biss, imbagħad gradwalment jisparixxu minn din il-cache, mill-buffers kondiviżi u jispiċċaw lura fuq id-diska.

Jekk nissostitwixxu xi ħaġa x'imkien, allura l-paġna kollha hija mmarkata bħala maħmuġa. Jien immarkajthom hawn bil-blu. U dan ifisser li din il-paġna trid tkun sinkronizzata mal-ħażna tal-blokki. Jiġifieri, meta għamilna maħmuġin, għamilna dħul fil-WAL. U f'xi mument mill-isbaħ wasal fenomenu msejjaħ checkpoint. U f’dan il-ġurnal ġiet irreġistrata informazzjoni li kien wasal. U dan ifisser li l-paġni maħmuġin kollha li kienu hawn f'dak il-mument f'dawn il-buffers kondiviżi kienu sinkronizzati mad-disk tal-ħażna bl-użu ta 'fsync permezz tal-buffer tal-kernel.

Għaliex qed isir dan? Jekk tlifna l-vultaġġ, allura ma ksibniex is-sitwazzjoni li d-data kollha ntilfet. Il-memorja persistenti, li kulħadd qalilna dwarha, s'issa tinsab fit-teorija tad-database - dan huwa futur sabiħ, li aħna, ovvjament, nistinkaw għalih u nħobbu, iżda għalissa jgħixu f'minus 20 sena. U, ovvjament, dan kollu jeħtieġ li jiġi mmonitorjat.

U l-kompitu li timmassimizza l-produzzjoni hija li tirfina f'dawn l-istadji kollha sabiex kollox jimxi 'l quddiem u lura malajr. Il-memorja kondiviża hija bażikament cache tal-paġna. F'PostgreSQL, bgħatna mistoqsija magħżula jew xi ħaġa, irkuprat din id-dejta mid-disk. Huma spiċċaw f'shared buffers. Għaldaqstant, biex dan jaħdem aħjar, irid ikun hemm ħafna memorja.

Sabiex dan kollu jaħdem tajjeb u malajr, għandek bżonn tikkonfigura b'mod korrett is-sistema operattiva fl-istadji kollha. U agħżel ħardwer bilanċjat, għax jekk għandek żbilanċ f'xi post, allura tista 'tagħmel ħafna memorja, iżda mhux se tkun isservisjata b'veloċità suffiċjenti.

U ejja ngħaddu minn kull wieħed minn dawn il-punti.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Biex tagħmel dawn il-paġni jivvjaġġaw 'il quddiem u lura aktar malajr, trid tikseb dan li ġej:

  • L-ewwelnett, trid taħdem b'mod aktar effiċjenti bil-memorja.
  • It-tieni, din it-tranżizzjoni meta l-paġni mill-memorja jmorru għad-disk għandha tkun aktar effiċjenti.
  • U t-tielet, għandu jkun hemm diski tajbin.

Jekk għandek 512 GB ta 'RAM fis-server u dan kollu jispiċċa fuq hard drive SATA mingħajr ebda cache, allura s-server tad-database kollu jinbidel mhux biss f'qargħa ħamra, iżda qargħa b'interface SATA. Inti ser tiġri fiha direttament. U xejn mhu se jsalvak.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Rigward l-ewwel punt bil-memorja, hemm tliet affarijiet li jistgħu jagħmlu l-ħajja diffiċli ħafna.

L-ewwel wieħed minnhom huwa NUMA. NUMA hija ħaġa li hija magħmula biex ittejjeb il-prestazzjoni. Skont it-tagħbija tax-xogħol, affarijiet differenti jistgħu jiġu ottimizzati. U fil-forma attwali l-ġdida tagħha, mhix tajba ħafna għal applikazzjonijiet bħal databases li jużaw b'mod intensiv il-page cache shared buffers.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Fil-qosor. Kif tista' tgħid jekk hix xi ħaġa ħażina fin-NUMA? Għandek xi tip ta 'knock spjaċevoli, f'daqqa waħda xi CPU huwa mgħobbi żżejjed. Fl-istess ħin, tanalizza l-mistoqsijiet f'PostgreSQL u tara li m'hemm xejn simili hemmhekk. Dawn il-mistoqsijiet m'għandhomx ikunu daqshekk intensivi fuq is-CPU. Tista 'taqbad dan għal żmien twil. Huwa aktar faċli li tuża r-rakkomandazzjoni korretta mill-bidu nett dwar kif tikkonfigura NUMA għal PostgreSQL.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

X'qed jiġri verament? NUMA tfisser Aċċess għall-Memorja Mhux Uniformi. X'inhu l-punt? Għandek CPU, ħdejha hemm il-memorja lokali tagħha. U dan l-interkonnessjonijiet tal-memorja jistgħu jiġbdu memorja minn CPUs oħra.

Jekk tmexxi numactl --hardware, allura inti se tikseb folja daqshekk kbira. Fost affarijiet oħra, se jkun hemm qasam tad-distanzi. Se jkun hemm numri - 10-20, xi ħaġa bħal dik. Dawn in-numri huma xejn aktar mill-għadd ta' ħops biex tiġbor din il-memorja remota u tużaha lokalment. Fil-prinċipju, idea tajba. Dan iħaffef il-prestazzjoni sew taħt firxa ta 'tagħbija tax-xogħol.

Issa immaġina li għandek CPU wieħed l-ewwel jipprova juża l-memorja lokali tiegħu, imbagħad jipprova jiġbed memorja oħra permezz ta 'interkonnessjoni għal xi ħaġa. U dan is-CPU jikseb il-cache kollu tal-paġna PostgreSQL tiegħek - dak hu, xi gigabytes. Dejjem ikollok l-agħar każ, għaliex fuq is-CPU normalment ikun hemm ftit memorja f'dak il-modulu innifsu. U l-memorja kollha li tiġi servita tgħaddi minn dawn l-interkonnessjonijiet. Jirriżulta bil-mod u imdejjaq. U l-proċessur tiegħek li jservi dan in-node huwa kontinwament mgħobbi żżejjed. U l-ħin ta 'aċċess ta' din il-memorja huwa ħażin, bil-mod. Din hija s-sitwazzjoni li ma tridx jekk qed tuża din għal database.

Għalhekk, għażla aktar korretta għad-database hija li s-sistema operattiva Linux ma tkunx taf x'inhu jiġri hemm xejn. Sabiex taċċessa l-memorja kif tagħmel.

Għalfejn? Jidher li għandu jkun bil-maqlub. Dan jiġri għal raġuni waħda sempliċi: għandna bżonn ħafna memorja għall-cache tal-paġna - għexieren, mijiet ta 'gigabytes.

U jekk aħna allokati dan kollu u cached-data tagħna hemmhekk, allura l-qligħ mill-użu tal-cache se jkun akbar b'mod sinifikanti mill-qligħ minn tali aċċess delikat għall-memorja. U għalhekk se nibbenefikaw b'mod inkomparabbli meta mqabbla mal-fatt li se naċċessaw il-memorja b'mod aktar effiċjenti bl-użu ta' NUMA.

Għalhekk, hemm żewġ approċċi hawnhekk bħalissa, sakemm il-futur sabiħ ikun wasal, u d-database nnifisha ma tkunx kapaċi biex insemmu liema CPUs qed taħdem fuqhom u minn fejn jeħtieġ li tiġbed xi ħaġa.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Għalhekk, l-approċċ korrett huwa li NUMA tiddiżattiva għal kollox, per eżempju, meta terġa 'tibda. Fil-biċċa l-kbira tal-każijiet, ir-rebħ huwa ta 'tali ordnijiet ta' kobor li l-kwistjoni ta 'liema hija aħjar ma tqum xejn.

Hemm għażla oħra. Aħna nużawha aktar ta 'spiss mill-ewwel wieħed, għaliex meta klijent jiġi għandna għall-appoġġ, il-booting mill-ġdid tas-server huwa ħaġa kbira għalih. Għandu negozju hemmhekk. U jesperjenzaw problemi minħabba NUMA. Għalhekk, nippruvaw tiddiżattivawh b'modi inqas invażivi minn reboot, iżda oqgħod attent li tivverifika li hija diżattivata. Għax, kif turi l-esperjenza, huwa tajjeb li niskonnettjaw NUMA fuq il-proċess ġenitur ta 'PostgreSQL, iżda mhu meħtieġ xejn li se taħdem. Irridu niċċekkjaw u naraw li hija verament mitfija.

Hemm post tajjeb ta’ Robert Haas. Dan huwa wieħed mill-kommitturi ta' PostgreSQL. Wieħed mill-iżviluppaturi ewlenin tal-giblets kollha ta 'livell baxx. U jekk issegwi l-links minn din il-kariga, jiddeskrivu diversi stejjer ikkuluriti dwar kif in-NUMA għamlet il-ħajja diffiċli għan-nies. Ara, studja l-lista ta 'kontroll tal-amministratur tas-sistema ta' dak li jeħtieġ li jiġi kkonfigurat fuq is-server sabiex id-database tagħna taħdem tajjeb. Dawn is-settings jeħtieġ li jiġu miktuba u kkontrollati, għax inkella ma jkunx tajjeb ħafna.

Jekk jogħġbok innota li dan japplika għas-settings kollha li se nitkellem dwarhom. Iżda ġeneralment id-databases jinġabru fil-modalità master-slave għat-tolleranza tal-ħsarat. Tinsiex tagħmel dawn is-settings fuq l-iskjav għax xi darba jkollok inċident u taqleb għall-iskjav u dan isir il-kaptan.

F'sitwazzjoni ta 'emerġenza, meta kollox ikun ħażin ħafna, it-telefon tiegħek qiegħed kontinwament idoqq u l-imgħallem tiegħek jiġi għaddej bi stick kbir, ma jkollokx ħin biex taħseb biex tiċċekkja. U r-riżultati jistgħu jkunu pjuttost diżastrużi.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Il-punt li jmiss huwa paġni enormi. Paġni kbar huma diffiċli biex jiġu ttestjati separatament, u m'hemm l-ebda skop li tagħmel dan, għalkemm hemm punti ta 'referenza li jistgħu jagħmlu dan. Huma faċli biex Google.

X'inhu l-punt? Għandek server mhux għali ħafna b'ħafna RAM, pereżempju, aktar minn 30 GB. Ma tużax paġni kbar. Dan ifisser li definittivament għandek overhead f'termini ta 'użu tal-memorja. U dan overhead huwa 'l bogħod mill-aktar pjaċevoli.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Għalfejn? Allura x'qed jiġri? Is-sistema operattiva talloka memorja f'biċċiet żgħar. Huwa tant konvenjenti, huwa kif ġara storikament. U jekk nidħlu fid-dettall, l-OS irid jittraduċi indirizzi virtwali f'dawk fiżiċi. U dan il-proċess mhuwiex l-aktar sempliċi, għalhekk l-OS jaħbat ir-riżultat ta 'din l-operazzjoni fit-Translation Lookaside Buffer (TLB).

U peress li t-TLB huwa cache, il-problemi kollha inerenti fil-cache jinqalgħu f'din is-sitwazzjoni. L-ewwelnett, jekk għandek ħafna RAM u hija kollha allokata f'biċċiet żgħar, allura dan il-buffer isir kbir ħafna. U jekk il-cache hija kbira, allura t-tiftix permezz tiegħu huwa aktar bil-mod. Overhead hija b'saħħitha u hija stess tieħu spazju, jiġifieri RAM qed tiġi kkunsmata minn xi ħaġa mhux korretta. Din id-darba.

Żewġ - aktar ma tikber il-cache f'sitwazzjoni bħal din, aktar ikun probabbli li jkollok cache miss. U l-effiċjenza ta 'din il-cache tonqos malajr hekk kif id-daqs tagħha jiżdied. Għalhekk, is-sistemi operattivi ħarġu b'approċċ sempliċi. Ġie użat fil-Linux għal żmien twil. Deher fil-FreeBSD mhux daqshekk twil ilu. Imma qed nitkellmu dwar Linux. Dawn huma paġni kbar.

U hawnhekk għandu jiġi nnutat li paġni enormi, bħala idea, inizjalment ġew imbuttati minn komunitajiet li kienu jinkludu Oracle u IBM, jiġifieri l-manifatturi tad-databases ħasbu bis-sħiħ li dan ikun utli għad-databases ukoll.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

U dan kif jista 'jsir ħbieb ma' PostgreSQL? L-ewwelnett, paġni kbar għandhom ikunu attivati ​​fil-kernel tal-Linux.

It-tieni, għandhom ikunu speċifikati b'mod espliċitu mill-parametru sysctl - kemm hemm. In-numri hawn huma minn xi server antik. Tista' tikkalkula kemm għandek buffers kondiviżi sabiex paġni kbar ikunu jistgħu joqogħdu hemm.

U jekk is-server kollu tiegħek huwa ddedikat għal PostgreSQL, allura punt tat-tluq tajjeb huwa li talloka jew 25% tar-RAM għal buffers kondiviżi, jew 75% jekk int ċert li d-database tiegħek definittivament se tidħol f'dan il-75%. Punt tat-tluq wieħed. U ikkunsidra, jekk għandek 256 GB ta 'RAM, allura, għalhekk, ikollok 64 GB ta' buffers kbar. Ikkalkula bejn wieħed u ieħor b'xi marġni - għal xiex għandha tkun issettjata din iċ-ċifra.

Qabel il-verżjoni 9.2 (jekk ma nkunx żbaljat, mill-verżjoni 8.2), kien possibbli li PostgreSQL tingħaqad ma 'paġni enormi bl-użu ta' librerija ta 'parti terza. U dan għandu jsir dejjem. L-ewwel, għandek bżonn il-qalba biex tkun tista 'talloka paġni enormi b'mod korrett. U, it-tieni, sabiex l-applikazzjoni li taħdem magħhom tkun tista 'tużahom. Mhux se jintuża biss hekk. Peress li PostgreSQL alloka memorja fl-istil tas-sistema 5, dan jista 'jsir bl-użu ta' libhugetlbfs - dan huwa l-isem sħiħ tal-librerija.

F'9.3, il-prestazzjoni ta 'PostgreSQL tjiebet meta taħdem bil-memorja u l-metodu ta' allokazzjoni tal-memorja tas-sistema 5 ġie abbandunat. Kulħadd kien kuntent ħafna, għax inkella tipprova tmexxi żewġ istanzi PostgreSQL fuq magna waħda, u jgħid li m'għandix biżżejjed memorja kondiviża. U jgħid li sysctl jeħtieġ li jiġi kkoreġut. U hemm tali sysctl li għad trid terġa 'tibda, eċċ B'mod ġenerali, kulħadd kien kuntent. Iżda l-allokazzjoni tal-memorja mmap kissret l-użu ta 'paġni enormi. Ħafna mill-klijenti tagħna jużaw buffers kondiviżi kbar. U aħna rrakkomandajna bil-qawwa li ma jaqilbux għal 9.3, minħabba li l-overhead hemmhekk beda jiġi kkalkulat f'perċentwali tajbin.

Iżda l-komunità tat attenzjoni għal din il-problema u f'9.4 ħadmu mill-ġdid dan l-avveniment tajjeb ħafna. U f'9.4 deher parametru f'postgresql.conf li fih tista 'tippermetti try, mixgħul jew mitfi.

Ipprova hija l-iktar għażla sigura. Meta PostgreSQL jibda, meta jalloka memorja kondiviża, jipprova jaqbad din il-memorja mill-paġni enormi. U jekk ma taħdimx, imbagħad terġa 'lura għall-għażla normali. U jekk għandek FreeBSD jew Solaris, allura tista 'tipprova, dejjem huwa sigur.

Jekk fuq, allura sempliċement ma tibda jekk ma setgħetx tagħżel mill-paġni enormi. Hawnhekk diġà huwa dwar min u x'inhu l-isbaħ. Imma jekk ipprova, imbagħad iċċekkja li verament għandek dak li għandek bżonn enfasizzat, għax hemm ħafna lok għal żball. Bħalissa din il-funzjonalità taħdem biss fuq Linux.

Nota żgħira oħra qabel immorru aktar. Paġni enormi trasparenti għadhom mhumiex dwar PostgreSQL. Ma jistax jużahom normalment. U b'paġni enormi trasparenti għal tali ammont ta 'xogħol, meta tkun meħtieġa biċċa kbira ta' memorja kondiviża, il-benefiċċji jiġu biss b'volumi kbar ħafna. Jekk għandek terabytes ta 'memorja allura dan jista' jidħol fis-seħħ. Jekk qed nitkellmu dwar aktar applikazzjonijiet ta 'kuljum, meta jkollok 32, 64, 128, 256 GB ta' memorja fuq il-magna tiegħek, allura l-paġni enormi tas-soltu huwa Ok, u aħna sempliċiment tiddiżattiva Trasparenti.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

U l-aħħar ħaġa dwar il-memorja mhix direttament relatata mal-frott, tista 'verament tħassar ħajtek. It-throughput kollu se jkun affettwat ħafna mill-fatt li s-server qed jibdel kontinwament.

U dan se jkun spjaċevoli ħafna f'numru ta 'modi. U l-problema ewlenija hija li l-qlub moderni jġibu ruħhom kemmxejn differenti minn qlub Linux anzjani. U din il-ħaġa hija pjuttost spjaċevoli li wieħed imur fuqha, għaliex meta nitkellmu dwar xi tip ta 'xogħol bi tpartit, tispiċċa bil-wasla f'waqtha tal-OOM-qattiel. U l-OOM-qattiel, li ma wasalx fil-ħin u niżel PostgreSQL, huwa spjaċevoli. Kulħadd se jkun jaf dwar dan, jiġifieri, sal-aħħar utent.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

X'qiegħed jiġri? Għandek ammont kbir ta 'RAM hemmhekk, kollox jaħdem tajjeb. Iżda għal xi raġuni s-server prekarja fi tpartit u jonqos minħabba dan. Jidher li hemm ħafna memorja, iżda dan jiġri.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Preċedentement, aħna avżajna li nissettjaw vm.swappiness għal żero, jiġifieri li tiddiżattiva t-tpartit. Preċedentement, deher li 32 GB ta 'RAM u buffers kondiviżi korrispondenti kien ammont kbir. L-għan ewlieni tat-tpartit huwa li jkollna post fejn tarmi l-qoxra jekk naqgħu. U ma kienx għadu partikolarment sodisfatt. U allura x’se tagħmel b’din il-qoxra? Dan huwa kompitu fejn mhuwiex ċar ħafna għaliex huwa meħtieġ tpartit, speċjalment ta 'daqs bħal dan.

Iżda f'aktar moderni, jiġifieri, it-tielet verżjonijiet tal-qalba, l-imġieba inbidlet. U jekk issettja t-tpartit għal żero, jiġifieri itfih, imbagħad illum jew għada, anke jekk fadal xi RAM, qattiel OOM jiġi għandek biex joqtol l-aktar konsumaturi intensivi. Għax se jikkunsidra li b’xogħol bħal dan għad fadlilna ftit u se naqbżu ‘l barra, jiġifieri mhux biex nagħlqu l-proċess tas-sistema, imma biex nagħtu xi ħaġa inqas importanti. Dan inqas importanti se jkun il-konsumatur intensiv tal-memorja kondiviża, jiġifieri l-postmaster. U wara dan ikun tajjeb jekk il-bażi ma jkollhiex għalfejn tiġi restawrata.

Għalhekk, issa l-inadempjenza, sa fejn niftakar, il-biċċa l-kbira tad-distribuzzjonijiet huma xi mkien madwar 6, jiġifieri f'liema punt għandek tibda tuża t-tpartit skont kemm fadal memorja. Issa nirrakkomandaw li nissettjaw vm.swappiness = 1, għaliex dan prattikament jitfih, iżda ma jagħtix l-istess effetti bħal ma 'OOM-killer li wasal bla mistenni u qatel il-ħaġa sħiħa.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

X'inhu jmiss? Meta nitkellmu dwar il-prestazzjoni tad-databases u nimxu gradwalment lejn diski, kulħadd jibda jaqbad rasu. Minħabba li l-verità li d-diska hija bil-mod u l-memorja hija mgħaġġla hija familjari għal kulħadd mit-tfulija. U kulħadd jaf li d-database se jkollha problemi ta 'prestazzjoni tad-disk.

Il-problema ewlenija tal-prestazzjoni ta 'PostgreSQL assoċjata ma' spikes tal-punti ta 'kontroll ma sseħħx minħabba li d-diska hija bil-mod. Dan huwa x'aktarx minħabba l-fatt li l-memorja u l-bandwidth tad-disk mhumiex ibbilanċjati. Madankollu, jistgħu ma jkunux ibbilanċjati f'postijiet differenti. PostgreSQL mhuwiex ikkonfigurat, l-OS mhuwiex ikkonfigurat, il-ħardwer mhux ikkonfigurat u l-ħardwer huwa żbaljat. U din il-problema ma sseħħx biss jekk kollox iseħħ kif suppost, jiġifieri jew ma jkunx hemm tagħbija, jew is-settings u l-hardware jintgħażlu sew.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

X'inhu u kif jidher? Normalment in-nies li jaħdmu ma 'PostgreSQL daħlu f'din il-kwistjoni aktar minn darba. Jien ser nispjega. Kif għedt, PostgreSQL perjodikament jagħmel punti ta 'kontroll biex jitfa' paġni maħmuġin f'memorja kondiviża fuq disk. Jekk ikollna ammont kbir ta 'memorja kondiviża, allura l-punt ta' kontroll jibda jkollu impatt intensiv fuq id-diska, minħabba li jitfa 'dawn il-paġni b'fsync. Jasal fil-buffer tal-kernel u jinkiteb fuq diski billi juża fsync. U jekk il-volum ta 'dan in-negozju huwa kbir, allura nistgħu nosservaw effett spjaċevoli, jiġifieri utilizzazzjoni kbira ħafna ta' diski.

Hawnhekk għandi żewġ stampi. Issa se nispjega x'inhu. Dawn huma żewġ graffs korrelatati mal-ħin. L-ewwel graff huwa l-użu tad-disk. Hawnhekk jilħaq kważi 90% f'dan il-ħin. Jekk għandek falliment ta 'database b'diski fiżiċi, b'utilizzazzjoni ta' kontrollur RAID f'90%, allura din hija aħbar ħażina. Dan ifisser li ftit aktar u se jilħaq 100 u l-I/O jieqaf.

Jekk għandek firxa ta 'disk, allura hija storja kemmxejn differenti. Jiddependi fuq kif huwa kkonfigurat, x'tip ta 'firxa hija, eċċ.

U b'mod parallel, grafika mill-veduta interna postgres hija kkonfigurata hawn, li tgħid kif iseħħ il-punt ta 'kontroll. U l-kulur aħdar hawn juri kemm buffers, dawn il-paġni maħmuġin, f'dak il-mument waslu f'dan il-punt ta 'kontroll għas-sinkronizzazzjoni. U din hija l-ħaġa prinċipali li għandek bżonn tkun taf hawn. Naraw li għandna ħafna paġni hawn u f'xi punt aħna laqtu l-bord, jiġifieri, ktibna u ktibna, hawn is-sistema tad-disk hija ċarament okkupata ħafna. U l-punt ta 'kontroll tagħna għandu impatt qawwi ħafna fuq id-diska. Idealment, is-sitwazzjoni għandha tidher aktar bħal din, jiġifieri kellna inqas reġistrazzjoni hawn. U nistgħu nirranġawha bis-settings sabiex tkompli tkun hekk. Jiġifieri, ir-riċiklaġġ huwa żgħir, imma x'imkien qed niktbu xi ħaġa hawn.

X'għandu jsir biex tingħeleb din il-problema? Jekk waqqaft IO taħt id-database, dan ifisser li l-utenti kollha li ġew biex jissodisfaw it-talbiet tagħhom se jistennew.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Jekk tħares mil-lat ta 'Linux, jekk ħadt ħardwer tajjeb, ikkonfigurat b'mod korrett, ikkonfigurat PostgreSQL b'mod normali sabiex jagħmel dawn il-punti ta' kontroll inqas ta 'spiss, ixerredhom maż-żmien bejn xulxin, imbagħad tidħol fil-parametri Debian default. Għall-biċċa l-kbira tad-distribuzzjonijiet tal-Linux, din hija l-istampa: vm.dirty_ratio=20, vm.dirty_background_ratio=10.

Xi tfisser? Dimostrazzjoni tal-fawra waħda deher mill-qalba 2.6. Pdglush, jiddependi fuq min qed juża liema, li huwa involut fir-rimi fl-isfond ta 'paġni maħmuġin mill-buffer tal-qalba u jarmi meta jkun meħtieġ li jarmi paġni maħmuġin x'ikun, meta l-iskartar tal-backgrouind ma jgħinx.

Meta jiġi l-isfond? Meta 10% tar-RAM totali disponibbli fuq is-server ikun okkupat minn paġni maħmuġin fil-buffer tal-qalba, tissejjaħ funzjoni ta 'write-off speċjali fl-isfond. Għaliex huwa l-isfond? Bħala parametru, tqis kemm paġni trid tħassar. U, ejja ngħidu, jikteb N paġni. U għal xi żmien din il-ħaġa torqod. U mbagħad terġa’ tiġi u tikkopja xi paġni oħra.

Din hija storja estremament sempliċi. Il-problema hawnhekk hija bħal ma 'pixxina, meta tferra' f'pajp wieħed, joħroġ f'ieħor. Il-punt ta 'kontroll tagħna wasal u jekk bagħat ftit paġni maħmuġin għar-rimi, allura gradwalment il-ħaġa sħiħa tiġi solvuta bir-reqqa mill-buffer tal-qalba pgflush.

Jekk dawn il-paġni maħmuġin ikomplu jakkumulaw, jakkumulaw sa 20%, wara li l-prijorità tal-OS hija li tħassar il-ħaġa sħiħa għad-diska, minħabba li l-qawwa tfalli u kollox ikun ħażin għalina. Aħna se nitilfu din id-dejta, pereżempju.

X'inhu l-trick? Il-trick huwa li dawn il-parametri fid-dinja moderna huma 20 u 10% tar-RAM totali li hemm fuq il-magna, huma assolutament monstrous f'termini tal-fluss ta 'kwalunkwe sistema ta' disk li għandek.

Immaġina li għandek 128 GB RAM. 12,8 GB tasal fis-sistema tad-disk tiegħek. U ma jimpurtax f'liema cache għandek hemmhekk, irrispettivament minn liema firxa għandek hemmhekk, dawn mhux se jdumu daqshekk.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Għalhekk, nirrakkomandaw li taġġusta immedjatament dawn in-numri abbażi tal-kapaċitajiet tal-kontrollur RAID tiegħek. Immedjatament għamilt rakkomandazzjoni hawn għal kontrollur li għandu 512 MB ta 'cache.

Kollox jitqies sempliċi ħafna. Tista' tpoġġi vm.dirty_background f'bytes. U dawn is-settings jikkanċellaw it-tnejn preċedenti. Jew il-proporzjon huwa awtomatikament, jew dawk b'bytes huma attivati, allura dawk b'bytes se jaħdmu. Imma peress li jien konsulent tad-DBA u naħdem ma 'klijenti differenti, nipprova niġbed tibniet u għalhekk, jekk f'bytes, allura f'bytes. Ħadd ma ta l-ebda garanzija li admin tajjeb ma jżidx memorja mas-server, jerġa 'jibda, u ċ-ċifra tibqa' l-istess. Ikkalkula biss dawn in-numri sabiex kollox jidħol fih b'garanzija.

X'jiġri jekk ma tidħolx? Ktibt li kwalunkwe flushing effettivament titwaqqaf, iżda fil-fatt din hija figura ta 'diskors. Is-sistema operattiva għandha problema kbira - għandha ħafna paġni maħmuġin, għalhekk l-IO li jiġġeneraw il-klijenti tiegħek titwaqqaf b'mod effettiv, jiġifieri l-applikazzjoni waslet biex tibgħat mistoqsija sql lid-database, qed tistenna. Kwalunkwe input/output għaliha hija ta' l-inqas prijorità, minħabba li d-database hija okkupata minn punt ta' kontroll. U meta se tispiċċa huwa kompletament mhux ċar. U meta ksibt flushing mhux fl-isfond, dan ifisser li l-IO kollu tiegħek huwa okkupat minnha. U sakemm jispiċċa, ma tagħmel xejn.

Hemm żewġ punti oħra importanti hawnhekk li huma lil hinn mill-ambitu ta' dan ir-rapport. Dawn is-settings għandhom jaqblu mas-settings f'postgresql.conf, jiġifieri settings tal-punti ta 'kontroll. U s-sistema tad-disk tiegħek għandha tkun ikkonfigurata b'mod adegwat. Jekk għandek cache fuq RAID, allura għandu jkollu batterija. In-nies jixtru RAID b'cache tajba mingħajr batterija. Jekk għandek SSDs fir-RAID, allura għandhom ikunu dawk tas-server, irid ikun hemm capacitors hemmhekk. Hawnhekk hawn lista ta 'kontroll dettaljata. Din il-link fiha r-rapport tiegħi dwar kif tikkonfigura disk tal-prestazzjoni f'PostgreSQL. Hemm dawn il-listi ta' kontroll kollha hemmhekk.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

X'iktar jista' jagħmel il-ħajja diffiċli ħafna? Dawn huma żewġ parametri. Huma relattivament ġodda. B'mod awtomatiku, jistgħu jiġu inklużi f'applikazzjonijiet differenti. U jistgħu jagħmlu l-ħajja daqstant diffiċli jekk jinxtegħlu ħażin.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Hemm żewġ affarijiet relattivament ġodda. Diġà dehru fit-tielet qlub. Dan huwa sched_migration_cost f'nanosekondi u sched_autogroup_enabled, li huwa wieħed awtomatikament.

U kif iħassru ħajtek? X'inhu sched_migration_cost? Fuq il-Linux, l-iskeder jista’ jemigra proċess minn CPU għal ieħor. U għal PostgreSQL, li jesegwixxi mistoqsijiet, il-migrazzjoni għal CPU ieħor hija kompletament mhux ċara. Mil-lat tas-sistema operattiva, meta taqleb it-twieqi bejn openoffice u terminal, dan jista 'jkun tajjeb, iżda għal database dan huwa ħażin ħafna. Għalhekk, politika raġonevoli hija li tiffissa migration_cost għal xi valur kbir, mill-inqas diversi eluf ta 'nanosekondi.

X'se jfisser dan għal Scheduler? Se jitqies li matul dan iż-żmien il-proċess għadu jaħraq. Jiġifieri, jekk għandek tranżazzjoni fit-tul li ilha tagħmel xi ħaġa għal żmien twil, l-iskeder se jifhem dan. Huwa se jassumi li sakemm jgħaddi dan iż-żmien, m'hemm l-ebda ħtieġa li jiġi migrat dan il-proċess kullimkien. Jekk fl-istess ħin il-proċess jagħmel xi ħaġa, allura ma jiġi emigrat imkien, jaħdem bil-kwiet fuq is-CPU li kien allokat lilu. U r-riżultat huwa eċċellenti.

It-tieni punt huwa autogroup. Hemm idea tajba għal xogħolijiet speċifiċi li mhumiex relatati ma 'databases moderni - dan huwa li l-proċessi jiġu miġbura mit-terminal virtwali li minnu jkunu mnedija. Dan huwa konvenjenti għal xi kompiti. Fil-prattika, PostgreSQL hija sistema b'ħafna proċessi bi prefork li jibda minn terminal wieħed. Għandek kittieb lock, punt ta 'kontroll, u t-talbiet kollha tal-klijenti tiegħek se jiġu miġbura fi skedatur wieħed, għal kull CPU. U se jistennew hemm fl-unison biex ikun ħieles, sabiex jinterferixxu ma 'xulxin u jżommu okkupat għal aktar żmien. Din hija storja li hija kompletament bla bżonn fil-każ ta 'tali tagħbija u għalhekk jeħtieġ li tintefa.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

Il-kollega tiegħi Alexey Lesovsky għamel testijiet b'pgbench sempliċi, fejn żied il-migration_cost b'ordni ta 'kobor u tefa l-autogroup. Id-differenza fuq hardware ħażin kienet kważi 10%. Hemm diskussjoni fuq il-lista tal-posta postgres fejn in-nies jagħtu riżultati ta 'bidliet simili għall-veloċità tal-mistoqsija influwenzat 50%. Hemm ħafna stejjer bħal dawn.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

U fl-aħħarnett, dwar il-politika tal-iffrankar tal-enerġija. Il-ħaġa tajba hija li Linux issa jista 'jintuża fuq laptop. U allegatament se juża l-batterija sew. Iżda f'daqqa waħda jirriżulta li dan jista 'jiġri wkoll fuq is-server.

Barra minn hekk, jekk tikri servers minn xi hoster, allura l-hosters "tajbin" ma jimpurtahomx li għandek prestazzjoni aħjar. Il-kompitu tagħhom huwa li jiżguraw li l-ħadid tagħhom jiġi utilizzat bl-aktar mod effiċjenti possibbli. Għalhekk, awtomatikament jistgħu jippermettu l-modalità tal-iffrankar tal-enerġija tal-laptop fuq is-sistema operattiva.

Jekk tuża dan l-għalf fuq server b'database taħt tagħbija kbira, allura l-għażla tiegħek hija acpi_cpufreq + permormance. Anke b'ondemand se jkun hemm problemi.

Intel_pstate huwa sewwieq kemmxejn differenti. U issa tingħata preferenza lil dan, peress li huwa aktar tard u jaħdem aħjar.

U, għalhekk, gvernatur huwa biss prestazzjoni. Ondemand, powersave u kull ħaġa oħra mhumiex dwarek.

Ir-riżultati ta 'spjega analizza PostgreSQL jistgħu jvarjaw b'diversi ordnijiet ta' kobor jekk tippermetti powersave, minħabba li prattikament is-CPU taħt id-database tiegħek se jkun qed jaħdem b'mod kompletament imprevedibbli.

Dawn l-oġġetti jistgħu jiġu inklużi awtomatikament. Ħares bir-reqqa biex tara jekk daruhx awtomatikament. Din tista’ tkun problema tassew kbira.

Irfinar tal-Linux biex ittejjeb il-prestazzjoni ta' PostgreSQL. Ilya Kosmodemyansky

U fl-aħħar, ridt ngħid grazzi lill-guys mit-tim tagħna ta 'PosgreSQL-Consulting DBA, jiġifieri Max Boguk u Alexey Lesovsky, li qed jagħmlu progress f'din il-kwistjoni kuljum. U nippruvaw nagħmlu l-aħjar li nistgħu għall-klijenti tagħna sabiex kollox jaħdem għalihom. Huwa bħall-istruzzjonijiet dwar is-sikurezza tal-avjazzjoni. Kollox hawn hu miktub fid-demm. Kull wieħed minn dawn il-ġewż jinstab fil-proċess ta 'xi tip ta' problema. Jien kuntent li naqsamhom miegħek.

Mistoqsijiet:

Grazzi! Jekk, pereżempju, kumpanija trid tiffranka l-flus u tpoġġi d-database u l-loġika tal-applikazzjoni fuq server wieħed, jew jekk il-kumpanija ssegwi t-tendenza tal-moda tal-arkitetturi tal-mikroservizz, li fihom PostgreSQL jaħdem f'kontenitur. X'inhu l-trick? Sysctl se jaffettwa l-kernel kollu globalment. Ma smajtx bis-sysctls li b'xi mod jiġu virtwalizzati sabiex jaħdmu separatament fuq kontenitur. Hemm biss cgroup u hemm biss parti mill-kontroll hemmhekk. Kif tista’ tgħix b’dan? Jew jekk trid prestazzjoni, imbagħad ħaddem PostgreSQL fuq server ta 'hardware separat u rranġaha?

Aħna wieġeb il-mistoqsija tiegħek b'madwar tliet modi. Jekk ma nkunux qed nitkellmu dwar server ta 'ħardwer li jista' jiġi rranġat, eċċ., Imbagħad jirrilassaw, kollox jaħdem tajjeb mingħajr dawn is-settings. Jekk għandek tali tagħbija li għandek bżonn tagħmel dawn is-settings, allura inti tasal għas-server tal-ħadid aktar kmieni milli għal dawn is-settings.

X'inhi l-problema? Jekk din hija magna virtwali, allura x'aktarx ikollok ħafna problemi, pereżempju, bil-fatt li fuq il-biċċa l-kbira tal-magni virtwali l-latency tad-diska hija pjuttost inkonsistenti. Anke jekk it-throughput tad-disk huwa tajjeb, allura tranżazzjoni waħda I/O falluta li ma taffettwax ħafna l-fluss medju li ġara fil-ħin tal-punt ta 'kontroll jew fil-ħin tal-kitba lil WAL, allura d-database se jsofri ħafna minn dan. U tinduna dan qabel ma tiffaċċja dawn il-problemi.

Jekk għandek NGINX fuq l-istess server, ikollok ukoll l-istess problema. Huwa se jiġġieled għal memorja kondiviża. U int mhux se tasal għall-problemi deskritti hawn.

Iżda min-naħa l-oħra, xi wħud minn dawn il-parametri xorta se jkunu rilevanti għalik. Pereżempju, issettja dirty_ratio b'sysctl sabiex ma jkunx daqshekk miġnun - fi kwalunkwe każ, dan jgħin. Mod jew ieħor, ser ikollok interazzjoni mad-diska. U se jkun skond il-mudell ħażin. Dan huwa ġeneralment default għall-parametri li wrejt. U fi kwalunkwe każ huwa aħjar li tbiddelhom.

Iżda jista' jkun hemm problemi b'NUMA. VmWare, pereżempju, jaħdem tajjeb ma' NUMA b'settings eżattament opposti. U hawn trid tagħżel - server tal-ħadid jew wieħed mhux tal-ħadid.

Għandi mistoqsija relatata ma 'Amazon AWS. Huma għandhom immaġini konfigurati minn qabel. Wieħed minnhom jissejjaħ Amazon RDS. Hemm xi settings tad-dwana għas-sistema operattiva tagħhom?

Hemm settings hemmhekk, iżda huma settings differenti. Hawnhekk aħna kkonfigurat is-sistema operattiva f'termini ta 'kif id-database se tuża din il-ħaġa. U hemm parametri li jiddeterminaw fejn għandna mmorru issa, bħall-iffurmar. Jiġifieri għandna bżonn tant riżorsi, issa se niekluhom. Wara dan, Amazon RDS jissikka dawn ir-riżorsi, u l-prestazzjoni tinżel hemm. Hemm stejjer individwali ta’ kif in-nies qed jibdew ifixklu din il-materja. Kultant anke b'suċċess. Iżda dan m'għandu x'jaqsam xejn mal-issettjar tal-OS. Huwa simili hacking-sħaba. Dik hija storja differenti.

Għaliex il-paġni enormi trasparenti m'għandhom l-ebda effett meta mqabbla ma 'Huge TLB?

Tagħtix. Dan jista 'jiġi spjegat f'ħafna modi. Imma fil-fatt sempliċement ma jagħtuhiex. X'inhi l-istorja ta' PostgreSQL? Fl-istartjar, jalloka biċċa kbira ta 'memorja kondiviża. Jekk humiex trasparenti jew le huwa kompletament irrilevanti. Il-fatt li jispikkaw fil-bidu jispjega kollox. U jekk hemm ħafna memorja u għandek bżonn tibni mill-ġdid is-segment shared_memory, allura Paġni enormi trasparenti jkunu rilevanti. F'PostgreSQL, huwa sempliċement allokat f'biċċa kbira fil-bidu u dak hu, u allura ma jiġri xejn speċjali hemmhekk. Tista', ovvjament, tużaha, iżda hemm ċans li tikseb korruzzjoni ta' shared_memory meta terġa' talloka xi ħaġa. PostgreSQL ma jafx dwar dan.

Sors: www.habr.com

Żid kumment