Mete kanpe nwayo Linux pou GlusterFS

Tradiksyon atik la te prepare lavèy kòmansman kou a Administratè Linux. Pwofesyonèl».

Mete kanpe nwayo Linux pou GlusterFS

Tanzantan, isit la epi la, kesyon leve sou rekòmandasyon Gluster konsènan akor nwayo ak si gen yon bezwen pou sa.

Yon bezwen sa yo raman rive. Sou pifò chaj travay, nwayo a fè trè byen. Malgre ke gen yon dezavantaj. Istorikman, nwayo Linux la te vle konsome yon anpil nan memwa si yo bay opòtinite a, ki gen ladan pou kachèt kòm fason prensipal amelyore pèfòmans.

Nan pifò ka, sa a travay byen, men anba chay lou li ka mennen nan pwoblèm.

Nou gen anpil eksperyans ak sistèm memwa entansif tankou CAD, EDA ak tankou, ki te kòmanse ralanti anba chaj lou. E pafwa nou te rankontre pwoblèm nan Gluster. Apre ak anpil atansyon obsève itilizasyon memwa ak latansi disk pandan plizyè jou, nou te resevwa surcharge yo, gwo iowait, erè nwayo (kernel oops), jele, elatriye.

Atik sa a se rezilta anpil eksperyans akor ki fèt nan divès sitiyasyon. Mèsi a paramèt sa yo, se pa sèlman repons jeneral la amelyore, men gwoup la te estabilize anpil.

Lè li rive akor memwa, premye bagay yo gade se subsystem memwa vityèl (VM, memwa vityèl), ki gen yon gwo kantite opsyon ki ka konfonn ou.

vm.swappiness

Paramèt vm.swappiness detèmine konbyen nwayo a itilize swap (swap, paging) konpare ak RAM. Li se tou defini nan kòd sous la kòm "tandans nan vòlè kat memwa". Yon gwo swappiness vle di ke nwayo a ap gen plis enkline pou swap paj kat yo. Yon valè swappiness ki ba vle di opoze a: nwayo a pral paj mwens nan memwa. Nan lòt mo, pi wo a valè a vm.swappiness, plis sistèm lan pral sèvi ak swap.

Yon gwo itilizasyon echanj se endezirab, depi gwo blòk done yo chaje ak dechaje nan RAM. Anpil moun diskite ke valè swapiness la ta dwe gwo, men nan eksperyans mwen, mete li nan "0" mennen nan pi bon pèfòmans.

Ou ka li plis isit la - lwn.net/Articles/100978

Men, ankò, anviwònman sa yo ta dwe aplike ak swen epi sèlman apre yo fin teste yon aplikasyon an patikilye. Pou aplikasyon difizyon trè chaje, paramèt sa a ta dwe mete sou "0". Lè yo chanje an "0", repons sistèm amelyore.

vm.vfs_cache_pressure

Anviwònman sa a kontwole memwa konsome nan nwayo a pou kachèt anyè ak objè inode (dentry ak inode).

Avèk yon valè default 100, nwayo a pral eseye libere kachèt dentry ak inode sou yon baz "jis" nan pagecache ak swapcache. Diminye vfs_cache_pressure lakòz nwayo a kenbe kachèt dentry ak inode. Lè valè a se "0", nwayo a p'ap janm vide kachèt dentry ak inode akòz presyon memwa, e sa ka fasilman mennen nan yon erè ki pa bliye. Ogmante vfs_cache_pressure pi wo pase 100 lakòz nwayo a bay priyorite dentry ak flòch inode.

Lè w ap itilize GlusterFS, anpil itilizatè ki gen gwo kantite done ak anpil ti fichye ka byen fasil itilize yon kantite siyifikatif RAM sou sèvè a akòz kachèt inode/dentry, ki ka mennen nan degradasyon pèfòmans kòm nwayo a gen pou trete estrikti done sou yon sistèm. ak 40 GB memwa. Mete valè sa a pi wo pase 100 te ede anpil itilizatè yo reyalize pi jis kachèt ak amelyore repons nwayo.

vm.dirty_background_ratio ak vm.dirty_ratio

Premye paramèt (vm.dirty_background_ratio) detèmine pousantaj nan memwa ak paj sal, apre yo fin rive nan ki li nesesè yo kòmanse flòch paj sal nan background nan nan disk. Jiskaske pousantaj sa a rive, pa gen okenn paj ki vide sou disk. Men, lè reset la kòmanse, li kouri nan background nan san yo pa entèwonp pwosesis kouri.

Dezyèm paramèt la (vm.dirty_ratio) defini pousantaj memwa ki ka okipe pa paj sal anvan flash fòse kòmanse. Yon fwa yo rive nan papòt sa a, tout pwosesis yo vin synchrone (bloke) epi yo pa gen dwa kontinye jiskaske I/O yo mande a fin ranpli ak done yo sou disk. Avèk I/O lou, sa lakòz yon pwoblèm paske pa gen okenn kachèt done epi tout pwosesis ki fè I/O bloke ap tann I/O. Sa a mennen nan yon gwo kantite pwosesis pandye, gwo chaj, enstabilite sistèm ak pèfòmans pòv.

Diminye paramèt sa yo lakòz done yo dwe vide sou disk pi souvan epi yo pa estoke nan RAM. Sa a ka ede sistèm memwa-lou kote li nòmal pou vide 45-90 GB kachèt paj sou disk, sa ki lakòz gwo latansi pou aplikasyon front-end, diminye reyaksyon jeneral ak entèaktif.

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

Yon kachèt paj se yon kachèt ki estoke done fichye yo ak pwogram ègzekutabl yo, sa vle di, sa yo se paj ki gen kontni aktyèl dosye oswa aparèy blòk yo. Yo itilize kachèt sa a pou diminye kantite lekti ki genyen nan disk la. Yon valè "1" vle di ke 1% nan RAM yo itilize pou kachèt la epi pral gen plis lekti nan disk pase nan RAM. Li pa nesesè pou chanje anviwònman sa a, men si ou se paranoya sou kontwole kachèt paj la, ou ka itilize li.

"dat limit" > /sys/block/sdc/queue/scheduler

Planifikatè I/O a se yon eleman nwayo Linux ki okipe ke moun kap kriye li ak ekri. Nan teyori, li pi bon pou itilize "noop" pou yon kontwolè RAID entelijan, paske Linux pa konnen anyen sou jeyometri fizik disk la, kidonk li pi efikas pou kite kontwolè a, ki konnen jeyometri ki gen kapasite byen, trete demann lan osi vit ke posib. Men, li sanble ke "dat limit" amelyore pèfòmans. Ou ka li plis sou pwogramasyon yo nan dokiman sou kòd sous Linux Kernel la: linux/Documentation/block/*osched.txt. Epi tou mwen te wè yon ogmantasyon nan debi lekti pandan operasyon melanje (anpil operasyon ekri).

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

Kantite demann I/O nan tanpon an anvan yo pase yo bay pwogramè a. Gwosè keu entèn kèk contrôleur yo (queue_depth) pi gwo pase nr_requests pwogramè I/O a, kidonk pwogramè I/O a gen ti chans pou byen priyorite ak fusion demann yo. Pou deadline ak CFQ pwogramasyon, li pi bon lè nr_requests se 2 fwa keu entèn kontwolè a. Fizyone ak rekòmande demann yo ede pwogramè a vin pi reponn anba chaj lou.

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

Paramèt page-cluster la kontwole kantite paj ki ekri nan swap la nan yon sèl fwa. Nan egzanp ki anwo a, valè a mete sou "16" dapre gwosè ray RAID 64 KB. Li pa fè sans ak swappiness = 0, men si ou mete swappiness a 10 oswa 20 Lè sa a, lè l sèvi avèk valè sa a ap ede ou lè gwosè a ray RAID se 64K.

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

Anviwònman aparèy blòk default yo pou anpil kontwolè RAID souvan lakòz pèfòmans terib. Ajoute opsyon ki anwo a mete kanpe lekti davans pou sektè 4096 * 512-byte. Omwen, pou operasyon difizyon, vitès ogmante lè w ranpli kachèt disk sou chip la ak lekti davans pandan peryòd nwayo a itilize pou prepare I/O. Kachèt la ka genyen done ki pral mande nan pwochen lekti a. Twòp prefetch ka touye I/O o aza pou fichye gwo si li itilize tan ki kapab itil ki gen kapasite oswa si li chaje done deyò kachèt la.

Anba a gen kèk rekòmandasyon plis nan nivo sistèm dosye a. Men, yo poko teste. Asire w ke sistèm fichye ou a konnen gwosè a nan bann la ak kantite disk nan etalaj la. Pou egzanp, ke sa a se yon etalaj raid5 64K nan sis disk (aktyèlman senk, paske yo itilize yon sèl disk pou egalite). Rekòmandasyon sa yo baze sou sipozisyon teyorik epi yo konpile nan divès blog/atik pa ekspè 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))

Pou fichye gwo, konsidere ogmante gwosè bann ki endike anwo a.

ATANSYON! Tout sa ki dekri anwo a trè subjectif pou kèk kalite aplikasyon. Atik sa a pa garanti okenn amelyorasyon san tès itilizatè alavans nan aplikasyon ki gen rapò. Li ta dwe itilize sèlman si li nesesè pou amelyore repons jeneral sistèm lan, oswa si li rezoud pwoblèm aktyèl yo.

Lòt materyèl:

Mete kanpe nwayo Linux pou GlusterFS

Li piplis

Sous: www.habr.com

Add nouvo kòmantè