Ukuqwalasela i Linux kernel ye GlusterFS

Ukuguqulelwa kwenqaku kwalungiselelwa kwangaphambi kokuqalisa kwekhosi "Umlawuli weLinux. Ubuchwephesha".

Ukuqwalasela i Linux kernel ye GlusterFS

Ngamaxesha ngamaxesha, apha naphaya imibuzo iyavela malunga neengcebiso zikaGluster malunga nokwenziwa ngokwezifiso kwekernel nokuba kuyimfuneko.

Le mfuno ayifane ivele. Undoqo uqhuba kakuhle kakhulu phantsi kwemisebenzi emininzi. Nangona kukho i-downside. Ngokwembali, i-Linux kernel idla ngokulula inkumbulo eninzi ukuba inikwe ithuba, kubandakanywa ne-caching njengeyona ndlela iphambili yokuphucula ukusebenza.

Kwiimeko ezininzi oku kusebenza kakuhle, kodwa phantsi komthwalo onzima kunokubangela iingxaki.

Sinamava amaninzi asebenzayo kunye neenkqubo ezidla imemori eninzi, njenge-CAD, i-EDA kunye nokunye okunjalo, okwaqala ukucotha phantsi komthwalo ophezulu. Kwaye ngamanye amaxesha sasidibana neengxaki e-Gluster. Emva kokubeka iliso ngononophelo imemori esetyenzisiweyo kunye nexesha lokulinda idiski ngaphezulu kosuku olunye, sifumene ukugcwala kwediski, iowait enkulu, iimpazamo zekernel (kernel oops), umkhenkce, njl.

Eli nqaku lisisiphumo sovavanyo oluninzi lweparameter tuning olwenziwe kwiimeko ezahlukeneyo. Ndiyabulela kule parameters, kungekhona kuphela ukuphendula ngokubanzi kuphuculwe, kodwa kunye nokusebenza kweqela kwazinziswa kakhulu.

Xa kuziwa kuqwalaselo lwememori, indawo yokuqala yokujonga yinkqubo esezantsi yememori (VM), enenani elikhulu leenketho ezinokudida.

vm.ukonwaba

IParamu vm.swappiness imisela ukuba ingakanani na ikernel esebenzisa utshintshiselwano xa kuthelekiswa ne-RAM. Ikwachazwa kwikhowudi yomthombo "njengotyekelo lokuba imemori emephu." Ixabiso eliphezulu lokutshintshiselana lithetha ukuba i-kernel izakuba lula ukutshintshisa amaphepha afakwe kwimaphu. Ixabiso eliphantsi lokutshintsha lithetha okuchaseneyo: ikernel izakutshintsha amaphepha ngaphandle kwenkumbulo ngaphantsi. Ngamanye amazwi, ixabiso eliphezulu vm.swappiness, kokukhona inkqubo izakusebenzisa ukutshintsha.

Ukusetyenziswa kakhulu kokutshintshatshintsha akufuneki, kuba iibhloko ezinkulu zedatha zilayishwa kwaye zothulwa kwi-RAM. Abantu abaninzi baxoxa ukuba ixabiso le-swapiness kufuneka libe phezulu, kodwa kumava am, ukuyibeka ku- "0" kubangela ukusebenza okungcono.

Unokufunda ngakumbi apha - lwn.net/Articles/100978

Kodwa kwakhona, ezi zicwangciso kufuneka zisetyenziswe ngononophelo kwaye kuphela emva kokuvavanya isicelo esithile. Kwizicelo zostrimisho ezilayishwe kakhulu, le parameter kufuneka imiselwe ku-"0". Xa utshintshelwe ku-"0", ukuphendula kwesistim kuyaphucuka.

vm.vfs_cache_pressure

Esi sicwangciso silawula inkumbulo edliwe yi-kernel yezinto ezigcinwe kwi-caching kunye ne-inodes (i-dentry kunye ne-inode).

Ngexabiso elingagqibekanga le-100, i-kernel iya kuzama ukukhulula i-dentry kunye ne-inode caches ngendlela efanelekileyo kwi-pagecache kunye ne-swapcache. Ukunciphisa i-vfs_cache_pressure kubangela ukuba i-kernel igcine i-dentry kunye ne-inode caches. Xa ixabiso lingu "0", i-kernel ayisoze igungxule i-dentry kunye ne-inode cache ngenxa yoxinzelelo lwememori, kwaye oku kunokukhokelela ngokulula kwimpazamo engaphandle kwememori. Ukunyusa i-vfs_cache_pressure ngaphezu kwe-100 kubangela ukuba i-kernel inike kuqala i-dentry kunye ne-inode pageouts.

Xa usebenzisa i-GlusterFS, abasebenzisi abaninzi abaneedatha ezininzi kunye neefayile ezincinci ezincinci banokusebenzisa ngokulula inani elikhulu le-RAM kumncedisi ngenxa ye-inode / caching dentry, enokubangela ukuba usebenze kakubi njengoko i-kernel kufuneka iphathe izakhiwo zedatha kwinkqubo. kunye ne-40 GB yememori. Ukuseta le parameter ibe ngaphezulu kwe-100 incede abasebenzisi abaninzi ukuba bafezekise i-caching efanelekileyo kunye nokuphucula ukuphendula kwekernel.

vm.dirty_background_ratio kunye ne-vm.dirty_ratio

Iparamitha yokuqala (vm.dirty_background_ratio) igqiba ipesenti yenkumbulo enamaphepha amdaka, ekufikeleleni apho kuyimfuneko ukuqala ukugungxulwa ngasemva kwamaphepha amdaka kwidiski. De le pesenti ifikelelwe, amaphepha awagungxulwa kwidiski. Kwaye xa ukusetha kwakhona kuqala, kuqhuba ngasemva ngaphandle kokuphazamisa iinkqubo ezisebenzayo.

Iparamitha yesibini (vm.dirty_ratio) imisela ipesenti yenkumbulo enokuhlalwa ngamaphepha amdaka phambi kokuba kuqale ukukhanya okunyanzelweyo. Nje ukuba lo mqobo ufikeleleke, zonke iinkqubo ziba yi-synchronous (zivaliwe) kwaye azivumelekanga ukuqhubeka nokusebenza de umsebenzi we-I/O abawucelileyo ugqitywe kwaye idatha ikwidiski. Ngomthwalo ophezulu we-I/O, oku kubangela ingxaki kuba akukho caching yedatha kwaye zonke iinkqubo ezenza i-I/O zivaliwe ukulinda i-I/O. Oku kubangela inani elikhulu leenkqubo zokuxhoma, umthwalo ophezulu, ukungazinzi kwenkqubo kunye nokusebenza kakubi.

Ukunciphisa amaxabiso ezi parameters kubangela ukuba idatha ihanjiswe kwidisk rhoqo kwaye ingagcinwa kwi-RAM. Oku kunokunceda iisistim ezinzima zememori apho kuqhelekile ukugungxula i-45-90GB iicache zephepha kwidisk, okukhokelela kwi-latency enkulu yezicelo zangaphambili, ukunciphisa ukuphendula kunye nokunxibelelana.

"1"> /proc/sys/vm/pagecache

I-cache yekhasi yi-cache egcina idatha kwiifayile kunye neenkqubo eziphunyezwayo, oko kukuthi, la maphepha anomxholo wangempela weefayile okanye izixhobo zokubhloka. Le cache isetyenziselwa ukunciphisa inani ledisk efundwayo. Ixabiso elithi "1" lithetha ukuba i-cache isebenzisa i-1% ye-RAM kwaye kuya kubakho ukufundwa okuninzi kwidiski kune-RAM. Akuyomfuneko ukutshintsha olu cwangciso, kodwa ukuba une-paranoid malunga nokulawula indawo efihlakeleyo yephepha, ungayisebenzisa.

"umhla wokugqibela"> /sys/block/sdc/queue/scheduler

Umcwangcisi we-I/O lilungu leLinux kernel ephatha ukufunda nokubhala imigca. Kwithiyori, kungcono ukusebenzisa i-"noop" kwisilawuli se-RAID esilumkileyo, kuba iLinux ayazi nto malunga nejometri yediski yediski, ngoko kusebenza ngakumbi ukuvumela umlawuli, owazi kakuhle ijometri yediski, enze isicelo njenge ngokukhawuleza kangangoko kunokwenzeka. Kodwa kubonakala ngathi "umhla wokugqibela" uphucula ukusebenza. Ulwazi oluninzi malunga nabacwangcisi banokufunyanwa kuxwebhu lwekhowudi yemvelaphi yekernel yeLinux: linux/Documentation/block/*osched.txt. Kwaye ndabona ukonyuka kokufunda okuphumayo ngexesha lemisebenzi exubeneyo (ininzi yokubhala).

"256" > /sys/block/sdc/queue/nr_requests

Inani lezicelo ze-I/O kwi-buffer phambi kokuba zithunyelwe kumcwangcisi. Ubungakanani bangaphakathi bomgca wabalawuli (umgca_ubunzulu) mkhulu kunezicelo ze-I/O zomcwangcisi we-I/O, ngoko ke umcwangcisi we-I/O unethuba elincinci lokubeka phambili ngokufanelekileyo kunye nokudibanisa izicelo. Ngomhla wokugqibela kunye nabacwangcisi be-CFQ, kungcono xa i-nr_requests iphindwe ngama-2 amakhulu kunomgca wangaphakathi womlawuli. Ukudibanisa kunye nokucwangcisa kwakhona imibuzo kunceda umcwangcisi ukuba aphendule ngakumbi phantsi komthwalo onzima.

phinda "16" > /proc/sys/vm/page-cluster

Iparamitha yeqela lephepha ilawula inani lamaphepha abhalwe utshintshiselwano ngexesha elinye. Kulo mzekelo ungasentla, ixabiso limiselwe ku-"16" ukuze litshatise ubungakanani bomgca we-RAID we-64 KB. Oku akunangqiqo xa swappiness = 0, kodwa ukuba useta swappiness ukuya 10 okanye 20, ngoko ukusebenzisa eli xabiso kuya kukunceda xa ubungakanani umgca RAID yi 64 KB.

blockdev --setra 4096 /dev/<devname> (-sdb, hdc okanye dev_mapper)

Iseto esisingqinisiso sesixhobo sesixhobo sabalawuli abaninzi be-RAID kaninzi sikhokelela ekusebenzeni kakubi. Ukongeza olu khetho lungentla luqwalasela ukufunda kwangaphambili kumacandelo e-4096*512 byte. Ubuncinci kwimisebenzi yostrimisho, isantya sonyuswa ngokugcwalisa i-on-chip disk cache ngokufunda-phambili ngexesha ikernel elisebenzisayo ukulungiselela i-I/O. I-cache inokubamba idatha eya kucelwa ngexesha lokufunda okulandelayo. Ukufunda phambili kakhulu kunokubulala i-I/O engakhethiyo kwiifayile ezinkulu ukuba isebenzisa ixesha elinokuba luncedo lediski okanye ilayishe idatha ngaphandle kwendawo yokugcina indawo.

Ngezantsi kukho iingcebiso ezimbalwa ngakumbi kwinqanaba lenkqubo yefayile. Kodwa abakavavanywa okwangoku. Qinisekisa ukuba inkqubo yakho yefayile iyawazi ubungakanani bomgca kunye nenani lediski kuluhlu. Umzekelo, ukuba olu luluhlu lwe-raid5 kunye nobukhulu bomgca we-64K yeediski ezintandathu (eneneni zintlanu, kuba idiski enye isetyenziselwa ukulingana). Ezi ngcebiso zisekelwe kwiingcamango zethiyori kwaye ziqokelelwe kwiiblogi ezahlukeneyo / amanqaku ngamanqaku e-RAID.

-> ext4 fs, 5 disks, 64K stripe, units in 4K blocks
mkfs -text4 -E stride=$((64/4))
-> xfs, 5 disks, 64K stripe, units in 512-byte sectors
mkfs -txfs -d sunit=$((64*2)) -d swidth=$((5*64*2))

Kwiifayile ezinkulu, unokucinga ngokunyusa ubungakanani bemigca engentla.

QAPHELA! Yonke into echazwe ngasentla ixhomekeke kakhulu kwezinye iintlobo zezicelo. Eli nqaku aliqinisekisi naluphi na uphuculo ngaphandle kokuvavanya kuqala izicelo ezifanelekileyo ngumsebenzisi. Kufuneka isetyenziswe kuphela ukuba kukho imfuneko yokuphucula ukuphendula kwenkqubo ngokubanzi okanye ukuba isombulula iingxaki zangoku.

Izinto ezongeziweyo:

Ukuqwalasela i Linux kernel ye GlusterFS

Funda ngokugqithisileyo

umthombo: www.habr.com

Yongeza izimvo