Teem lub Linux ntsiav rau GlusterFS

Kev txhais lus ntawm tsab xov xwm tau npaj rau hnub ua ntej ntawm kev pib kawm Administrator Linux. Kev tshaj lij Β».

Teem lub Linux ntsiav rau GlusterFS

Ib ntus, ntawm no thiab qhov ntawd, cov lus nug tshwm sim txog Gluster cov lus pom zoo txog kev kho cov ntsiav thiab seb puas xav tau qhov no.

Qhov kev xav tau tsis tshua muaj tshwm sim. Hauv feem ntau ntawm cov haujlwm, cov ntsiav ua tau zoo heev. Txawm tias muaj ib tug downside. Keeb kwm, Linux kernel tau kam noj ntau lub cim xeeb yog tias muab lub sijhawm, suav nrog caching yog txoj hauv kev tseem ceeb los txhim kho kev ua haujlwm.

Feem ntau, qhov no ua haujlwm zoo, tab sis nyob rau hauv hnyav hnyav nws tuaj yeem ua rau muaj teeb meem.

Peb muaj kev paub ntau yam nrog lub cim xeeb hnyav xws li CAD, EDA thiab lwm yam, uas tau pib qeeb hauv qhov hnyav. Thiab qee zaum peb tau khiav mus rau qhov teeb meem hauv Gluster. Tom qab ua tib zoo saib xyuas kev siv lub cim xeeb thiab disk latency rau ntau hnub, peb tau txais lawv cov overload, loj iowait, kernel yuam kev (kernel oops), freezes, thiab lwm yam.

Cov kab lus no yog qhov tshwm sim ntawm ntau qhov kev sim ntsuas qhov ua tau nyob hauv ntau qhov xwm txheej. Ua tsaug rau cov kev txwv no, tsis yog tag nrho cov lus teb tau zoo tuaj, tab sis pawg neeg kuj tau ua kom ruaj khov.

Thaum nws los txog rau lub cim xeeb tuning, thawj qhov uas yuav tsum tau saib yog lub cim xeeb virtual (VM, lub cim xeeb virtual), uas muaj ntau cov kev xaiv uas tuaj yeem ua rau koj tsis meej pem.

vm sib

Parameter vm.swappiness txiav txim siab npaum li cas cov ntsiav siv swap (swap, paging) piv rau RAM. Nws kuj tau txhais nyob rau hauv lub hauv paus code raws li "nrhiav mus nyiag mapped nco". Kev swappiness siab txhais tau hais tias cov ntsiav yuav xav tau ntau dua los pauv cov nplooj ntawv mapped. Tus nqi swappiness qis txhais tau hais tias qhov tsis sib xws: cov ntsiav yuav nplooj tsawg dua los ntawm kev nco. Hauv lwm lo lus, tus nqi siab dua vm.swappiness, qhov ntau qhov system yuav siv swap.

Kev siv loj ntawm kev sib pauv yog qhov tsis xav tau, vim tias cov ntaub ntawv loj loj tau thauj khoom thiab tshem tawm hauv RAM. Ntau tus neeg sib cav hais tias tus nqi swapiness yuav tsum loj, tab sis hauv kuv qhov kev paub, kev teeb tsa rau "0" ua rau kev ua tau zoo dua.

Koj tuaj yeem nyeem ntxiv ntawm no - lwn.net/Articles/100978

Tab sis, dua, cov teeb tsa no yuav tsum tau siv nrog kev saib xyuas thiab tsuas yog tom qab sim ib daim ntawv thov tshwj xeeb. Rau cov ntawv thov streaming loaded heev, qhov ntsuas no yuav tsum tau teem rau "0". Thaum hloov mus rau "0", qhov kev ua haujlwm tau zoo tuaj.

vm.vfs_cache_siab

Qhov kev teeb tsa no tswj hwm lub cim xeeb noj los ntawm cov ntsiav rau caching directory thiab inode khoom (dhau thiab inode).

Nrog lub neej ntawd tus nqi ntawm 100, lub ntsiav yuav sim tso cov hniav thiab inode caches ntawm "faj" hauv paus rau pagecache thiab swapcache. Txo vfs_cache_pressure ua rau cov ntsiav khaws cov hniav thiab inode caches. Thaum tus nqi yog "0", lub kernel yuav tsis yaug cov hniav thiab inode cache vim kev nco siab, thiab qhov no tuaj yeem yooj yim ua rau qhov tsis nco qab. Kev nce vfs_cache_pressure saum 100 ua rau cov ntsiav ua qhov tseem ceeb ntawm kev kho hniav thiab inode flushing.

Thaum siv GlusterFS, ntau tus neeg siv nrog cov ntaub ntawv loj thiab ntau cov ntaub ntawv me tuaj yeem yooj yim siv ntau npaum li cas ntawm RAM ntawm lub server vim yog inode / dentry caching, uas tuaj yeem ua rau kev ua haujlwm tsis zoo vim lub kernel yuav tsum ua cov ntaub ntawv tsim ntawm lub kaw lus. nrog 40 GB ntawm lub cim xeeb. Kev teeb tsa tus nqi saum toj no 100 tau pab ntau tus neeg siv ua tiav caching ncaj ncees thiab txhim kho cov lus teb.

vm.dirty_background_ratio thiab vm.dirty_ratio

Thawj qhov parameter (vm.dirty_background_ratio) txiav txim siab qhov feem pua ​​​​ntawm cov cim xeeb nrog cov nplooj ntawv qias neeg, tom qab ncav cuag uas nws yuav tsum tau pib yaug cov nplooj ntawv qias neeg hauv keeb kwm yav dhau los rau disk. Kom txog rau thaum qhov feem pua ​​​​ntawm no tau mus txog, tsis muaj nplooj ntawv nkag mus rau disk. Thiab thaum pib dua pib, nws khiav hauv keeb kwm yav dhau yam tsis cuam tshuam cov txheej txheem khiav.

Qhov thib ob parameter (vm.dirty_ratio) txhais cov feem pua ​​​​ntawm cov cim xeeb uas tuaj yeem nyob ntawm nplooj ntawv qias neeg ua ntej yuam flash pib. Thaum lub sijhawm no mus txog, tag nrho cov txheej txheem ua synchronous (thaiv) thiab tsis tso cai txuas ntxiv mus txog thaum I / O lawv tau thov ua tiav thiab cov ntaub ntawv nyob hauv disk. Nrog hnyav I / O, qhov no ua rau muaj teeb meem vim tsis muaj cov ntaub ntawv caching thiab tag nrho cov txheej txheem ua I / O raug thaiv tos I / O. Qhov no ua rau muaj ntau cov txheej txheem dai, siab load, system instability thiab kev ua haujlwm tsis zoo.

Txo cov teeb tsa no ua rau cov ntaub ntawv ntws mus rau disk ntau zaus thiab tsis khaws cia hauv RAM. Qhov no tuaj yeem pab lub cim xeeb-hnyav uas nws yog ib txwm ua kom yaug 45-90 GB nplooj ntawv caches rau disk, ua rau muaj kev cuam tshuam loj heev rau cov ntawv thov pem hauv ntej, txo tag nrho cov lus teb thiab kev cuam tshuam.

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

Ib nplooj ntawv cache yog ib lub cache uas khaws cov ntaub ntawv ntawm cov ntaub ntawv thiab cov kev pab cuam, uas yog, cov nplooj ntawv nrog cov ntsiab lus ntawm cov ntaub ntawv lossis cov khoom siv thaiv. Cov cache no yog siv los txo tus naj npawb ntawm disk nyeem. Tus nqi ntawm "1" txhais tau hais tias 1% ntawm RAM yog siv rau lub cache thiab yuav muaj ntau nyeem los ntawm disk dua li ntawm RAM. Nws tsis yog qhov tsim nyog los hloov qhov chaw no, tab sis yog tias koj tsis txaus siab txog kev tswj cov nplooj ntawv cache, koj tuaj yeem siv nws.

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

Lub sijhawm I/O yog Linux ntsiav tivthaiv uas ua haujlwm nyeem thiab sau cov kab. Nyob rau hauv txoj kev xav, nws yog qhov zoo dua los siv "noop" rau lub ntse RAID maub los, vim Linux tsis paub dab tsi txog lub cev geometry ntawm lub disk, yog li nws muaj txiaj ntsig zoo dua los cia tus maub los, uas paub qhov disk geometry zoo, ua cov ntawv thov sai li sai tau. ua tau. Tab sis nws zoo li "tam sim no" txhim kho kev ua tau zoo. Koj tuaj yeem nyeem ntxiv txog cov sijhawm teem sijhawm hauv Linux kernel cov ntaub ntawv code: linux/Documentation/block/*osched.txt. Thiab kuv kuj tau pom qhov kev nyeem ntawv nce ntxiv thaum lub sijhawm ua haujlwm sib xyaw (ntau sau).

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

Tus naj npawb ntawm I / O thov nyob rau hauv qhov tsis ua ntej lawv raug xa mus rau tus teem sijhawm. Qee tus tswj 'internal queue loj (queue_depth) loj dua qhov I/O tus teem sij hawm nr_requests, yog li tus teem sij hawm I/O tsis muaj sij hawm me ntsis ntawm qhov tseem ceeb thiab kev thov sib koom ua ke. Txog hnub kawg thiab CFQ cov sijhawm teem sijhawm, nws zoo dua thaum nr_requests yog 2 npaug ntawm tus tswj hwm cov kab ke. Kev sib koom ua ke thiab rov xaj cov lus thov tuaj yeem pab tus neeg teem sijhawm kom teb tau ntau dua nyob rau hauv qhov hnyav.

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

Nplooj-cluster parameter tswj tus naj npawb ntawm nplooj ntawv uas tau sau rau qhov sib pauv ntawm ib zaug. Hauv qhov piv txwv saum toj no, tus nqi tau teem rau "16" raws li RAID kab txaij loj ntawm 64 KB. Nws tsis muaj txiaj ntsig nrog swappiness = 0, tab sis yog tias koj teeb tsa swappiness rau 10 lossis 20 ces siv tus nqi no yuav pab koj thaum RAID stripe loj yog 64K.

blockdev --setra 4096 /dev/<dev npe> (-sdb, hdc lossis dev_mapper)

Lub neej ntawd thaiv cov cuab yeej teeb tsa rau ntau RAID controllers feem ntau ua rau kev ua haujlwm txaus ntshai. Ntxiv cov kev xaiv saum toj no teeb tsa nyeem-ua ntej rau 4096 * 512-byte sectors. Yam tsawg kawg nkaus, rau kev ua haujlwm streaming, kev ceev yog nce los ntawm kev sau cov on-chip disk cache nrog nyeem ua ntej thaum lub sijhawm siv los ntawm cov ntsiav los npaj I / O. Lub cache tuaj yeem muaj cov ntaub ntawv uas yuav tsum tau thov ntawm kev nyeem tom ntej. Ntau dhau prefetch tuaj yeem tua random I / O rau cov ntaub ntawv loj yog tias nws siv lub sijhawm muaj txiaj ntsig zoo disk lossis thauj cov ntaub ntawv sab nraud ntawm lub cache.

Hauv qab no yog ob peb lub tswv yim ntxiv ntawm cov ntaub ntawv kaw lus. Tab sis lawv tseem tsis tau sim. Xyuas kom tseeb tias koj lub kaw lus paub qhov loj ntawm kab txaij thiab tus naj npawb ntawm cov disks hauv array. Piv txwv li, hais tias qhov no yog 5K kab txaij raid64 array ntawm rau disks (tiag tiag tsib, vim hais tias ib tug disk yog siv rau parity). Cov lus pom zoo no yog ua raws li kev xav tau thiab muab tso ua ke los ntawm ntau yam blogs / cov ntawv los ntawm RAID cov kws tshaj lij.

-> 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))

Rau cov ntaub ntawv loj, xav txog kev nce cov kab txaij loj uas tau teev tseg saum toj no.

XIM! Txhua yam uas tau piav saum toj no yog cov ntsiab lus tseem ceeb rau qee hom kev siv. Kab lus no tsis tau lees tias muaj kev txhim kho yam tsis muaj kev sim ua ntej ntawm cov neeg siv khoom siv. Nws tsuas yog yuav tsum tau siv yog tias nws tsim nyog los txhim kho tag nrho cov lus teb ntawm lub kaw lus, lossis yog tias nws daws teeb meem tam sim no.

ΠžΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹:

Teem lub Linux ntsiav rau GlusterFS

Nyeem ntxiv

Tau qhov twg los: www.hab.com

Ntxiv ib saib