Fametrahana ny kernel Linux ho an'ny GlusterFS

Ny fandikana ny lahatsoratra dia nomanina tamin'ny fiandohan'ny fianarana "Administrator Linux. matihanina".

Fametrahana ny kernel Linux ho an'ny GlusterFS

Indraindray dia misy fanontaniana mipetraka momba ny tolo-kevitr'i Gluster momba ny fanamboarana kernel ary raha ilaina izany.

Mahalana no mitranga izany filana izany. Ny fototra dia miasa tsara amin'ny ankamaroan'ny enta-mavesatra. Na dia misy aza ny lafy ratsiny. Ara-tantara, ny kernel Linux dia mandany fahatsiarovana be dia be raha omena fahafahana, anisan'izany ny caching ho fitaovana voalohany hanatsarana ny fampisehoana.

Amin'ny ankabeazan'ny toe-javatra dia miasa tsara izany, saingy amin'ny enta-mavesatra mavesatra dia mety hiteraka olana izany.

Manana traikefa be dia be izahay miasa amin'ny rafitra mandany fahatsiarovana be dia be, toy ny CAD, EDA sy ny toy izany, izay nanomboka nihena noho ny enta-mavesatra. Ary indraindray dia sendra olana tao Gluster izahay. Rehefa avy nanara-maso tsara ny fitadidiana nampiasaina sy ny fotoana fiandrasana kapila nandritra ny iray andro mahery, dia nahazo kapila be loatra izahay, iowait lehibe, fahadisoana kernel (kernel oops), mivaingana, sns.

Ity lahatsoratra ity dia vokatry ny andrana fanamafisam-peo maro natao tamin'ny toe-javatra samihafa. Noho ireo mari-pamantarana ireo, tsy ny fandraisana andraikitra amin'ny ankapobeny ihany no nihatsara, fa ny fiasan'ny cluster koa dia niorina mafy.

Raha mikasika ny fanamafisana ny fitadidiana, ny toerana voalohany hijerena dia ny subsystem fahatsiarovana virtoaly (VM), izay manana safidy marobe izay mety hanakorontana anao.

vm.swappiness

fikirana vm.swappiness mamaritra ny habetsahan'ny kernel mampiasa swap raha oharina amin'ny RAM. Voafaritra ao amin'ny kaody loharano ihany koa izy io ho "fironana hangalatra ny fahatsiarovana voasoritra." Ny sandan'ny swappiness avo dia midika fa ny kernel dia ho mora kokoa amin'ny famadihana pejy misy sarintany. Ny sandan'ny swappiness ambany dia midika hoe mifanohitra amin'izany: ny kernel dia hanala pejy tsy misy fitadidiana kely kokoa. Amin'ny teny hafa, ny ambony ny sandany vm.swappiness, vao mainka hampiasa ny swap ny rafitra.

Ny fampiasana be dia be ny fifandimbiasana dia tsy ilaina, satria ny angon-drakitra goavambe dia entina sy alefa ao anaty RAM. Olona maro no miady hevitra fa tokony ho ambony ny sandan'ny swapiness, fa raha ny traikefako, ny fametrahana azy ho "0" dia miteraka fahombiazana tsara kokoa.

Afaka mamaky bebe kokoa ianao eto - lwn.net/Article/100978

Saingy indray, ireo toe-javatra ireo dia tokony hampiasaina amim-pitandremana ary aorian'ny fitsapana ny fampiharana manokana. Ho an'ny fampiharana streaming be entana dia tokony apetraka amin'ny "0" ity mari-pamantarana ity. Rehefa novaina ho "0", dia mihatsara ny fandraisan'ny rafitra.

vm.vfs_cache_pressure

Ity toe-javatra ity dia mifehy ny fitadidiana lanin'ny kernel ho an'ny fitahirizana zavatra sy inodes (dentry sy inode).

Miaraka amin'ny sandan'ny default 100, ny kernel dia hanandrana hanafaka ny dentry sy inode cache amin'ny fomba ara-drariny amin'ny pagecache sy swapcache. Ny fihenan'ny vfs_cache_pressure dia mahatonga ny kernel hitahiry ny cache sy ny inode. Rehefa "0" ny sandany, dia tsy hosasan'ny kernel na oviana na oviana ny dentry sy inode cache noho ny fanerena fitadidiana, ary mety hitarika ho amin'ny fahadisoana tsy misy fitadidiana izany. Ny fampitomboana ny vfs_cache_pressure mihoatra ny 100 dia mahatonga ny kernel ho laharam-pahamehana amin'ny dentry sy inode pageouts.

Rehefa mampiasa GlusterFS, mpampiasa maro manana data be dia be sy rakitra kely maro no afaka mampiasa mora foana RAM be dia be amin'ny mpizara noho ny caching inode/dentry, izay mety hitarika ho amin'ny tsy fahombiazana satria ny kernel dia tsy maintsy mitantana ny rafitra angona amin'ny rafitra. miaraka amin'ny fahatsiarovana 40 GB. Ny fametrahana an'io mari-pamantarana io ho mihoatra ny 100 dia nanampy ny mpampiasa maro hahatratra ny caching tsara kokoa sy manatsara ny fandraisan'ny kernel.

vm.dirty_background_ratio ary vm.dirty_ratio

Parameter voalohany (vm.dirty_background_ratio) dia mamaritra ny isan-jaton'ny fitadidiana misy pejy maloto, rehefa tonga dia ilaina ny manomboka mandroaka ny pejy maloto amin'ny kapila. Mandra-pahatongan'io isan-jato io, dia tsy voaroaka amin'ny kapila ny pejy. Ary rehefa manomboka ny famerenana dia mandeha any ambadika tsy manapaka ny fizotran'ny fandehanana.

Parameter faharoa (vm.dirty_ratio) dia mamaritra ny isan-jaton'ny fitadidiana mety hofehezin'ny pejy maloto alohan'ny hanombohan'ny tselatra an-tery. Rehefa tonga io tokonam-baravarana io dia lasa synchronous (voasakana) ny dingana rehetra ary tsy avela hitohy mandra-pahavitan'ny asa I/O nangatahiny ary ao anaty kapila ny angona. Miaraka amin'ny entana I/O avo dia miteraka olana izany satria tsy misy cache data ary voasakana ny dingana rehetra manao I/O miandry ny I/O. Izany dia miteraka dingana maro mihantona, enta-mavesatra be, tsy fandriam-pahalemana sy tsy fahombiazana.

Ny fampihenana ny soatoavin'ireo masontsivana ireo dia mahatonga ny angon-drakitra hivezivezy amin'ny kapila matetika kokoa ary tsy voatahiry ao amin'ny RAM. Izany dia afaka manampy rafitra mavesatra fitadidiana izay mahazatra ny mandrotsaka ny cache pejy 45-90GB amin'ny kapila, ka miteraka fahatarana lehibe ho an'ny fampiharana eo anoloana, mampihena ny fandraisana andraikitra sy ny fifampiraharahana amin'ny ankapobeny.

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

Pejy cache dia cache mitahiry angona avy amin'ny rakitra sy programa azo tanterahana, izany hoe pejy misy ny tena votoatin'ny rakitra na fitaovana fanakanana. Ity cache ity dia ampiasaina hampihenana ny isan'ny vakin'ny kapila. Ny sandan'ny "1" dia midika fa ny cache dia mampiasa 1% amin'ny RAM ary ho betsaka kokoa ny famakiana avy amin'ny kapila noho ny avy amin'ny RAM. Tsy ilaina ny manova ity toe-javatra ity, fa raha toa ianao ka sahiran-tsaina amin'ny fifehezana ny cache pejy dia azonao ampiasaina izany.

"fe-potoana" > /sys/block/sdc/queue/scheduler

Ny mpandrindra I/O dia singa iray amin'ny kernel Linux izay mitantana ny filaharana mamaky sy manoratra. Amin'ny teoria dia tsara kokoa ny mampiasa "noop" ho an'ny mpanara-maso RAID marani-tsaina, satria ny Linux dia tsy mahalala na inona na inona momba ny geometry ara-batana amin'ny kapila, noho izany dia mahomby kokoa ny mamela ny mpanara-maso, izay mahafantatra tsara ny geometry kapila, manamboatra ny fangatahana toy ny haingana araka izay azo atao. Saingy toa manatsara ny fahombiazan'ny "fe-potoana". Ny fampahalalana bebe kokoa momba ny fandaharam-potoana dia azo jerena ao amin'ny antontan-taratasy momba ny kaody loharano kernel Linux: linux/Documentation/block/*osched.txt. Ary nahatsikaritra ihany koa ny fitomboan'ny famakian-teny mandritra ny asa mifangaro (manoratra betsaka).

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

Ny isan'ny fangatahana I/O ao amin'ny buffer alohan'ny handefasana azy any amin'ny fandaharam-potoana. Ny haben'ny filaharana anatiny (queue_depth) an'ny mpanara-maso sasany dia lehibe kokoa noho ny nr_requests an'ny mpandrindra I/O, noho izany dia tsy dia manana vintana firy ny mpandrindra I/O amin'ny fametrahana laharam-pahamehana sy fanakambanana ny fangatahana. Ho an'ny mpandrindra ny fe-potoana sy ny CFQ, dia tsara kokoa raha ny nr_requests dia avo 2 heny noho ny filaharana anatiny an'ny mpanara-maso. Ny fampifangaroana sy ny fandrindrana indray ny fanontaniana dia manampy ny mpandrindra ho mora kokoa amin'ny enta-mavesatra.

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

Ny masontsivana pejy-cluster dia mifehy ny isan'ny pejy voasoratra amin'ny swap indray mandeha. Ao amin'ny ohatra etsy ambony, ny sanda dia apetraka amin'ny "16" mba hifanaraka amin'ny haben'ny tsipika RAID amin'ny 64 KB. Tsy mitombina izany rehefa swappiness = 0, fa raha mametraka swappiness amin'ny 10 na 20 ianao, dia hanampy anao ny fampiasana an'io sanda io rehefa 64 KB ny haben'ny tsipika RAID.

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

Ny firafitry ny fitaovana fanakanana default ho an'ny mpanara-maso RAID maro dia matetika miteraka fampisehoana mahatsiravina. Ny fampidirana ny safidy etsy ambony dia manitsy ny famakiana mialoha ho an'ny sehatra 4096 * 512 byte. Farafaharatsiny ho an'ny fampandehanana mivantana dia ampitomboina ny hafainganam-pandeha amin'ny famenoana ny cache kapila eo amin'ny chip amin'ny alàlan'ny famakiana mialoha mandritra ny fotoana ampiasain'ny kernel hanomanana I/O. Ny cache dia afaka mitazona angona izay angatahina mandritra ny famakiana manaraka. Be loatra ny famakiana mialoha dia mety hamono I/O kisendrasendra ho an'ny rakitra lehibe raha toa ka mandany fotoana kapila mety ilaina izy io na mitondra angona ivelan'ny cache.

Ireto ambany ireto ny soso-kevitra vitsivitsy amin'ny sehatry ny rafi-drakitra. Saingy mbola tsy voazaha toetra izy ireo. Ataovy azo antoka fa fantatry ny rafitry ny rakitrao ny haben'ny tsipika sy ny isan'ny kapila ao amin'ny array. Ohatra, ity dia array raid5 miaraka amin'ny habe 64K amin'ny kapila enina (dimy raha ny marina, satria ny kapila iray dia ampiasaina amin'ny fitoviana). Ireo tolo-kevitra ireo dia mifototra amin'ny vinavina ara-teorika ary nangonin'ireo manampahaizana RAID avy amin'ny bilaogy/lahatsoratra isan-karazany.

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

Ho an'ny rakitra lehibe kokoa, azonao atao ny mampitombo ny haben'ny tsipika etsy ambony.

FAMPITANDREMANA! Ny zava-drehetra voalaza etsy ambony dia tena subjective ho an'ny karazana fampiharana sasany. Ity lahatsoratra ity dia tsy miantoka ny fanatsarana raha tsy andrana aloha ny fampiharana tsirairay ataon'ny mpampiasa. Tokony hampiasaina fotsiny izy io raha ilaina ny manatsara ny fandraisan'anjaran'ny rafitra amin'ny ankapobeny na mamaha ny olana ankehitriny.

Fitaovana fanampiny:

Fametrahana ny kernel Linux ho an'ny GlusterFS

Hamaky bebe kokoa

Source: www.habr.com

Add a comment