Cynyddu dwysedd cynhwysydd ar nod gan ddefnyddio technoleg PFCACHE

Cynyddu dwysedd cynhwysydd ar nod gan ddefnyddio technoleg PFCACHE

Un o nodau'r darparwr cynnal yw gwneud y defnydd gorau o offer presennol er mwyn darparu gwasanaeth o ansawdd uchel i ddefnyddwyr terfynol. Mae adnoddau gweinyddwyr terfynol bob amser yn gyfyngedig, ond gall nifer y gwasanaethau cleientiaid a gynhelir, ac yn ein hachos ni rydym yn siarad am VPS, amrywio'n sylweddol. Darllenwch sut i ddringo'r goeden a bwyta byrgyr o dan y toriad.

Mae cywasgu VPS ar nod yn y fath fodd fel nad yw cleientiaid yn teimlo ei fod o gwbl yn helpu'n fawr i gynyddu perfformiad economaidd unrhyw ddarparwr cynnal. Wrth gwrs, ni ddylai nod fyrstio ar y gwythiennau os yw'n orlawn o gynwysyddion, ac mae unrhyw ymchwydd mewn llwyth yn cael ei deimlo ar unwaith gan bob cleient.

Mae faint o VPS y gellir ei gynnal ar un nod yn dibynnu ar lawer o ffactorau, rhai amlwg fel:

1. Nodweddion caledwedd y nod ei hun
2. VPS maint
3. Natur y llwyth ar y VPS
4. Technolegau meddalwedd sy'n helpu i optimeiddio dwysedd

Yn yr achos hwn, byddwn yn rhannu ein profiad o ddefnyddio technoleg Pfcache ar gyfer Virtuozzo.
Defnyddiwn y 6ed cangen, ond mae popeth a ddywedir hefyd yn wir am y 7fed.

Pfcache - mecanwaith Virtuozzo sy'n helpu i ddad-ddyblygu IOPS a RAM mewn cynwysyddion, gan ddyrannu ffeiliau union yr un fath mewn cynwysyddion i faes cyffredin ar wahΓ’n.

Mewn gwirionedd mae'n cynnwys:
1. Cod cnewyllyn
2. Defnyddiwr-gofod cythraul
3. Cyfleustodau defnyddiwr-gofod

Ar ochr y nod, rydym yn dyrannu adran gyfan lle bydd ffeiliau'n cael eu creu a fydd yn cael eu defnyddio'n uniongyrchol gan bob VPS ar y nod. Mae dyfais ploop bloc wedi'i gosod yn yr adran hon. Yna, pan fydd y cynhwysydd yn cychwyn, mae'n derbyn cyfeiriad ar gyfer yr adran hon:

[root@pcs13 ~]# cat /proc/mounts
...
/dev/ploop62124p1 /vz/pfcache ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12 0 0
...
/dev/ploop22927p1 /vz/root/418 ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12,pfcache_csum,pfcache=/vz/pfcache 0 0
/dev/ploop29642p1 /vz/root/264 ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12,pfcache_csum,pfcache=/vz/pfcache 0 0
...

Dyma ystadegau bras ar nifer y ffeiliau ar un o'n nodau:

[root@pcs13 ~]# find /vz/pfcache -type f | wc -l
45851
[root@pcs13 ~]# du -sck -h /vz/pfcache
2.4G    /vz/pfcache
2.4G    total

Mae egwyddor pfcache fel a ganlyn:
β€’ Mae'r ellyll gofod defnyddiwr Pfcached yn ysgrifennu hash sha-1 y ffeil i briodwedd xattr y ffeil hon. Nid yw pob ffeil yn cael ei phrosesu, ond dim ond yn y cyfeiriaduron / usr, / bin, / usr / sbin, /sbin, /lib, /lib64

β€’ Mae'n fwyaf tebygol y bydd y ffeiliau yn y cyfeiriaduron hyn yn cael eu β€œrhannu” ac yn cael eu defnyddio gan sawl cynhwysydd;

β€’ Mae Pfcached o bryd i'w gilydd yn casglu ystadegau ar ddarllen ffeiliau o'r cnewyllyn, yn ei ddadansoddi, ac yn ychwanegu ffeiliau i'r storfa os cΓ’nt eu defnyddio'n aml;

β€’ Gall y cyfeiriaduron hyn fod yn wahanol ac maent wedi'u ffurfweddu mewn ffeiliau ffurfweddu.

β€’ Wrth ddarllen ffeil, mae'n cael ei wirio a yw'n cynnwys yr hash penodedig yn y priodoleddau estynedig xattr. Os yw'n cynnwys, agorir y ffeil β€œcyffredinol” yn lle'r ffeil cynhwysydd. Mae'r amnewid hwn yn digwydd heb i god y cynhwysydd sylwi arno ac mae wedi'i guddio yn y cnewyllyn;

β€’ Wrth ysgrifennu at ffeil, mae'r hash yn cael ei annilysu. Felly, y tro nesaf y byddwch chi'n ei agor, bydd y ffeil cynhwysydd ei hun yn cael ei hagor, ac nid ei storfa.

Trwy gadw ffeiliau a rennir o /vz/pfcache yn y celc tudalen, rydym yn cyflawni arbedion yn y storfa hon ei hun, yn ogystal ag arbedion yn IOPS.Yn lle darllen deg ffeil oddi ar ddisg, rydym yn darllen un, sy'n mynd yn syth i'r storfa dudalen.

struct inode {
...
 struct file             *i_peer_file;
...
};
struct address_space {
...
 struct list_head        i_peer_list;
...
}

Mae'r rhestr VMA ar gyfer y ffeil yn aros yn sengl (rydym yn dad-ddyblygu cof) ac yn cael ei darllen o ddisg yn llai aml (arbed iops). Mae ein cronfa gyffredin wedi'i lleoli ar SSD - cynnydd ychwanegol mewn cyflymder.

Enghraifft ar gyfer storio'r ffeil / bin/bash:

[root@pcs13 ~]# ls -li /vz/root/2388/bin/bash
524650 -rwxr-xr-x 1 root root 1021112 Oct  7  2018 /vz/root/2388/bin/bash
[root@pcs13 ~]# pfcache dump /vz/root/2388 | grep 524650
8e3aa19fdc42e87659746f6dc8ea3af74ab30362 i:524650      g:1357611108  f:CP
[root@pcs13 ~]# sha1sum /vz/root/2388/bin/bash
8e3aa19fdc42e87659746f6dc8ea3af74ab30362  /vz/root/2388/bin/bash
[root@pcs13 /]# getfattr -ntrusted.pfcache /vz/root/2388/bin/bash
# file: vz/root/2388/bin/bash
trusted.pfcache="8e3aa19fdc42e87659746f6dc8ea3af74ab30362"
[root@pcs13 ~]# sha1sum /vz/pfcache/8e/3aa19fdc42e87659746f6dc8ea3af74ab30362
8e3aa19fdc42e87659746f6dc8ea3af74ab30362  /vz/pfcache/8e/3aa19fdc42e87659746f6dc8ea3af74ab30362

Rydym yn cyfrifo effeithlonrwydd y defnydd sgript parod.

Mae'r sgript hon yn mynd trwy'r holl gynwysyddion ar y nod, gan gyfrifo'r ffeiliau sydd wedi'u storio ym mhob cynhwysydd.

[root@pcs16 ~]# /pcs/distr/pfcache-examine.pl
...
Pfcache cache uses 831 MB of memory
Total use of pfcached files in containers is 39837 MB of memory
Pfcache effectiveness: 39006 MB

Felly, o'r cof rydym yn arbed tua 40 gigabeit o ffeiliau mewn cynwysyddion; byddant yn cael eu llwytho o'r storfa.

Er mwyn i'r mecanwaith hwn weithio'n well fyth, mae angen gosod y VPS mwyaf β€œunion” ar y nod. Er enghraifft, y rhai nad oes gan y defnyddiwr fynediad gwraidd iddynt ac y mae'r amgylchedd o'r ddelwedd a ddefnyddir wedi'i ffurfweddu arnynt.

Gallwch diwnio pfcache trwy'r ffeil ffurfweddu
/etc/vz/pfcache.conf

MINSIZE, MAXSIZE - maint ffeil lleiaf / mwyaf ar gyfer caching
AMSER ALLAN – goramser rhwng ymdrechion celcio

Gallwch weld y rhestr lawn o baramedrau ΠΏΠΎ ссылкС.

Ffynhonnell: hab.com

Ychwanegu sylw