ʻO ka nui o ka RAM manuahi, NVMe Intel P4500 a ua lohi loa nā mea āpau - ka moʻolelo o ka hoʻohui maikaʻi ʻole o kahi ʻāpana swap

Ma kēia ʻatikala, e kamaʻilio wau e pili ana i kahi kūlana i hana ʻia me kekahi o nā kikowaena i kā mākou kapua VPS, kahi i waiho ai iaʻu i ka stupped no kekahi mau hola. Ua hoʻonohonoho wau a hoʻoponopono i nā kikowaena Linux ma kahi o 15 mau makahiki, akā ʻaʻole kūpono kēia hihia i kaʻu hana - ua hana wau i nā kuhi hewa ʻole a loaʻa ka manaʻo nui ma mua o ka hiki iaʻu ke hoʻoholo pololei i ke kumu o ka pilikia a hoʻoponopono iā ia. .

Hoʻomākaukau

Hoʻohana mākou i kahi ao ākea, a mākou e kūkulu nei ma luna o nā kikowaena maʻamau me ka hoʻonohonoho hou ʻana - 32 cores, 256 GB RAM a me kahi drive 4500TB PCI-E Intel P4 NVMe. Makemake mākou i kēia hoʻonohonoho no ka mea e hoʻopau i ka hopohopo e pili ana i ka IO ma luna o ka hāʻawi ʻana i ka palena kūpono ma ka pae ʻano VM instance type. No ka mea NVMe Intel P4500 Loaʻa iā mākou ka hana kupanaha, hiki iā mākou ke hāʻawi i ka hoʻolako piha ʻana o IOPS i nā mīkini a me ka waiho ʻana i kahi kikowaena backup me ka IOWAIT ʻole.

ʻO mākou kekahi o kēlā mau manaʻoʻiʻo kahiko i hoʻohana ʻole i ka SDN hyperconverged a me nā mea ʻē aʻe, ʻano, nā mea ʻōpio e mālama ai i nā puke VM, manaʻoʻiʻo ʻoi aku ka maʻalahi o ka ʻōnaehana, ʻoi aku ka maʻalahi o ka hoʻoponopono ʻana i nā kūlana o "ua hele ke kumu nui. i mauna. ʻO ka hopena, mālama mākou i nā puke VM ma QCOW2 format ma XFS a i ʻole EXT4, i kau ʻia ma luna o LVM2.

Ke koi ʻia nei mākou e hoʻohana i ka QCOW2 e ka huahana a mākou e hoʻohana ai no ka orchestration - Apache CloudStack.

No ka hana ʻana i kahi hoʻihoʻi, lawe mākou i kahi kiʻi piha o ka leo ma ke ʻano he snapshot LVM2 (ʻae, ʻike mākou he lohi nā paʻi kiʻi LVM2, akā kōkua ka Intel P4500 iā mākou i waho. Hana mākou lvmcreate -s .. a me ke kokua dd hoʻouna mākou i ke kope kope i kahi kikowaena mamao me ka waihona ZFS. Eia mākou e holomua iki nei - ma hope o nā mea a pau, hiki iā ZFS ke mālama i ka ʻikepili ma ke ʻano i hoʻopili ʻia, a hiki iā mākou ke hoʻihoʻi koke iā ia me ka hoʻohana ʻana. DD a i ʻole e hoʻohana i nā puke VM pākahi mount -o loop ....

Hiki iā ʻoe, ʻoiaʻiʻo, ke wehe i ke kiʻi piha o ka leo LVM2, akā e kau i ka ʻōnaehana faila ma ka RO a kope i nā kiʻi QCOW2 iā lākou iho, akā naʻe, ua kū mākou i ka ʻoiaʻiʻo ua lilo ʻo XFS i mea ʻino mai kēia, ʻaʻole koke, akā ma ke ʻano unpredictable. ʻAʻole mākou makemake i ka wā e hoʻokipa koke ai ka hypervisor "stick" i nā hopena pule, i ka pō a i nā lā hoʻomaha ma muli o nā hewa i maopopo ʻole i ka wā e hiki mai ai. No laila, no ka XFS ʻaʻole mākou e hoʻohana i ke kau ʻana i ka snapshot RO e unuhi i nā puke, kope wale mākou i ka leo LVM2 holoʻokoʻa.

Hoʻoholo ʻia ka wikiwiki o ka hoʻihoʻi ʻana i ka server backup i kā mākou hihia e ka hana ʻana o ka server backup, ma kahi o 600-800 MB / s no ka ʻikepili incompressible; ʻo kahi mea palena ʻē aʻe ʻo ka 10Gbit / s channel kahi e pili ai ka server backup. i ka hui.

I kēia hihia, hoʻoili ʻia nā kope kope o nā kikowaena hypervisor 8 i ka manawa hoʻokahi i hoʻokahi kikowaena waihona. No laila, ʻo ka disk a me nā subsystems pūnaewele o ka server backup, ʻoi aku ka lohi, ʻaʻole e ʻae i nā subsystems disk o nā pūʻali hypervisor e hoʻonui, no ka mea ʻaʻole hiki iā lākou ke hana, e ʻōlelo, 8 GB / sec, hiki i ka hypervisor host ke maʻalahi. hua.

He mea koʻikoʻi ke kaʻina hana kope i luna no ka moʻolelo hou aʻe, me nā kikoʻī - me ka hoʻohana ʻana i kahi māka Intel P4500 wikiwiki, me ka hoʻohana ʻana i ka NFS a, me ka hoʻohana ʻana i ZFS.

Moʻolelo waihona

Ma kēlā me kēia node hypervisor loaʻa iā mākou kahi ʻāpana SWAP liʻiliʻi o 8 GB i ka nui, a "'ōwili" mākou i ka node hypervisor ponoʻī me ka hoʻohana ʻana. DD mai ke kiʻi kuhikuhi. No ka nui o ka ʻōnaehana ma nā kikowaena, hoʻohana mākou i ka 2xSATA SSD RAID1 a i ʻole 2xSAS HDD RAID1 ma kahi LSI a i ʻole HP ka mea hoʻoponopono. Ma keʻano laulā, ʻaʻole mākou e noʻonoʻo i ka mea i loko, no ka mea e holo ana kā mākou ʻōnaehana ma ke ʻano "aneane heluhelu wale", koe wale nō ka SWAP. A no ka mea he nui kā mākou RAM ma ke kikowaena a he 30-40% manuahi, ʻaʻole mākou e noʻonoʻo e pili ana i ka SWAP.

Kaʻina hana hoʻihoʻi. ʻIke ʻia kēia hana e like me kēia:

#!/bin/bash

mkdir -p /mnt/backups/volumes

DIR=/mnt/images-snap
VOL=images/volume
DATE=$(date "+%d")
HOSTNAME=$(hostname)

lvcreate -s -n $VOL-snap -l100%FREE $VOL
ionice -c3 dd iflag=direct if=/dev/$VOL-snap bs=1M of=/mnt/backups/volumes/$HOSTNAME-$DATE.raw
lvremove -f $VOL-snap

e hoʻolohe ionice -c3, ʻoiaʻiʻo, ʻaʻole pono kēia mea no nā polokalamu NVMe, no ka mea, ua hoʻonohonoho ʻia ka mea hoʻonohonoho IO no lākou e like me:

cat /sys/block/nvme0n1/queue/scheduler
[none] 

Eia nō naʻe, loaʻa iā mākou nā helu hoʻoilina me nā SSD RAID maʻamau, no lākou kūpono kēia, no laila ke neʻe nei lākou. E like me ka mea. ʻO ka holoʻokoʻa, he ʻāpana hoihoi wale kēia o ke code e wehewehe ana i ka lapuwale ionice i ka hihia o ia hoʻonohonoho.

E nānā i ka hae iflag=direct no ka mea, DD. Hoʻohana mākou i ka IO pololei ma ke kāʻe ʻana i ka cache buffer e pale aku i ka hoʻololi pono ʻole o nā buffer IO i ka wā heluhelu. Eia naʻe, oflag=direct ʻaʻole mākou no ka mea ua hālāwai mākou i nā pilikia hana ZFS i ka wā e hoʻohana ai.

Ua hoʻohana maikaʻi mākou i kēia papahana no kekahi mau makahiki me ka pilikia ʻole.

A laila hoʻomaka... Ua ʻike mākou ʻaʻole i kākoʻo hou ʻia kekahi o nā nodes, a ke holo nei ka mea ma mua me kahi IOWAIT nui o 50%. Ke ho'āʻo nei mākou e hoʻomaopopo i ke kumu o ka hana ʻole ʻana o ke kope ʻana, ua ʻike mākou i kēia ʻano mea:

Volume group "images" not found

Ua hoʻomaka mākou e noʻonoʻo e pili ana i "ua hiki mai ka hopena no ka Intel P4500," akā naʻe, ma mua o ka hoʻopau ʻana i ke kikowaena e hoʻololi i ka drive, pono nō e hana i kahi hoʻihoʻi. Hoʻoponopono mākou iā LVM2 ma ka hoʻihoʻi ʻana i nā metadata mai kahi waihona LVM2:

vgcfgrestore images

Ua hoʻokuʻu mākou i kahi waihona a ʻike mākou i kēia pena ʻaila:
ʻO ka nui o ka RAM manuahi, NVMe Intel P4500 a ua lohi loa nā mea āpau - ka moʻolelo o ka hoʻohui maikaʻi ʻole o kahi ʻāpana swap

Ua kaumaha loa mākou - ua maopopo ʻaʻole hiki iā mākou ke ola e like me kēia, no ka mea e ʻeha nā VPS āpau, ʻo ia hoʻi e pilikia pū mākou. ʻAʻole maopopo loa ka mea i hana - iostat hōʻike i ka IOPS aloha a me ka IOWAIT kiʻekiʻe loa. ʻAʻohe manaʻo ʻē aʻe ma mua o "e hoʻololi kākou iā NVMe," akā ua loaʻa kahi ʻike i ka manawa.

Ka nānā 'ana i ke kūlana i kēlā me kēia pae

Makaka mōʻaukala. I kekahi mau lā ma mua, ma kēia kikowaena pono e hana i kahi VPS nui me 128 GB RAM. Me he mea lā ua lawa ka hoʻomanaʻo, akā ma ka ʻaoʻao palekana, ua hoʻokaʻawale mākou i kahi 32 GB hou no ka ʻāpana swap. Ua hana ʻia ka VPS, ua hoʻopau maikaʻi i kāna hana a ua poina ka mea i hana ʻia, akā ua mau ka ʻāpana SWAP.

Nā hiʻohiʻona hoʻonohonoho. No nā kikowaena kapuaʻi āpau ka ʻāpana vm.swappiness ua hoʻonohonoho ʻia i ka paʻamau 60. A ua hana ʻia ʻo SWAP ma SAS HDD RAID1.

He aha ka mea i hana (e like me ka mea hoʻoponopono). I ke kākoʻo ʻana DD i hana i ka nui o ka ʻikepili kākau, i waiho ʻia i loko o nā buffers RAM ma mua o ke kākau ʻana iā NFS. Pūnaehana kumu, alakaʻi ʻia e ke kulekele swappiness, ke hoʻoneʻe nei i nā ʻaoʻao he nui o ka hoʻomanaʻo VPS i ka wahi swap, aia ma kahi leo HDD RAID1 lohi. Ua alakaʻi kēia iā IOWAIT e ulu ikaika loa, akā ʻaʻole ma muli o IO NVMe, akā ma muli o IO HDD RAID1.

Pehea i hoʻoponopono ʻia ai ka pilikia. Ua pio ka ʻāpana swap 32GB. He 16 mau hola kēia; hiki iā ʻoe ke heluhelu ʻokoʻa e pili ana i ke kumu a me ke kumu e hemo mālie ai ʻo SWAP. Ua hoʻololi ʻia nā hoʻonohonoho swappiness i ka waiwai like me 5 a puni ke ao.

Pehea e hiki ole ai keia?. ʻO ka mea mua, inā aia ʻo SWAP ma kahi SSD RAID a i ʻole NVMe mea, a ʻo ka lua, inā ʻaʻohe mea NVMe, akā ʻoi aku ka lohi o ka mea ʻaʻole e hoʻopuka i ka nui o ka ʻikepili - ironically, ua pilikia ka pilikia no ka wikiwiki loa o kēlā NVMe.

Ma hope o kēlā, hoʻomaka nā mea a pau e hana e like me ka wā ma mua - me ka zero IOWAIT.

Source: www.habr.com

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