
Ăheks hostinguteenuse pakkuja eesmĂ€rgiks on vĂ”imalikult suur varustuse kasutamine kvaliteetse teenuse pakkumiseks lĂ”ppkasutajatele. LĂ”pp-serverite ressursid on alati piiratud, kuid paigutatud klientide teenuste arv, meie puhul VPS, vĂ”ib oluliselt erineda. Kuidas jĂ”ulupuule ronida ja burgerit sĂŒĂŒa, lugege allolevast.
VPS-ide tihendamine nodis viisil, et kliendid seda ĂŒldse ei tunneks, aitab suuresti parandada iga hostinguteenuse pakkuja majandusnĂ€itajaid. Loomulikult ei tohiks nodi praguneda, kui see on konteineritest paksult tĂ€is, ning iga koormuse tĂ”us on tunda kĂ”igile klientidele.
Kui palju VPS-e vĂ”ib ĂŒhes nodis paigutada, sĂ”ltub paljusid teguritest, sealhulgas ilmselgetest:
1. Nodide riistvara omadused
2. VPS suurus
3. VPS koormuse iseloom
4. Tarkvaratehnoloogiad, mis aitavad tihendamist optimeerida
KĂ€esoleval juhul jagame kogemusi tehnoloogia Pfcache kasutamisest Virtuozzo jaoks.
Kasutame 6. haru, kuid kÔik öeldu kehtib ka 7. kohta.
on Virtuozzo mehhanism, mis aitab dedupeerida IOPS ja RAM-i konteinerites, eraldades ĂŒhesugused failid konteinerites eraldi ĂŒhisesse tsooni.
See koosneb tegelikult jÀrgmistest:
1. SĂŒdamikukoodist
2. User-space deemonist
3. User-space utiliidist
Nodi poolest eraldame me terve partitsiooni, kus luuakse failid, mida kasutavad kÔik VPS-id nodis. See partitsioon monteeritakse plook-blokeeringu seadmele. Edasi, konteineri kÀivitamisel, saab see viite antud partitsioonile:
[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
...
Siin on ligikaudne statistika failide arvu kohta ĂŒhes meie nodidest:
[root@pcs13 ~]# find /vz/pfcache -type f | wc -l
45851
[root@pcs13 ~]# du -sck -h /vz/pfcache
2.4G /vz/pfcache
2.4G total
Pfcache'i tööpÔhimÔte on jÀrgmine:
⹠User-space deemon Pfcached kirjutab faili sha-1 rÀsimise xattr attribuuti. Failide töötlemine ei toimu kÔigil, vaid ainult kaustades /usr, /bin, /usr/sbin, /sbin, /lib, /lib64
âą TĂ”enĂ€oliselt on, et failid nendes kaustades on "ĂŒldised" ja neid kasutab mitu konteinerit;
âą Pfcached kogub perioodiliselt failide lugemise statistikat kernest, analĂŒĂŒsib seda ja lisab failid vahemĂ€llu, kui nende kasutamine on sagedane;
âą Failide katalooge saab muuta ning need seadistatakse konfiguratsioonifailides.
âą Faili lugemisel kontrollitakse, kas see sisaldab mÀÀratud rĂ€sivÀÀrtust laiendatud atribuutides xattr. Kui see sisaldab â avatakse "ĂŒhisfail", mitte konteinerifail. See asendamine toimub konteinerikoodi jaoks mĂ€rkamatult ja peidetakse kernesse;
âą Faili kirjutamisel rĂ€sivÀÀrtus tĂŒhistatakse. Seega, jĂ€rgmine avamine toob esile juba konteinerifaili, mitte selle vahemĂ€lu.
Hoides lehe vahemikus ĂŒhiseid faile aadressilt \/vz\/pfcache, saavutame selle sama vahemĂ€lu kokkuhoidu, samuti IOPS-i kokkuhoidu. Selle asemel, et lugeda kĂŒmmet faili kettalt, loeme ĂŒhe, mis lĂ€heb kohe lehe vahemĂ€llu.
struct inode {
...
struct file *i_peer_file;
...
};
struct address_space {
...
struct list_head i_peer_list;
...
}
Faili VMA loend jÀÀb ĂŒheks (deduplication of memory) ja loeme ketast harvem (sÀÀstame IOPS-i). Meie "ĂŒhisfail" asub SSD-l â tĂ€iendav kiire kasu.
NÀide faili \bin\bash vahemÀlust:
[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
Kasutuse efektiivsus arvutatakse .
See skript lÀbib kÔik konteinerid nodis, arvutades igas konteineris vahemÀllu salvestatud failid.
[root@pcs16 ~]# \/pcs\/distr\/pfcache-examine.pl
...
Pfcache kasutab 831 MB mÀlu
Konteinerites salvestatud pfcached failide kogukasutus on 39837 MB mÀlus
Pfcache efektiivsus: 39006 MB
Nii sÀÀstame mÀlus umbes 40 gigabaidist faile konteinerites, need laaditakse vahemÀlust.
Selle mehhanismi paremaks toimimiseks on soovitatav paigutada noodi maksimaalselt "sarnased" VPS-id. NÀiteks need, millel kasutajal ei ole root-juurdepÀÀsu ja millel on seadistatud keskkond lahti pakitud pildist.
pfcache'i toimimist saab hÀÀlestada konfiguratsioonifaili kaudu
/etc/vz/pfcache.conf
MINSIZE, MAXSIZE â vahemĂ€llu salvestava faili minimaalne/maximaalne suurus
TIMEOUT â vahemĂ€lu salvestamise katsete vaheline ajaperiood
Tutvuge tÀieliku parameetrite loendiga .
Allikas: habr.com
