Ho theha Linux kernel bakeng sa GlusterFS

Phetolelo ea sengoloa e lokisitsoe bosiung ba pele thupelo e qala Motsamaisi oa Linux. Setsebi».

Ho theha Linux kernel bakeng sa GlusterFS

Nako le nako, mona le mane, ho hlaha lipotso mabapi le likhothaletso tsa Gluster mabapi le tokiso ea kernel le hore na ho na le tlhoko ea sena.

Ke ka seoelo tlhoko e joalo e hlahang. Mesebetsing e mengata, kernel e sebetsa hantle haholo. Le hoja ho na le downside. Ho latela nalane, kernel ea Linux e ikemiselitse ho sebelisa mohopolo o mongata ha e fuoa monyetla, ho kenyeletsoa le caching joalo ka mokhoa o ka sehloohong oa ho ntlafatsa ts'ebetso.

Maemong a mangata, sena se sebetsa hantle, empa tlas'a moroalo o boima se ka baka mathata.

Re na le boiphihlelo bo bongata ka litsamaiso tse matla tsa memori tse kang CAD, EDA le tse ling tse joalo, tse ileng tsa qala ho theoha ka tlase ho mojaro o boima. 'Me ka linako tse ling re ne re tobana le mathata Gluster. Kamora ho shebella ka hloko ts'ebeliso ea memori le disk latency ka matsatsi a mangata, re ile ra ba le moroalo o mongata, li-iowait tse kholo, liphoso tsa kernel (kernel oops), ho hoama, jj.

Sengoliloeng sena ke litholoana tsa liteko tse ngata tsa tokiso tse entsoeng maemong a fapaneng. Ka lebaka la mekhahlelo ena, ha se feela karabelo e akaretsang e ntlafetseng, empa sehlopha se boetse se tsitsitse haholo.

Ha ho tluoa tabeng ea ho lokisa mohopolo, ntho ea pele eo u lokelang ho e sheba ke "virtual memory subsystem" (VM, virtual memory), e nang le likhetho tse ngata tse ka u ferekanyang.

vm.swappiness

Parameter vm.swappiness e etsa qeto ea hore na kernel e sebelisa swap (swap, paging) e kae ha e bapisoa le RAM. E boetse e hlalosoa ho khoutu ea mohloli e le "tšekamelo ea ho utsoa mohopolo oa 'mapa". Ho feto-fetoha ho hoholo ho bolela hore kernel e tla rata ho fapanyetsana maqephe a 'mapa. Boleng bo tlase ba swappiness bo bolela se fapaneng: kernel e tla fokotseha hanyane ho tsoa mohopolong. Ka mantsoe a mang, boleng bo phahameng vm.swappiness, tsamaiso e tla sebelisa swap haholoanyane.

Tšebeliso e kholo ea ho fapanyetsana ha e ratehe, kaha li-blocks tse kholo tsa data li laeloa ebe li laolloa ho RAM. Batho ba bangata ba pheha khang ea hore boleng ba swapiness bo lokela ho ba bo boholo, empa ka boiphihlelo ba ka, ho e beha ho "0" ho lebisa ts'ebetsong e ntle.

U ka bala ho feta mona - lwn.net/Articles/100978

Empa, hape, litlhophiso tsena li lokela ho sebelisoa ka hloko le feela ka mor'a ho hlahloba kopo e itseng. Bakeng sa lits'ebetso tse ngata tsa ho phallela, paramethara ena e lokela ho hlophisoa ho "0". Ha e fetoleloa ho "0", karabelo ea sistimi e ea ntlafala.

vm.vfs_cache_pressure

Tlhophiso ena e laola mohopolo o jeoang ke kernel bakeng sa bukana ea caching le lintho tsa inode (dentry le inode).

Ka boleng bo sa feleng ba 100, kernel e tla leka ho lokolla "dentry" le "inode caches" ka "nete" ho pagecache le swapcache. Ho fokotseha ha vfs_cache_pressure ho etsa hore kernel e boloke dentry le li-cache tsa inode. Ha boleng bo le "0", kernel e ke ke ea hlola e hlakola "dentry" le "inode cache" ka lebaka la khatello ea mohopolo, 'me sena se ka lebisa phosong e sa lebaleheng habonolo. Ho eketsa vfs_cache_pressure ka holimo ho 100 ho etsa hore kernel e etelle pele dentry le inode flushing.

Ha u sebelisa GlusterFS, basebelisi ba bangata ba nang le lintlha tse ngata le lifaele tse nyenyane tse ngata ba ka sebelisa palo e kholo ea RAM ho seva ka lebaka la ho thibela li-inode / dentry caching, e leng se ka lebisang ho senyeha ha ts'ebetso ha kernel e tlameha ho sebetsana le mehaho ea data tsamaisong. e nang le 40 GB ea memori. Ho beha boleng bona ka holimo ho 100 ho thusitse basebelisi ba bangata ho fumana caching e nepahetseng le ho ntlafatsa karabelo ea kernel.

vm.dirty_background_ratio le vm.dirty_ratio

Paramethara ea pele (vm.dirty_background_ratio) e etsa qeto ea peresente ea mohopolo o nang le maqephe a litšila, ka mor'a ho fihla moo ho hlokahalang ho qala ho phunya maqephe a litšila ka morao ho disk. Ho fihlela peresente ena e fihletsoe, ha ho maqephe a phalleloa ho disk. 'Me ha reset e qala, e sebetsa ka morao ntle le ho sitisa mekhoa ea ho sebetsa.

Parameter ea bobeli (vm.dirty_ratio) e hlalosa peresente ea memori e ka ts'oaroang ke maqephe a litšila pele khanya e qobelloang e qala. Hang ha moeli ona o fihlile, lits'ebetso tsohle li fetoha li-synchronous (tse thibetsoeng) 'me ha li lumelloe ho tsoela pele ho fihlela I / O eo ba e kōpileng e hlile e phethetsoe' me data e le disk. Ka I/O e boima sena se baka bothata hobane ha ho na caching ea data mme lits'ebetso tsohle tse etsang I/O li koetsoe ho emetse I/O. Sena se lebisa ho palo e kholo ea mekhoa e fanyehiloeng, mojaro o phahameng, ho se tsitse ha tsamaiso le ts'ebetso e mpe.

Ho fokotsa litlhophiso tsena ho etsa hore data e felisoe ho disk khafetsa mme e se bolokoe ho RAM. Sena se ka thusa lits'ebetso tse boima ba memori moo ho tloaelehileng ho hula li-cache tsa maqephe a 45-90 GB ho disk, ho baka latency e kholo bakeng sa lits'ebetso tse ka pele, ho fokotsa karabelo ka kakaretso le tšebelisano.

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

Cache ea leqephe ke cache e bolokang data ea lifaele le mananeo a ka phethisoang, ke hore, ana ke maqephe a nang le litaba tsa 'nete tsa lifaele kapa lisebelisoa tse thibelang. Cache ena e sebelisetsoa ho fokotsa palo ea disk e baloang. Boleng ba "1" bo bolela hore 1% ea RAM e sebelisoa bakeng sa cache mme ho tla ba le ho baloa ho hongata ho tsoa ho disk ho feta ho tsoa ho RAM. Ha ho hlokahale ho fetola tlhophiso ena, empa haeba u tšoenyehile ka ho laola cache ea leqephe, u ka e sebelisa.

"Letsatsi la ho qetela" > /sys/block/sdc/queue/scheduler

Sehlophisi sa I/O ke karolo ea Linux kernel e sebetsanang le mela ea ho bala le ho ngola. Ka khopolo, ho molemo ho sebelisa "noop" bakeng sa molaoli ea bohlale oa RAID, hobane Linux ha e tsebe letho ka geometry ea 'mele ea disk, kahoo ho sebetsa hantle haholo ho lumella molaoli, ea tsebang disk geometry hantle, ho sebetsana le kopo kapele kamoo ho ka khonehang. ho khoneha. Empa ho bonahala eka "nako ea nako" e ntlafatsa ts'ebetso. U ka bala haholoanyane ka bahlophisi ho litokomane tsa khoutu ea mohloli oa Linux kernel: linux/Documentation/block/*osched.txt. Hape ke bone keketseho ea palo ea ho bala nakong ea ts'ebetso e tsoakiloeng (mesebetsi e mengata ea ho ngola).

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

Nomoro ea likopo tsa I/O ho buffer pele li fetisetsoa ho mohlophisi. Boholo ba mela e ka hare ea balaoli (queue_depth) e kholo ho feta nr_request ea mohlophisi oa I/O, kahoo mohlophisi oa I/O ha a na monyetla oa ho beha likopo pele le ho li kopanya. Bakeng sa linako tsa ho qetela le li-scheduler tsa CFQ, ho molemo ha nr_requests e le makhetlo a 2 lethathamong la ka hare la molaoli. Ho kopanya le ho hlophisa likopo hape ho thusa mohlophisi hore a arabele haholoanyane tlas'a mojaro o boima.

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

The page-cluster parameter e laola palo ea maqephe a ngoletsoeng swap ka nako e le 'ngoe. Mohlala o ka holimo, boleng bo behiloe ho "16" ho ea ka boholo ba mela ea RAID ea 64 KB. Ha ho utloahale ka swappiness = 0, empa haeba u beha swappiness ho 10 kapa 20 joale ho sebelisa boleng bona ho tla u thusa ha boholo ba mola oa RAID ke 64K.

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

Litlhophiso tsa lisebelisoa tsa block block bakeng sa balaoli ba bangata ba RAID hangata li baka ts'ebetso e mpe. Ho kenyelletsa khetho e kaholimo ho theha ho bala esale pele bakeng sa likarolo tsa 4096 * 512-byte. Bonyane, bakeng sa ts'ebetso ea ho phallela, lebelo le eketsoa ka ho tlatsa cache ea on-chip disk ka ho bala pele nakong e sebelisoang ke kernel ho lokisa I/O. Cache e ka ba le data e tla kopuoa 'malong o latelang. Prefetch e ngata haholo e ka bolaea I/O e sa reroang bakeng sa lifaele tse kholo haeba e sebelisa nako e ka bang molemo ea disk kapa e kenya data kantle ho cache.

Ka tlase ho na le likhothaletso tse ling tse 'maloa boemong ba sistimi ea faele. Empa ha ba so hlahlojoe. Etsa bonnete ba hore sistimi ea hau ea faele e tseba boholo ba mola le palo ea li-disk tse hlophisitsoeng. Ka mohlala, hore ena ke 5K stripe raid64 mefuta e mengata ea li-disk tse tšeletseng (ha e le hantle tse hlano, hobane disk e le 'ngoe e sebelisetsoa ho lekana). Litlhahiso tsena li ipapisitse le maikutlo a theoretical mme li hlophisitsoe ho tsoa ho li-blog / lingoliloeng tse fapaneng ke litsebi tsa 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))

Bakeng sa lifaele tse kholo, nahana ka ho eketsa boholo ba mela e thathamisitsoeng ka holimo.

HO NAHANA! Ntho e 'ngoe le e' ngoe e hlalositsoeng ka holimo e itšetlehile haholo ka mefuta e meng ea likopo. Sengoliloeng sena ha se tiise lintlafatso leha e le life ntle le tlhahlobo ea pele ea mosebedisi ea lisebelisoa tse amanang. E lokela ho sebelisoa feela haeba ho hlokahala ho ntlafatsa karabelo e akaretsang ea tsamaiso, kapa haeba e rarolla mathata a hona joale.

Lintho tse ling:

Ho theha Linux kernel bakeng sa GlusterFS

Bala haholoanyane

Source: www.habr.com

Eketsa ka tlhaloso