Verhoging van houerdigtheid op 'n nodus met behulp van PFCACHE-tegnologie

Verhoging van houerdigtheid op 'n nodus met behulp van PFCACHE-tegnologie

Een van die doelwitte van die gasheerverskaffer is om die benutting van bestaande toerusting te maksimeer ten einde diens van hoë gehalte aan eindgebruikers te lewer. Die hulpbronne van eindbedieners is altyd beperk, maar die aantal gehoste kliëntdienste, en in ons geval praat ons van VPS, kan aansienlik verskil. Lees hoe om in die boom te klim en 'n burger onder die sny te eet.

Om VPS op 'n nodus op so 'n manier te kompak dat kliënte dit glad nie voel nie, help baie om die ekonomiese prestasie van enige gasheerverskaffer te verhoog. Natuurlik moet 'n nodus nie uit sy nate bars as dit vol houers is nie, en enige oplewing in vrag word dadelik deur alle kliënte gevoel.

Hoeveel VPS op een nodus gehuisves kan word hang af van baie faktore, soos voor die hand liggend soos:

1. Eienskappe van die hardeware van die nodus self
2. VPS grootte
3. Aard van die las op die VPS
4. Sagtewaretegnologieë wat help om digtheid te optimaliseer

In hierdie geval sal ons ons ervaring van die gebruik van Pfcache-tegnologie vir Virtuozzo deel.
Ons gebruik die 6de tak, maar alles wat gesê word, is ook waar vir die 7de.

Pfcache – 'n Virtuozzo-meganisme wat help om IOPS en RAM in houers te dedupliseer, en identiese lêers in houers in 'n aparte gemeenskaplike area toe te ken.

In werklikheid bestaan ​​dit uit:
1. Kernkode
2. Gebruikersruimte-demoon
3. Gebruikersruimte-nutsprogramme

Aan die nodus kant, ken ons 'n hele afdeling toe waarin lêers geskep sal word wat direk deur alle VPS op die nodus gebruik sal word. 'n Blokploop-toestel is in hierdie afdeling gemonteer. Dan, wanneer die houer begin, ontvang dit 'n verwysing vir hierdie afdeling:

[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
...

Hier is benaderde statistieke oor die aantal lêers op een van ons nodusse:

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

Die beginsel van pfcache is soos volg:
• Die gebruiker-spasie daemon Pfcached skryf die sha-1 hash van die lêer na die xattr kenmerk van hierdie lêer. Nie alle lêers word verwerk nie, maar slegs in die /usr, /bin, /usr/sbin, /sbin, /lib, /lib64 dopgehou

• Dit is heel waarskynlik dat die lêers in hierdie gidse “gedeel” sal word en deur verskeie houers gebruik sal word;

• Pfcached versamel periodiek statistieke oor die lees van lêers vanaf die kern, ontleed dit en voeg lêers by die kas indien dit gereeld gebruik word;

• Hierdie gidse kan verskil en is in konfigurasielêers gekonfigureer.

• Wanneer 'n lêer gelees word, word gekontroleer of dit die gespesifiseerde hash in die xattr uitgebreide kenmerke bevat. As dit bevat, word die "algemene" lêer oopgemaak in plaas van die houerlêer. Hierdie vervanging vind ongemerk deur die houerkode plaas en is in die kern versteek;

• Wanneer na 'n lêer geskryf word, word die hash ongeldig. Dus, die volgende keer as jy dit oopmaak, sal die houerlêer self oopgemaak word, en nie sy kas nie.

Deur gedeelde lêers vanaf /vz/pfcache in die bladsykas te hou, behaal ons besparings in hierdie kas self, sowel as besparings in IOPS.In plaas daarvan om tien lêers vanaf skyf te lees, lees ons een, wat dadelik na die bladsykas gaan.

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

Die VMA-lys vir die lêer bly enkel (ons dedupliseer geheue) en word minder gereeld vanaf skyf gelees (spaar iops). Ons gemeenskaplike fonds is geleë op 'n SSD - 'n bykomende wins in spoed.

Voorbeeld vir die kas van die /bin/bash-lêer:

[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

Ons bereken die doeltreffendheid van gebruik klaargemaakte skrif.

Hierdie skrif gaan deur al die houers op die nodus, en bereken die gekaslêers van elke houer.

[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

Dus, uit die geheue stoor ons ongeveer 40 gigagrepe van lêers in houers; hulle sal vanaf die kas gelaai word.

Vir hierdie meganisme om nog beter te werk, is dit nodig om die mees "identiese" VPS op die nodus te plaas. Byvoorbeeld, dié waartoe die gebruiker nie worteltoegang het nie en waarop die omgewing vanaf die ontplooide prent gekonfigureer is.

Jy kan pfcache deur die config-lêer instel
/etc/vz/pfcache.conf

MINSIZE, MAXSIZE – minimum/maksimum lêergrootte vir kas
TIMEOUT – uitteltyd tussen kaspogings

U kan die volledige lys parameters sien по ссылке.

Bron: will.com

Voeg 'n opmerking