Rritja e dendësisë së konteinerëve në nod me teknologjinë PFCACHE

Rritja e dendësisë së konteinerëve në nod me teknologjinë PFCACHE

Një nga qëllimet e ofruesit të shërbimeve të hostimit është shfrytëzimi maksimal i pajisjeve ekzistuese për të ofruar një shërbim cilësor për përdoruesit përfundimtarë. Burimet e serverëve përfundimtarë janë gjithmonë të kufizuara, megjithatë numri i shërbimeve klientëve, në këtë rast VPS, mund të ndryshojë ndjeshëm. Për të mësuar se si të ngjiteni në degë dhe të hani një hamburger, lexoni më poshtë.

Kompaktimi i VPS-ve në nodë në një mënyrë që klientët nuk e ndiejnë shumë ndihmon shumë në përmirësimin e treguesve ekonomikë të çdo ofruesi të shërbimeve të hostimit. Sigurisht, nodën nuk duhet ta ndiejmë të mbingarkuar, nëse është mbushur me konteinerë deri në skaj, dhe çdo shpërthim në ngarkesë menjëherë e ndjejnë të gjithë klientët.

Sa VPS-ve mund të vendosen në një nodë varet nga shumë faktorë, disa të evidentuar si:

1. Karakteristikat e pajisjeve të nodës së vetë
2. Madhësia e VPS
3. Natyrën e ngarkesës në VPS
4. Teknologjitë e softuerit që ndihmojnë në optimizimin e dendurisë

Në këtë rast, ne do të ndajmë përvojën tonë të përdorimit të teknologjisë Pfcache për Virtuozzo.
Ne përdorim degën e 6-të, por gjithçka e thënë është e saktë edhe për të 7-tën.

Pfcache është një mekanizëm Virtuozzo, i cili ndihmon në deduplifikimin e IOPS dhe RAM në konteinerë, duke ndarë skedarë identikë në konteinerë në një zonë të veçantë të përbashkët.

Në thelb, ai përbëhet nga:
1. Kodi i bërthamës
2. Demonë në hapësirën e përdoruesit
3. Vegla në hapësirën e përdoruesit

Në anën e nodës, ne ndante një pjesë të plotë, ku do të krijohen skedarë, të cilët do të përdoren drejtpërdrejt nga të gjithë VPS-të në nodë. Në këtë pjesë montohen pajisjet bllok ploop. Më pas, gjatë nisjes së konteinerit, ai merr një referencë për këtë pjesë:

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

Ja statistika e përafërt e numrit të skedarëve në një nga nodat tona:

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

Principi i funksionimit të pfcache është si më poshtë:
‱ Demon nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit Pfcached regjistron hash-in sha-1 tĂ« skedarit nĂ« atributin xattr tĂ« kĂ«tij skedari. SkedarĂ«t trajtohen jo tĂ« gjithĂ«, por vetĂ«m nĂ« direktoritĂ« /usr, /bin, /usr/sbin, /sbin, /lib, /lib64

‱ MĂ« e mundshme Ă«shtĂ« qĂ« skedarĂ«t nĂ« kĂ«to drejtoritĂ« tĂ« jenĂ« "tĂ« zakonshĂ«m" dhe do tĂ« pĂ«rdoren nga disa konteinerĂ«;

‱ Pfcached pĂ«rkohĂ«sisht mbledh statistikĂ«n e leximit tĂ« skedarĂ«ve nga bĂ«rthama, e analizon atĂ«, dhe i shton skedarĂ«t nĂ« cache nĂ«se pĂ«rdorimi i tyre Ă«shtĂ« i shpeshtĂ«;

‱ KĂ«to drejtorĂ« mund tĂ« jenĂ« tĂ« tjera dhe konfigurohen nĂ« skedarin e konfigurimit.

‱ Kur lexohet njĂ« skedar, kontrollohet nĂ«se pĂ«rmban hash-in e caktuar nĂ« atributet e zgjatura xattr. NĂ«se e pĂ«rmban – hapet skedari "i zakonshĂ«m", nĂ« vend tĂ« skedarit tĂ« konteinerit. Ky zĂ«vendĂ«sim ndodh pa u vĂ«nĂ« re nga kodi i konteinerit, dhe fshihet nĂ« bĂ«rthamĂ«;

‱ Kur shkruhet nĂ« skedar, hash-in invalidizohet. KĂ«shtu, nĂ« hapjen e mĂ«passhme do tĂ« hapej skedari i konteinerit, dhe jo cache-i i tij.

Duke mbajtur në cache skedarët e zakonshëm nga /vz/pfcache arrijmë kursim të këtij cache-i, si dhe kursim të IOPS, Në vend të leximit të dhjetë skedarëve nga disku, lexojmë një, që shkon menjëherë në cache-in e faqes.

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

Lista VMA pĂ«r skedarin mbetet e vetme (deduplifikon memorjen) dhe lexohet mĂ« rrallĂ« nga disku (kĂ«rkon mĂ« pak iops). „BashkĂ«punimi“ ynĂ« Ă«shtĂ« vendosur nĂ« SSD – njĂ« fitim shtesĂ« nĂ« shpejtĂ«si.

Shembulli për cache-in e skedarit /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

Efektiviteti në përdorim të memorjes llogaritet me skenarin e gati.

Ky skenar kalon përmes të gjithë konteinerëve në nodë, duke llogaritur skedarët e cache-uar për secilin konteiner.

[root@pcs16 ~]# /pcs/distr/pfcache-examine.pl
...
Pfcache cache përdor 831 MB memorie
Përdorimi total i skedarëve pfcached në konteinerë është 39837 MB memorie
Efektiviteti i Pfcache: 39006 MB

Kështu, kemi kursim të rreth 40 gigabajt skedarësh në konteinerë, ata do të ngarkohen nga cache.

Për të siguruar që ky mekanizëm të punojë më mirë, është e nevojshme të vendosen në nodë VPS të sa më "të ngjashëm". Për shembull, ata për të cilët përdoruesi nuk ka qasje root dhe janë të vendosur të punojnë nga një imazh i zhvilluar.

Rregullimi i funksionimit të pfcache mund të bëhet përmes skedarit të konfiguratës
/etc/vz/pfcache.conf

MINSIZE, MAXSIZE – madhĂ«sia minimale/maksimale e skedarit pĂ«r cache
TIMEOUT – kohĂ« e stabilizimit midis pĂ«rpjekjeve pĂ«r cache

Mund të informoheni për listën e plotë të parametrave në lidhje.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster