Ilungiselela i-Linux kernel ye-GlusterFS

Ukuhunyushwa kwesihloko kwalungiselelwa ngobusuku bangaphambi kokuqala kwesifundo "I-Linux Administrator. Uchwepheshe".

Ilungiselela i-Linux kernel ye-GlusterFS

Ngokuhamba kwesikhathi, lapha nalaphaya kuphakama imibuzo mayelana nezincomo ze-Gluster mayelana nokwenza ngokwezifiso i-kernel nokuthi kuyadingeka yini.

Lesi sidingo asivamile ukuvela. I-core isebenza kahle kakhulu ngaphansi kwemithwalo eminingi yomsebenzi. Nakuba kukhona okubi. Ngokomlando, i-Linux kernel idla kalula inkumbulo eningi uma inikezwa ithuba, okuhlanganisa nokulondolozwa kwesikhashana njengendlela eyinhloko yokuthuthukisa ukusebenza.

Ezimweni eziningi lokhu kusebenza kahle, kodwa ngaphansi komthwalo osindayo kungabangela izinkinga.

Sinolwazi olunzulu lokusebenza nezinhlelo ezidla inkumbulo eningi, njenge-CAD, EDA nokunye okunjalo, okwaqala ukwehla ngaphansi komthwalo omkhulu. Futhi ngezinye izikhathi sasihlangabezana nezinkinga e-Gluster. Ngemuva kokuqapha ngokucophelela inkumbulo esetshenzisiwe kanye nesikhathi sokulinda sediski isikhathi esingaphezu kosuku olulodwa, sithole ukugcwala kwediski, i-iowait enkulu, amaphutha e-kernel (i-kernel oops), iqhwa, njll.

Lesi sihloko siwumphumela wokuhlolwa okuningi kokushuna kwepharamitha okwenziwa ezimeni ezihlukahlukene. Ngenxa yale mingcele, hhayi kuphela ukuphendula ngokujwayelekile okuthuthukisiwe, kodwa futhi nokusebenza kweqoqo kwaqiniswa kakhulu.

Uma kuziwa ekulungiseni inkumbulo, indawo yokuqala okufanele ubheke kuyo i-virtual memory subsystem (VM), enenani elikhulu lezinketho ezingakudida.

vm.swappiness

Ipharamitha vm.swappiness inquma ukuthi ingakanani i-kernel esebenzisa i-swap uma iqhathaniswa ne-RAM. Kubuye kuchazwe kukhodi yomthombo ngokuthi "ukuthambekela kokweba inkumbulo efakwe kumephu." Inani eliphakeme lokushintshisana lisho ukuthi i-kernel izojwayele ukushintsha amakhasi amephu. Inani eliphansi le-swappiness lisho okuphambene: i-kernel izoshintsha amakhasi ngaphandle kwenkumbulo kancane. Ngamanye amazwi, inani eliphakeme vm.swappiness, isistimu izosebenzisa kakhulu ukushintshanisa.

Ukusetshenziswa kakhulu kokushintshashintsha akuthandeki, njengoba amabhulokhi amakhulu edatha ayalayishwa futhi alayishwe ku-RAM. Abantu abaningi baphikisa ngokuthi inani le-swapiness kufanele libe phezulu, kodwa kokuhlangenwe nakho kwami, ukuyibeka ku-“0” kuholela ekusebenzeni okungcono.

Ungafunda kabanzi lapha - lwn.net/Articles/100978

Kodwa futhi, lezi zilungiselelo kufanele zisetshenziswe ngokuqapha futhi kuphela ngemva kokuhlola uhlelo lokusebenza oluthile. Kuzinhlelo zokusebenza zokusakaza-bukhoma ezilayishwe kakhulu, le pharamitha kufanele isethwe ukuze ithi "0". Uma ishintshelwa ku-"0", ukusabela kwesistimu kuba ngcono.

vm.vfs_cache_pressure

Lesi silungiselelo silawula inkumbulo edliwe i-kernel yezinto zomkhombandlela wesikhashana kanye nama-inode (i-dentry ne-inode).

Ngevelu ezenzakalelayo ye-100, i-kernel izozama ukukhulula i-dentry kanye ne-inode caches ngendlela efanelekile ku-pagecache kanye ne-swapcache. Ukuncipha kwe-vfs_cache_pressure kubangela ukuthi i-kernel igcine i-dentry kanye ne-inode caches. Uma inani lingu-"0", i-kernel ayisoze yasula i-dentry ne-inode cache ngenxa yokucindezela kwememori, futhi lokhu kungaholela kalula ephutheni elingaphandle kwenkumbulo. Ukwenyusa i-vfs_cache_pressure ngaphezu kwe-100 kubangela ukuthi i-kernel inikeze kuqala i-dentry kanye nokuphuma kwamakhasi e-inode.

Uma usebenzisa i-GlusterFS, abasebenzisi abaningi abanenani elikhulu ledatha namafayela amaningi amancane bangasebenzisa kalula inani elikhulu le-RAM kuseva ngenxa ye-inode / dentry caching, okungaholela ekusebenzeni okungalungile njengoba i-kernel kufanele iphathe izakhiwo zedatha ohlelweni. ngememori engu-40 GB. Ukusetha le pharamitha ibe ngaphezulu kokungu-100 kusize abasebenzisi abaningi bathole ukugcinwa kwesikhashana okulungile kanye nokuphendula kwe-kernel okuthuthukisiwe.

vm.dirty_background_ratio kanye ne-vm.dirty_ratio

Ipharamitha yokuqala (vm.dirty_background_ratio) inquma iphesenti lememori enamakhasi angcolile, lapho ifika lapho kudingeka khona ukuqala ukugudluzwa kwangemuva kwamakhasi angcolile kudiski. Kuze kube yilapho kufinyelelwa khona leli phesenti, amakhasi awafakwa kudiski. Futhi uma ukusetha kabusha kuqala, kusebenza ngemuva ngaphandle kokuphazamisa izinqubo ezisebenzayo.

Ipharamitha yesibili (vm.dirty_ratio) inquma iphesenti lememori elingahlalwa amakhasi angcolile ngaphambi kokuba kuqale ukukhanya okuphoqelelwe. Uma lo mkhawulo usufinyelelwe, zonke izinqubo ziyavumelana (zivinjelwe) futhi azivunyelwe ukuqhubeka nokusebenza kuze kube yilapho umsebenzi we-I/O abawucelile usuqediwe ngempela futhi idatha ikudiski. Ngomthwalo ophezulu we-I/O, lokhu kubangela inkinga ngoba ayikho inqolobane yedatha futhi zonke izinqubo ezenza i-I/O zivinjiwe zilinde i-I/O. Lokhu kubangela inani elikhulu lezinqubo ezilengayo, umthwalo omkhulu, ukungazinzi kwesistimu nokusebenza kabi.

Ukunciphisa amanani alawa mapharamitha kubangela ukuthi idatha ihanjiswe kudiski kaningi futhi ingagcinwa ku-RAM. Lokhu kungasiza amasistimu anenkumbulo esindayo lapho kuvamile khona ukususa izinqolobane zamakhasi angu-45-90GB kudiski, okuholela ekubenimbezeleka okukhulu kwezinhlelo zokusebenza ezisekupheleni, kunciphisa ukuphendula kanye nokusebenzisana.

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

Inqolobane yekhasi yinqolobane egcina idatha evela kumafayela nezinhlelo ezisebenzisekayo, okungukuthi, lawa amakhasi anokuqukethwe kwangempela kwamafayela noma vimba amadivayisi. Le cache isetshenziselwa ukunciphisa inani lokufundwa kwediski. Inani elithi "1" lisho ukuthi inqolobane isebenzisa u-1% we-RAM futhi kuzoba nokuningi okufundwayo kudiski kunaku-RAM. Akudingekile ukushintsha lesi silungiselelo, kodwa uma udidekile mayelana nokulawula inqolobane yekhasi, ungayisebenzisa.

"umnqamulajuqu" > /sys/block/sdc/queue/scheduler

Isihleli se-I/O siyingxenye ye-Linux kernel ephatha imigqa yokufunda nokubhala. Ngokombono, kungcono ukusebenzisa i- "noop" yesilawuli se-RAID esihlakaniphile, ngoba i-Linux ayazi lutho mayelana nejometri ebonakalayo yediski, ngakho-ke kuphumelela kakhulu ukuvumela isilawuli, owazi kahle i-geometry yediski, ukucubungula isicelo njenge ngokushesha ngangokunokwenzeka. Kodwa kubonakala sengathi "umnqamulajuqu" uthuthukisa ukusebenza. Ulwazi olwengeziwe mayelana nabahleli bangatholakala kumadokhumenti ekhodi yomthombo we-kernel ye-Linux: linux/Documentation/block/*osched.txt. Futhi ngibone ukwanda kokufunda ngesikhathi sokusebenza okuxubile (okuningi kokubhala).

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

Inombolo yezicelo ze-I/O ku-buffer ngaphambi kokuthi zithunyelwe kusihleli. Usayizi womugqa wangaphakathi wabalawuli (umugqa_ukujula) mkhulu kunezicelo ze-Nr_O zomhleli we-I/O, ngakho umhleli we-I/O unamathuba amancane okubeka phambili ngokufanele nokuhlanganisa izicelo. Ngomnqamulajuqu kanye nabahleli be-CFQ, kungcono uma i-nr_requests inkulu izikhathi ezingu-2 kunomugqa wangaphakathi wesilawuli. Ukuhlanganisa nokuhlela kabusha imibuzo kusiza isihleli ukuthi siphendule ngaphansi komthwalo osindayo.

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

Ipharamitha yeqoqo lekhasi ilawula inani lamakhasi abhalelwe ukushintshaniswa ngesikhathi esisodwa. Esibonelweni esingenhla, inani lisethelwe ku-"16" ukuze lifane nosayizi womugqa we-RAID ongu-64 KB. Lokhu akuwenzi umqondo uma i-swappiness = 0, kodwa uma usetha ukushintshashintsha kokungu-10 noma ku-20, ukusebenzisa leli nani kuzokusiza uma usayizi womugqa we-RAID ungu-64 KB.

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

Izilungiselelo zedivayisi yokuvimba ezizenzakalelayo zezilawuli eziningi ze-RAID ngokuvamile ziholela ekusebenzeni okubi. Ukwengeza inketho engenhla kulungiselela ukufundwa kusengaphambili kwemikhakha ye-4096*512 byte. Okungenani emisebenzini yokusakaza-bukhoma, isivinini sikhuphuka ngokugcwalisa inqolobane yediski ye-chip ngokufunda kusengaphambili ngesikhathi i-kernel esisebenzisayo ukulungisa i-I/O. Inqolobane ingabamba idatha ezocelwa ngesikhathi sokufunda okulandelayo. Ukufunda kusengaphambili kakhulu kungabulala i-I/O engahleliwe kumafayela amakhulu uma kusebenzisa isikhathi sediski esingaba usizo noma ilayisha idatha ngaphandle kwenqolobane.

Ngezansi kunezincomo ezimbalwa ezengeziwe ezingeni lesistimu yefayela. Kodwa abakahlolisiswa. Qiniseka ukuthi uhlelo lwakho lwefayela luyawazi usayizi womugqa kanye nenani lamadiski kuhlelo. Isibonelo, ukuthi lokhu kuwuhlelo lwe-raid5 olunosayizi womugqa ongu-64K wamadiski ayisithupha (empeleni amahlanu, ngoba idiski eyodwa isetshenziselwa ukulingana). Lezi zincomo zisekelwe ekuqageleni kwetiyetha futhi zaqoqwa kumabhulogi/izihloko ezihlukahlukene ngochwepheshe be-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))

Kumafayela amakhulu, ungase ucabange ukwandisa osayizi bemigqa engenhla.

QAPHELA! Konke okuchazwe ngenhla kuncike kakhulu kwezinye izinhlobo zezinhlelo zokusebenza. Lesi sihloko asiqinisekisi noma yikuphi ukuthuthukiswa ngaphandle kokuhlola kuqala izinhlelo zokusebenza ezifanele ngumsebenzisi. Kufanele isetshenziswe kuphela uma kunesidingo sokuthuthukisa ukusabela kohlelo lonke noma uma ixazulula izinkinga zamanje.

Izinto ezingeziwe:

Ilungiselela i-Linux kernel ye-GlusterFS

Funda kabanzi

Source: www.habr.com

Engeza amazwana