Żieda fid-densità tal-kontenitur fuq nodu bl-użu tat-teknoloġija PFCACHE

Żieda fid-densità tal-kontenitur fuq nodu bl-użu tat-teknoloġija PFCACHE

Wieħed mill-għanijiet tal-fornitur tal-hosting huwa li jimmassimizza l-użu ta 'tagħmir eżistenti sabiex jipprovdi servizz ta' kwalità għolja lill-utenti finali. Ir-riżorsi tas-servers finali huma dejjem limitati, iżda n-numru ta 'servizzi tal-klijenti ospitati, u fil-każ tagħna qed nitkellmu dwar VPS, jista' jvarja b'mod sinifikanti. Aqra dwar kif titla 's-siġra u tiekol burger taħt il-qatgħa.

It-tgħammir ta 'VPS fuq node b'tali mod li l-klijenti ma jħossuh xejn jgħin ħafna biex tiżdied il-prestazzjoni ekonomika ta' kwalunkwe fornitur ta 'hosting. Naturalment, nodu m'għandux jinfaqa 'fil-ħjatat jekk ikun mimli kontenituri, u kwalunkwe żieda fit-tagħbija tinħass immedjatament mill-klijenti kollha.

Kemm VPS jistgħu jiġu ospitati fuq nodu wieħed jiddependi fuq ħafna fatturi, bħal dawk ovvji bħal:

1. Karatteristiċi tal-ħardwer tan-node innifsu
2. Daqs tal-VPS
3. Natura tat-tagħbija fuq il-VPS
4. Teknoloġiji tas-softwer li jgħinu jottimizzaw id-densità

F'dan il-każ, se naqsmu l-esperjenza tagħna tal-użu tat-teknoloġija Pfcache għal Virtuozzo.
Aħna nużaw is-6 fergħa, iżda dak kollu li ntqal huwa veru wkoll għas-7.

Pfcache – mekkaniżmu Virtuozzo li jgħin id-deduplikazzjoni tal-IOPS u r-RAM f'kontenituri, billi jalloka fajls identiċi f'kontenituri għal żona komuni separata.

Fil-fatt tikkonsisti minn:
1. Kodiċi tal-kernel
2. Dimostrazzjoni tal-ispazju tal-utent
3. Utilitajiet tal-ispazju tal-utent

Fuq in-naħa tan-nodu, nallokaw sezzjoni sħiħa li fiha se jinħolqu fajls li se jintużaw direttament mill-VPS kollha fuq in-nodu. F'din it-taqsima huwa mmuntat apparat ta' ploop tal-blokk. Imbagħad, meta l-kontenitur jibda, jirċievi referenza għal din it-taqsima:

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

Hawnhekk hawn statistika approssimattiva dwar in-numru ta 'fajls fuq wieħed min-nodi tagħna:

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

Il-prinċipju ta 'pfcache huwa kif ġej:
• Id-daemon tal-ispazju tal-utent Pfcached jikteb il-hash sha-1 tal-fajl fl-attribut xattr ta' dan il-fajl. Mhux il-fajls kollha huma pproċessati, iżda biss fid-direttorji /usr, /bin, /usr/sbin, /sbin, /lib, /lib64

• Huwa probabbli ħafna li l-fajls f'dawn id-direttorji jkunu "kondiviżi" u se jintużaw minn diversi kontenituri;

• Pfcached perjodikament jiġbor statistika dwar il-qari ta 'fajls mill-kernel, janalizzaha, u żżid fajls mal-cache jekk jintużaw ta' spiss;

• Dawn id-direttorji jistgħu jkunu differenti u huma kkonfigurati f'fajls ta' konfigurazzjoni.

• Meta taqra fajl, jiġi ċċekkjat jekk fihx il-hash speċifikat fl-attributi estiżi xattr. Jekk ikun fih, jinfetaħ il-fajl "ġenerali" minflok il-fajl tal-kontenitur. Din is-sostituzzjoni sseħħ inosservata mill-kodiċi tal-kontenitur u hija moħbija fil-qalba;

• Meta tikteb fuq fajl, il-hash huwa invalidat. Għalhekk, il-ħin li jmiss li tiftaħha, il-fajl tal-kontenitur innifsu jinfetaħ, u mhux il-cache tiegħu.

Billi nżommu fajls kondiviżi minn /vz/pfcache fil-cache tal-paġna, niksbu tfaddil f'din il-cache innifsu, kif ukoll iffrankar f'IOPS Minflok ma naqraw għaxar fajls mid-disk, naqraw wieħed, li immedjatament imur fil-cache tal-paġna.

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

Il-lista tal-VMA għall-fajl tibqa' waħda (nidduplikaw il-memorja) u tinqara mid-disk inqas spiss (iffrankar ta' iops). Il-fond komuni tagħna jinsab fuq SSD - qligħ addizzjonali fil-veloċità.

Eżempju għall-caching tal-fajl /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

Aħna nikkalkulaw l-effiċjenza tal-użu kitba lesta.

Din l-iskrittura tgħaddi mill-kontenituri kollha fuq in-node, u tikkalkula l-fajls fil-cache ta 'kull kontenitur.

[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

Għalhekk, mill-memorja niffrankaw madwar 40 gigabytes ta' fajls f'kontenituri; dawn se jiġu mgħobbija mill-cache.

Biex dan il-mekkaniżmu jaħdem saħansitra aħjar, huwa meħtieġ li jitqiegħed l-aktar VPS "identiċi" fuq in-nodu. Pereżempju, dawk li għalihom l-utent m'għandux aċċess għall-għeruq u li fuqhom huwa kkonfigurat l-ambjent mill-immaġni skjerata.

Tista 'tirranġa pfcache permezz tal-fajl tal-konfigurazzjoni
/etc/vz/pfcache.conf

MINSIZE, MAXSIZE – daqs minimu/massimu tal-fajl għall-caching
TIMEOUT – timeout bejn tentattivi ta' caching

Tista' tara l-lista sħiħa tal-parametri по ссылке.

Sors: www.habr.com

Żid kumment