Hoʻonohonoho i ka Linux kernel no GlusterFS

Ua hoʻomākaukau ʻia ka unuhi ʻana o ka ʻatikala ma ka pō o ka hoʻomaka ʻana o ka papa Luna hooponopono Linux. 'oihana».

Hoʻonohonoho i ka Linux kernel no GlusterFS

I kēlā me kēia manawa, ma ʻaneʻi, e kū mai nā nīnau e pili ana i nā ʻōlelo aʻoaʻo a Gluster e pili ana i ke kani ʻana o ka kernel a inā he pono kēia.

ʻAʻole hiki mai kēlā pono. Ma ka hapa nui o ka hana, hana maikaʻi loa ka kernel. ʻOiai aia kahi haʻahaʻa. ʻO ka mōʻaukala, ua makemake ka Linux kernel e hoʻopau i ka nui o ka hoʻomanaʻo inā hāʻawi ʻia ka manawa, me ka caching ke ala nui e hoʻomaikaʻi ai i ka hana.

I ka hapanui o nā hihia, hana maikaʻi kēia, akā ma lalo o ke kaumaha kaumaha hiki ke alakaʻi i nā pilikia.

Nui kā mākou ʻike me nā ʻōnaehana hoʻomanaʻo hoʻomanaʻo e like me CAD, EDA a me nā mea like, i hoʻomaka e lohi ma lalo o ka ukana kaumaha. A i kekahi manawa ua pilikia mākou ma Gluster. Ma hope o ka nānā pono ʻana i ka hoʻohana ʻana i ka hoʻomanaʻo a me ka latency disk no nā lā he nui, ua loaʻa iā mākou kā lākou overload, nui iowait, kernel errors (kernel oops), freezes, etc.

ʻO kēia ʻatikala ka hopena o nā hoʻokolohua hoʻolohe he nui i hana ʻia ma nā kūlana like ʻole. Mahalo i kēia mau ʻāpana, ʻaʻole wale ka hoʻomaikaʻi ʻana o ka pane holoʻokoʻa, akā ua hoʻokūpaʻa nui ʻia ka cluster.

I ka wā e pili ana i ka hoʻoponopono hoʻomanaʻo, ʻo ka mea mua e nānā ai ʻo ka subsystem hoʻomanaʻo virtual (VM, hoʻomanaʻo virtual), he nui nā koho e hiki ke huikau iā ʻoe.

vm.swappiness

ʻO ka pākuhi vm.swappiness e hoʻoholo i ka nui o ka hoʻohana ʻana o ka kernel i ka swap (swap, paging) i hoʻohālikelike ʻia me RAM. Ua wehewehe ʻia ma ke code kumu ʻo "ka manaʻo e ʻaihue i ka hoʻomanaʻo palapala". ʻO ka swappiness kiʻekiʻe, ʻoi aku ka makemake o ka kernel e hoʻololi i nā ʻaoʻao palapala ʻāina. ʻO ka waiwai swappiness haʻahaʻa ʻo ia hoʻi ka ʻokoʻa: e emi iho ka ʻaoʻao mai ka hoʻomanaʻo. ʻO ia hoʻi, ʻoi aku ka kiʻekiʻe o ka waiwai vm.swappiness, ʻoi aku ka nui o ka hoʻohana ʻana o ka ʻōnaehana i ka swap.

ʻAʻole makemake ʻia ka hoʻohana nui ʻana o ka hoʻololi ʻana, no ka mea ua hoʻouka ʻia nā poloka nui o ka ʻikepili a hoʻoiho ʻia i loko o ka RAM. He nui ka poʻe e hoʻopaʻapaʻa e nui ka waiwai o ka swapiness, akā i koʻu ʻike, hoʻonohonoho iā ia i "0" e alakaʻi i ka hana ʻoi aku ka maikaʻi.

Hiki iā ʻoe ke heluhelu hou aku ma aneʻi - lwn.net/Articles/100978

Akā, eia hou, pono e hoʻopili ʻia kēia mau hoʻonohonoho me ka mālama a ma hope o ka hoʻāʻo ʻana i kahi noi. No nā noi hoʻoheheʻe nui ʻia, pono e hoʻonohonoho ʻia kēia ʻāpana i "0". Ke hoʻololi ʻia i "0", hoʻomaikaʻi ka pane ʻōnaehana.

vm.vfs_cache_pressure

Mālama kēia hoʻonohonoho i ka hoʻomanaʻo i hoʻopau ʻia e ka kernel no ka mālama ʻana i ka papa kuhikuhi a me nā mea inode (nā niho a me ka inode).

Me ka waiwai paʻamau o 100, e hoʻāʻo ka kernel e hoʻokuʻu i nā huna niho a me nā inode ma ke kumu "kūpono" i ka pagecache a me ka swapcache. ʻO ka emi ʻana o ka vfs_cache_pressure ka mea e mālama ai ka kernel i nā huna niho a me nā inode. Inā he "0" ka waiwai, ʻaʻole e holoi ka kernel i ka dentry a me ka inode cache ma muli o ke kaomi hoʻomanaʻo, a hiki i kēia ke alakaʻi i kahi hewa i waho o ka hoʻomanaʻo. ʻO ka hoʻonui ʻana i ka vfs_cache_pressure ma luna o 100 ke kumu e hoʻomaka ai ka kernel i ka niho a me ka hoʻoheheʻe inode.

I ka hoʻohana ʻana iā GlusterFS, hiki i nā mea hoʻohana he nui me ka nui o nā ʻikepili a me nā faila liʻiliʻi ke hoʻohana maʻalahi i ka nui o ka RAM ma ke kikowaena ma muli o ka inode/dentry caching, hiki ke alakaʻi i ka hōʻino ʻana i ka hana e like me ka kernel e hoʻoponopono i nā kūkulu ʻikepili ma kahi ʻōnaehana. me 40 GB o ka hoʻomanaʻo. ʻO ka hoʻonohonoho ʻana i kēia waiwai ma luna o 100 ua kōkua i nā mea hoʻohana he nui e hoʻokō i ka caching kūpono a hoʻomaikaʻi i ka pane ʻana i ka kernel.

vm.dirty_background_ratio a me vm.dirty_ratio

ka palena mua (vm.dirty_background_ratio) e hoʻoholo i ka pākēneka o ka hoʻomanaʻo me nā ʻaoʻao lepo, ma hope o ka hiki ʻana i ka mea e pono ai e hoʻomaka i ka holoi ʻana i nā ʻaoʻao lepo i ke kua i ka disk. A hiki i kēia pākēneka, ʻaʻohe ʻaoʻao e holoi ʻia i ka disk. A i ka wā e hoʻomaka ai ka hoʻonohonoho hou ʻana, holo ia ma ke kua me ka ʻole e hoʻopau i nā kaʻina holo.

ʻO ka ʻāpana ʻelua (vm.dirty_ratio) wehewehe i ka pākēneka o ka hoʻomanaʻo i hiki ke noho ʻia e nā ʻaoʻao lepo ma mua o ka hoʻomaka ʻana o ka uila. Ke hiki i kēia paepae, lilo nā kaʻina hana a pau (pāʻia) a ʻaʻole ʻae ʻia e hoʻomau a hiki i ka pau ʻana o ka I/O a lākou i noi ai a aia ka ʻikepili ma ka disk. Me ka I/O koʻikoʻi, pilikia kēia no ka mea ʻaʻohe hoʻopaʻa ʻikepili a ua pāpā ʻia nā kaʻina hana a pau e hana ana iā I/O e kali ana iā I/O. Ke alakaʻi nei kēia i ka nui o nā kaʻina hana i kau ʻia, ka haʻahaʻa kiʻekiʻe, ka paʻa ʻole o ka ʻōnaehana a me ka hana maikaʻi ʻole.

ʻO ka hoʻemi ʻana i kēia mau hoʻonohonoho e hoʻoiho pinepine ʻia ka ʻikepili i ka disk a ʻaʻole mālama ʻia i ka RAM. Hiki i kēia ke kōkua i nā ʻōnaehana koʻikoʻi hoʻomanaʻo ma kahi maʻamau e hoʻoheheʻe i nā ʻaoʻao ʻaoʻao 45-90 GB i ka disk, e hopena i ka latency nui no nā noi mua, e hōʻemi ana i ka pane a me ka launa pū ʻana.

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

ʻO kahi huna ʻaoʻao kahi huna e mālama ai i ka ʻikepili o nā faila a me nā polokalamu hoʻokō, ʻo ia hoʻi, he mau ʻaoʻao kēia me nā ʻike maoli o nā faila a i ʻole nā ​​​​polokalamu poloka. Hoʻohana ʻia kēia cache e hoʻemi i ka helu o nā heluhelu disk. ʻO ka waiwai o "1" ʻo ia hoʻi, hoʻohana ʻia ka 1% o RAM no ka hūnā a ʻoi aku ka nui o nā heluhelu mai ka disk ma mua o ka RAM. ʻAʻole pono e hoʻololi i kēia hoʻonohonoho, akā inā he paranoid ʻoe e pili ana i ka mālama ʻana i ka cache ʻaoʻao, hiki iā ʻoe ke hoʻohana.

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

ʻO ka mea hoʻonohonoho I/O kahi ʻāpana kernel Linux e lawelawe ana i ka heluhelu a kākau i nā queues. Ma ke kumumanaʻo, ʻoi aku ka maikaʻi o ka hoʻohana ʻana i "noop" no ka mea hoʻokele RAID akamai, no ka mea, ʻaʻole ʻike ʻo Linux i ka geometry kino o ka disk, no laila ʻoi aku ka maikaʻi o ka hoʻokuʻu ʻana i ka mea hoʻoponopono, ka mea i ʻike pono i ka geometry disk, e hana i ka noi me ka wikiwiki. hiki. Akā me he mea lā e hoʻomaikaʻi ana ka "hopena" i ka hana. Hiki iā ʻoe ke heluhelu hou aʻe e pili ana i nā mea hoʻonohonoho i ka palapala kumu kumu kumu Linux Linux: linux/Documentation/block/*osched.txt. A ua ʻike nō hoʻi au i ka piʻi ʻana o ka helu helu helu i ka wā o nā hana like ʻole (nui nā mea kākau).

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

ʻO ka helu o nā noi I/O i loko o ka buffer ma mua o ka hāʻawi ʻia ʻana i ka mea hoʻonohonoho. ʻOi aku ka nui o ka nui queue kūloko o kekahi mau mea hoʻoponopono (queue_depth) ma mua o nā nr_requests o ka mea hoʻonohonoho I/O, no laila ʻaʻole liʻiliʻi ka manawa kūpono o ka mea hoʻonohonoho I/O i ka hoʻonohonoho pono ʻana a me ka hoʻohui ʻana i nā noi. No ka lā palena manawa a me ka CFQ mea hoʻonohonoho, ʻoi aku ka maikaʻi inā ʻo nā nr_requests he 2 mau manawa i ka pila o loko o ka mea hoʻoponopono. ʻO ka hoʻohui ʻana a me ka hoʻonohonoho hou ʻana i nā noi e kōkua i ka mea hoʻonohonoho e ʻoi aku ka pane ma lalo o ka ukana kaumaha.

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

Mālama ka ʻāpana ʻaoʻao-cluster i ka helu o nā ʻaoʻao i kākau ʻia i ka swap i ka manawa hoʻokahi. Ma ka laʻana i luna, ua hoʻonohonoho ʻia ka waiwai i "16" e like me ka nui o ka kaha RAID o 64 KB. ʻAʻole kūpono ia me ka swappiness = 0, akā inā hoʻonoho ʻoe i ka swappiness i 10 a i ʻole 20 a laila e kōkua ka hoʻohana ʻana i kēia waiwai iā ʻoe i ka 64K ka nui o ke kaha RAID.

blockdev --setra 4096 /dev/<devname> (-sdb, hdc a i ʻole dev_mapper)

ʻO ka hoʻonohonoho ʻana i nā hāmeʻa poloka paʻamau no nā mea hoʻokele RAID he hopena pinepine i ka hana weliweli. ʻO ka hoʻohui ʻana i ke koho i luna e hoʻonohonoho i ka heluhelu-mua no nā ʻāpana 4096 * 512-byte. Ma ka liʻiliʻi loa, no ka hoʻoheheʻe ʻana, hoʻonui ʻia ka wikiwiki ma o ka hoʻopiha ʻana i ka cache disk on-chip me ka heluhelu mua ʻana i ka wā i hoʻohana ʻia e ka kernel e hoʻomākaukau ai i ka I/O. Hiki i ka cache ke loaʻa ka ʻikepili e noi ʻia ma ka heluhelu aʻe. Hiki i ka nui o ka prefetch ke pepehi i ka I/O maʻamau no nā faila nui inā hoʻohana ʻo ia i ka manawa disk kūpono a hoʻouka paha i ka ʻikepili ma waho o ka huna.

Aia ma lalo kekahi mau manaʻo hou aʻe ma ka pae ʻōnaehana faila. Akā ʻaʻole lākou i hoʻāʻo ʻia. E hōʻoia i ka ʻike o kāu ʻōnaehana waihona i ka nui o ke kāʻei a me ka helu o nā disks i ka laha. No ka laʻana, he 5K stripe raid64 kēia o nā disks ʻeono (ʻoiaʻiʻo ʻelima, no ka mea hoʻohana ʻia kahi disk no ka parity). Hoʻokumu ʻia kēia mau ʻōlelo aʻoaʻo ma luna o nā manaʻo manaʻo a hōʻuluʻulu ʻia mai nā blog / ʻatikala e nā poʻe loea 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))

No nā faila nui, e noʻonoʻo e hoʻonui i ka nui o nā kaha i helu ʻia ma luna.

NĀHUI! ʻO nā mea a pau i hōʻike ʻia ma luna nei he mea koʻikoʻi loa ia no kekahi ʻano o nā noi. ʻAʻole hōʻoia kēia ʻatikala i nā hoʻomaikaʻi me ka ʻole o ka hoʻāʻo mua ʻana o ka mea hoʻohana i nā noi pili. Pono e hoʻohana wale ʻia inā pono e hoʻomaikaʻi i ka pane holoʻokoʻa o ka ʻōnaehana, a i ʻole e hoʻoponopono i nā pilikia o kēia manawa.

Nā kumuwaiwai hou:

Hoʻonohonoho i ka Linux kernel no GlusterFS

Heluhelu hou aku

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka