Rritja e densitetit të kontejnerëve në nodë duke përdorur teknologjinë PFCACHE

Rritja e densitetit të kontejnerëve në nodë duke përdorur teknologjinë PFCACHE

Një nga qëllimet e ofruesit të hosting-ut është maksimalizimi i shfrytëzimit të pajisjeve ekzistuese për të ofruar një shërbim cilësor për përdoruesit përfundimtarë. Burimet e serverëve përfundimtarë gjithmonë janë të kufizuara, megjithatë numri i shërbimeve të klientëve të vendosur, dhe në rastin tonë flasim për VPS, mund të ndryshojë ndjeshëm. Për mënyrën se si të ngjihemi në bredh dhe të hamë një hamburger, lexoni më poshtë.

Të mbushim VPS në nodë në një mënyrë që klientët të mos e ndjejnë fare, ndihmon shumë në përmirësimin e rezultateve ekonomike të çdo ofruesi të hosting-ut. Sigurisht, nodë nuk duhet të shkërmoqet nëse është mbushur me konteinerë, dhe çdo rritje në ngarkesë ndjehet menjëherë nga të gjithë klientët.

Sa VPS mund të vendosen në një nodë varet nga shumë faktorë, disa aq të dukshëm sa:

1. Karakteristikat e harduerit të nodës vetë
2. Madhësia e VPS
3. Karakteri i ngarkesës në VPS
4. Teknologjitë e softuerit që ndihmojnë në optimizimin e densitetit

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

Pfcache është një mekanizëm Virtuozzo që ndihmon në deduplikimin e IOPS dhe RAM në konteinerë, duke ndarë skedarët e njëjtë në konteinerët në një zonë të përbashkët.

Në thelb ai përbëhet nga:
1. Kodi i bërthamës
2. Daemon-i në hapësirën e përdoruesit
3. Utilitar në hapësirën e përdoruesit

Në anën e nodës, ne rezervojmë një seksion të tërë ku do të krijohen skedarët që do të përdoren drejtpërdrejt nga të gjitha VPS-të në nodë. Në këtë seksion montohen një pajisje blloku ploop. Pastaj, kur fillon konteineri, ai merr një referencë për këtë seksion:

[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 një statistikë 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 vijon:
‱ Daemon-i nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit Pfcached shkruan hash-in sha-1 tĂ« skedarit nĂ« atributin xattr tĂ« kĂ«tij skedari. SkedarĂ«t pĂ«rpunohen jo tĂ« gjithĂ«, por vetĂ«m nĂ« direktoritĂ« /usr, /bin, /usr/sbin, /sbin, /lib, /lib64

‱ MĂ« sĂ« shumti, Ă«shtĂ« e sigurt qĂ« skedarĂ«t nĂ« kĂ«to drejtoritĂ« do tĂ« jenĂ« "tĂ« pĂ«rbashkĂ«t" dhe do tĂ« pĂ«rdoren nga disa konteinerĂ«;

‱ Pfcached periodikisht mbledh statistika mbi leximin e skedarĂ«ve nga bĂ«rthama, e analizon atĂ« dhe shton skedarĂ«t nĂ« cache nĂ«se pĂ«rdorimi i tyre Ă«shtĂ« i shpeshtĂ«;

‱ TĂ« dhĂ«nat e direktorisĂ« mund tĂ« jenĂ« tĂ« ndryshme dhe konfiguracione tĂ« tjera vendosen nĂ« skedarĂ«t konfiguruese.

‱ GjatĂ« leximin e skedarit, kontrollohet nĂ«se ai pĂ«rmban hash-in e caktuar nĂ« atributet e zgjeruara xattr. NĂ«se e pĂ«rmban, hapet skedari 'i zakonshĂ«m', nĂ« vend tĂ« skedarit tĂ« kontejnerit. Kjo zĂ«vendĂ«sim ndodh pa u vĂ«nĂ« re nga kodi i kontejnerit dhe fshihet nĂ« bĂ«rthamĂ«;

‱ GjatĂ« shkruarjes nĂ« skedar, hash-i bĂ«het i pavlefshĂ«m. KĂ«shtu, gjatĂ« hapjes sĂ« mĂ«vonshme, do tĂ« hapet tashmĂ« skedari i kontejnerit, jo cache-i i tij.

Duke ruajtur në cache të faqeve skedarët e zakonshëm nga /vz/pfcache arrihet kursimi i këtij cache, si dhe kursimi i IOPS. Në vend që të lexojmë dhjetë skedarë nga disku, lexojmë një, i cili menjëherë shkon në cache të faqeve.

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

Lista VMA për skedarin mbetet e vetme (deduplikon kujtesën) dhe lexojmë më rrallë nga disku (kushedi për iops). 'Bashkimi' ynë është vendosur në SSD - një fitim shtesë në shpejtësi.

Shembulli për caching-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 i përdorimit të kalkuluar me një skript të gatshëm.

Ky skript kalon përmes të gjitha kontejnerëve në nodë, duke llogaritur skedarët e cache-uar të secilit kontejner.

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

Kështu, kursimi në memorie arrin rreth 40 gigabajt skedarësh në kontejnerë, që do të ngarkohen nga cache.

Për të funksionuar më mirë, është e nevojshme që në nodë të vendosen VPS që janë sa më 'të ngjashëm' të jetë e mundur. Për shembull, ata për të cilët përdoruesi nuk ka akses root dhe ku është konfiguruar një mjedis nga një imazh të 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 caching
TIMEOUT – kohĂ«zgjatja mes pĂ«rpjekjeve pĂ«r caching

Mund të njiheni me një listë të plotë të specifikimeve në lidhje.

Burimi: habr.com

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