A’ stèidheachadh an kernel Linux airson GlusterFS

Chaidh an eadar-theangachadh den artaigil ullachadh air an oidhche ro thoiseach a’ chùrsa “Riaghladair Linux. Proifeiseanta".

A’ stèidheachadh an kernel Linux airson GlusterFS

Bho àm gu àm, an seo agus an sin bidh ceistean ag èirigh mu mholaidhean Gluster a thaobh gnàthachadh kernel agus a bheil feum air.

Is ann ainneamh a thig am feum seo. Bidh an cridhe a’ coileanadh glè mhath fon mhòr-chuid de dh’ eallach obrach. Ged a tha eas-bhuannachdan ann. Gu h-eachdraidheil, bidh an kernel Linux gu furasta ag ithe mòran cuimhne ma gheibh e an cothrom, a ’toirt a-steach caching mar phrìomh dhòigh air coileanadh a leasachadh.

Anns a 'mhòr-chuid de chùisean tha seo ag obair gu math, ach le luchdan trom faodaidh e duilgheadasan adhbhrachadh.

Tha eòlas farsaing againn air a bhith ag obair le siostaman a bhios ag ithe tòrr cuimhne, leithid CAD, EDA agus an leithid, a thòisich a’ fàs nas slaodaiche fo luchd àrd. Agus uaireannan thachair sinn ri duilgheadasan ann an Gluster. Às deidh dhuinn sùil gheur a chumail air a’ chuimhne a chaidh a chleachdadh agus an ùine feitheimh diosc airson barrachd air aon latha, fhuair sinn cus diosc, iowait mòr, mearachdan kernel (kernel oops), reothadh, msaa.

Tha an artaigil seo mar thoradh air mòran dheuchainnean gleusadh paramadair a chaidh a dhèanamh ann an diofar shuidheachaidhean. Air sgàth nam paramadairean sin, chan e a-mhàin gu bheil am freagairteachd san fharsaingeachd air a leasachadh, ach cuideachd chaidh gnìomhachd a ’chnuasaiche a dhèanamh seasmhach gu mòr.

Nuair a thig e gu bhith a’ rèiteachadh cuimhne, is e a’ chiad àite a choimheadas tu am fo-shiostam cuimhne brìgheil (VM), aig a bheil àireamh mhòr de roghainnean a dh’ fhaodadh a bhith troimh-chèile.

vm.swappiness

Parameter vm.swappiness a’ dearbhadh dè an ìre a bhios an kernel a’ cleachdadh suaip an coimeas ri RAM. Tha e cuideachd air a mhìneachadh sa chòd stòr mar “bualadh cuimhne mapa a ghoid.” Tha luach àrd swappiness a’ ciallachadh gum bi an kernel nas buailtiche atharrachadh a dhèanamh air duilleagan mapa. Tha luach swappiness ìosal a’ ciallachadh an taobh eile: bidh an kernel ag atharrachadh dhuilleagan a-mach à cuimhne nas lugha. Ann am faclan eile, mar as àirde an luach vm.swappiness, mar as motha a chleachdas an siostam suaip.

Chan eil e ion-mhiannaichte cleachdadh farsaing a dhèanamh air iomlaid, leis gu bheil blocaichean mòra de dhàta air an luchdachadh agus air an luchdachadh a-steach do RAM. Tha mòran dhaoine ag argamaid gum bu chòir an luach swapiness a bhith àrd, ach nam eòlas-sa, tha a bhith ga shuidheachadh gu “0” a’ leantainn gu coileanadh nas fheàrr.

Faodaidh tu barrachd a leughadh an seo - lwn.net/Artaigilean/100978

Ach a-rithist, bu chòir na roghainnean sin a chleachdadh gu faiceallach agus dìreach às deidh dhaibh an tagradh sònraichte a dhearbhadh. Airson tagraidhean sruthadh làn luchdaichte, bu chòir am paramadair seo a shuidheachadh gu “0”. Nuair a thèid atharrachadh gu “0”, thig piseach air freagairt an t-siostaim.

vm.vfs_cache_pressure

Bidh an suidheachadh seo a’ cumail smachd air a’ chuimhne a bhios an kernel a’ caitheamh airson a bhith a’ tasgadh nithean seòlaidh agus inodes (fiaclaireachd agus inode).

Leis an luach bunaiteach de 100, feuchaidh an kernel ris na clàran fiaclaireachd agus inode a shaoradh ann an dòigh chothromach don duilleagcache agus swapcache. Le bhith a’ lughdachadh vfs_cache_pressure ag adhbhrachadh gum bi an kernel a’ glèidheadh ​​tasgadan fiaclaireachd is neod. Nuair a tha an luach “0”, cha bhith an kernel gu bràth a’ sruthadh an tasgadan fiaclaireachd agus inode air sgàth cuideam cuimhne, agus faodaidh seo leantainn gu mearachd taobh a-muigh cuimhne. Tha àrdachadh vfs_cache_pressure os cionn 100 ag adhbhrachadh gum bi an kernel a’ toirt prìomhachas do fhiaclan agus duilleagan inode.

Nuair a bhios iad a’ cleachdadh GlusterFS, faodaidh mòran de luchd-cleachdaidh le tòrr dàta agus mòran fhaidhlichean beaga tòrr RAM a chleachdadh gu furasta air an fhrithealaiche mar thoradh air tasgadh inode / fiaclaireachd, a dh’ fhaodadh droch choileanadh adhbhrachadh leis gu feum an kernel structaran dàta a làimhseachadh air siostam le 40 GB de chuimhne. Tha a bhith a’ suidheachadh a’ pharamadair seo gu barrachd air 100 air mòran de luchd-cleachdaidh a chuideachadh gus caching nas cothromaiche a choileanadh agus freagairteachd kernel nas fheàrr.

vm.dirty_background_ratio agus vm.dirty_ratio

A 'chiad paramadair (vm.dirty_background_ratio) a’ dearbhadh an àireamh sa cheud de chuimhne le duilleagan salach, nuair a ruigeas tu a dh’ fheumar tòiseachadh air cùl-raon de dhuilleagan salach a ghluasad gu diosc. Gus an ruigear an àireamh sa cheud seo, chan eil duilleagan air an gluasad gu diosg. Agus nuair a thòisicheas an ath-shuidheachadh, bidh e a 'ruith air a' chùl gun a bhith a 'cur bacadh air pròiseasan ruith.

An dàrna paramadair (vm.dirty_ratio) a’ dearbhadh an àireamh sa cheud de chuimhne a dh’ fhaodas duilleagan salach a ghabhail a-steach mus tòisich flash èiginneach. Aon uair ‘s gu bheil an stairsneach seo air a ruighinn, bidh a h-uile pròiseas a’ fàs sioncronaich (bacadh) agus chan fhaod iad cumail a ’dol gus an tèid an obair I / O a dh’ iarr iad a chrìochnachadh agus gu bheil an dàta air diosc. Le luchd àrd I / O, tha seo ag adhbhrachadh duilgheadas leis nach eil tasgadh dàta ann agus tha a h-uile pròiseas a tha a ’dèanamh I / O air am bacadh a’ feitheamh ri I / O. Tha seo a’ leantainn gu àireamh mhòr de phròiseasan crochte, luchd àrd, neo-sheasmhachd an t-siostaim agus droch choileanadh.

Le bhith a’ lughdachadh luachan nam paramadairean sin bidh dàta air a shruthladh gu diosc nas trice agus gun a bhith air a stòradh ann an RAM. Faodaidh seo cuideachadh le siostaman cuimhne-trom far a bheil e àbhaisteach 45-90GB tasgadan duilleag a shruthladh gu diosc, a’ leantainn gu latency mòr airson tagraidhean aghaidh, a’ lughdachadh freagairteachd agus eadar-ghnìomhachd iomlan.

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

Is e tasgadan a th’ ann an tasgadan duilleag a bhios a’ stòradh dàta bho fhaidhlichean agus prògraman so-ghnìomhaichte, is e sin, is iad sin duilleagan le fìor shusbaint fhaidhlichean no innealan bacaidh. Tha an tasgadan seo air a chleachdadh gus an àireamh de leughaidhean diosc a lughdachadh. Tha luach "1" a' ciallachadh gu bheil an tasgadan a' cleachdadh 1% de RAM agus bidh barrachd leughaidhean bhon diosg na bho RAM. Chan fheumar an suidheachadh seo atharrachadh, ach ma tha thu paranoid mu bhith a’ cumail smachd air tasgadan na duilleige, faodaidh tu a chleachdadh.

"ceann-latha" > /sys/block/sdc/ciudha/clàraiche

Tha an clàr-ama I / O na phàirt den kernel Linux a bhios a’ làimhseachadh ciudha leughaidh is sgrìobhaidh. Ann an teòiridh, tha e nas fheàrr "noop" a chleachdadh airson rianadair RAID snasail, oir chan eil fios aig Linux air geoimeatraidh fiosaigeach an diosc, agus mar sin tha e nas èifeachdaiche leigeil leis an rianadair, aig a bheil eòlas math air geoimeatraidh an diosc, an t-iarrtas a phròiseasadh mar cho luath sa ghabhas. Ach tha e coltach gu bheil "ceann-ama" a 'leasachadh coileanadh. Gheibhear tuilleadh fiosrachaidh mu chlàran anns na sgrìobhainnean airson còd stòr kernel Linux: linux/Documentation/block/*osched.txt. Agus chunnaic mi cuideachd àrdachadh ann an toradh leughaidh rè obrachaidhean measgaichte (tòrr sgrìobhaidhean).

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

An àireamh de dh’iarrtasan I/O anns a’ bhufair mus tèid an cur chun a’ chlàr-ama. Tha meud ciudha a-staigh cuid de luchd-riaghlaidh (ciudha_depth) nas motha na nr_requests an clàr-ama I/O, agus mar sin chan eil mòran cothrom aig a’ chlàr-ama I/O prìomhachasan ceart a thoirt do dh’ iarrtasan agus aonachadh. Airson ceann-latha agus clàran CFQ, tha e nas fheàrr nuair a tha nr_requests 2 uair nas motha na ciudha a-staigh an rianadair. Cuidichidh aonadh agus ath-òrdachadh cheistean leis a’ chlàr-ama a bhith nas ciallaiche fo luchd trom.

mac-talla "16"> /proc/sys/vm/page-cluster

Bidh am paramadair duilleag-cnuasachaidh a’ cumail smachd air an àireamh de dhuilleagan a thèid a sgrìobhadh chun suaip aig aon àm. Anns an eisimpleir gu h-àrd, tha an luach air a shuidheachadh gu "16" gus a bhith co-ionnan ri meud stripe RAID de 64 KB. Chan eil seo a’ dèanamh ciall nuair a tha swappiness = 0, ach ma shuidhicheas tu swappiness gu 10 no 20, cuidichidh cleachdadh an luach seo thu nuair a tha meud stripe RAID 64 KB.

blockdev --setra 4096 / dev/<ainm> (-sdb, hdc no dev_mapper)

Bidh na roghainnean inneal bloca bunaiteach airson mòran de luchd-riaghlaidh RAID gu tric a’ leantainn gu coileanadh uamhasach. Le bhith a 'cur ris an roghainn gu h-àrd a' rèiteachadh ro-làimh airson roinnean 4096 * 512 byte. Co-dhiù airson gnìomhachd sruthadh, thèid astar a mheudachadh le bhith a’ lìonadh an tasgadan diosc air-chip tro leughadh air adhart rè na h-ùine a bhios an kernel a’ cleachdadh gus I/O ullachadh. Faodaidh an tasgadan dàta a chumail a thèid iarraidh tron ​​ath leughadh. Faodaidh cus leughaidh air thoiseach I/O air thuaiream a mharbhadh airson faidhlichean mòra ma chleachdas e ùine diosc a dh’ fhaodadh a bhith feumail no ma luchdaicheas e dàta taobh a-muigh an tasgadan.

Gu h-ìosal tha beagan mholaidhean eile aig ìre siostam faidhle. Ach cha deach deuchainn a dhèanamh orra fhathast. Dèan cinnteach gu bheil fios aig an t-siostam faidhle agad air meud an stripe agus an àireamh de dhioscaichean san raon. Mar eisimpleir, gur e sreath raid5 a tha seo le meud stripe de 64K de shia diosc (gu dearbh còig, leis gu bheil aon diosc air a chleachdadh airson co-ionannachd). Tha na molaidhean sin stèidhichte air barailean teòiridheach agus air an cruinneachadh bho dhiofar bhlogan / artaigilean le eòlaichean 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))

Airson faidhlichean nas motha, is dòcha gum beachdaich thu air na meudan stripe gu h-àrd àrdachadh.

A 'CHAOINEACHADH! Tha a h-uile dad a tha air a mhìneachadh gu h-àrd air leth cuspaireil airson cuid de sheòrsan thagraidhean. Chan eil an artaigil seo a’ gealltainn leasachaidhean sam bith gun a bhith a’ dèanamh deuchainn air na h-aplacaidean fa leth leis an neach-cleachdaidh. Cha bu chòir a chleachdadh ach ma tha feum air freagairteachd siostam iomlan a leasachadh no ma dh’ fhuasglas e duilgheadasan làithreach.

Stuthan a bharrachd:

A’ stèidheachadh an kernel Linux airson GlusterFS

Leugh tuilleadh

Source: www.habr.com

Cuir beachd ann