Nodo batean edukiontzien dentsitatea handitzea PFCACHE teknologia erabiliz

Nodo batean edukiontzien dentsitatea handitzea PFCACHE teknologia erabiliz

Ostalaritza hornitzailearen helburuetako bat lehendik dauden ekipoen erabilera maximizatzea da, azken erabiltzaileei kalitate handiko zerbitzua eskaintzeko. Amaierako zerbitzarien baliabideak mugatuak dira beti, baina ostatatutako bezero-zerbitzuen kopurua, eta gure kasuan VPS-i buruz ari gara, nabarmen desberdina izan daiteke. Irakurri zuhaitzera nola igo eta mozketaren azpian hanburgesa bat jan.

VPS nodo batean trinkotzeak bezeroek batere sentitzen ez duten moduan edozein ostalaritza-hornitzaileren errendimendu ekonomikoa handitzen laguntzen du. Jakina, nodo batek ez luke josturak lehertu behar ontziz beteta badago, eta kargaren gorakada edozein bezero guztiek berehala sentitzen dute.

Nodo batean zenbat VPS ostata daitezkeen faktore askoren araberakoa da, besteak beste:

1. Nodoaren beraren hardwarearen ezaugarriak
2. VPS tamaina
3. VPSaren kargaren izaera
4. Dentsitatea optimizatzen laguntzen duten software teknologiak

Kasu honetan, Virtuozzorako Pfcache teknologia erabiltzearen esperientzia partekatuko dugu.
6. adarra erabiltzen dugu, baina esandako guztia egia da 7.erako ere.

Pfcache – Edukiontzietan IOPS eta RAM bikoiztu egiten laguntzen duen Virtuozzo mekanismoa, edukiontzietan fitxategi berdinak eremu komun batean banatuz.

Izan ere, honako hauek osatzen dute:
1. Kernel kodea
2. Erabiltzaile-espazioko deabrua
3. Erabiltzaile-espazio-utilitateak

Nodoaren aldean, nodoko VPS guztiek zuzenean erabiliko dituzten fitxategiak sortuko diren atal oso bat esleitzen dugu. Bloke ploop gailu bat muntatzen da atal honetan. Ondoren, edukiontzia hasten denean, atal honen erreferentzia bat jasotzen du:

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

Hona hemen gure nodoetako fitxategi kopuruaren gutxi gorabeherako estatistikak:

[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-ren printzipioa hau da:
β€’ Pfcached erabiltzaile-espazio daemonak fitxategiaren sha-1 hash-a idazten du fitxategi honen xattr atributuan. Fitxategi guztiak ez dira prozesatzen, /usr, /bin, /usr/sbin, /sbin, /lib, /lib64 direktorioetan baizik

β€’ Litekeena da direktorio horietako fitxategiak β€œpartekatuak” izatea eta hainbat edukiontzik erabiltzea;

β€’ Pfcached-ek aldian-aldian biltzen ditu nukleoko fitxategiak irakurtzeko estatistikak, aztertzen ditu eta maiz erabiltzen badira fitxategiak cachean gehitzen ditu;

β€’ Direktorio hauek desberdinak izan daitezke eta konfigurazio fitxategietan konfiguratuta daude.

β€’ Fitxategi bat irakurtzean, xattr hedatutako atributuetan zehaztutako hash-a duen egiaztatzen da. Badauka, "orokorra" fitxategia irekiko da edukiontziaren ordez. Ordezkapen hau edukiontzi-kodeak oharkabean gertatzen da eta nukleoan ezkutatuta dago;

β€’ Fitxategi batean idaztean, hash-a baliogabetu egiten da. Horrela, irekitzen duzun hurrengoan, edukiontziaren fitxategia bera irekiko da, eta ez bere cachea.

/vz/pfcache-ko partekatutako fitxategiak orriaren cachean gordeta, cache honetan bertan aurrezpena lortzen dugu, baita IOPS-en aurrezpena ere.Diskotik hamar fitxategi irakurri beharrean, bat irakurtzen dugu, berehala orrialdeko cachera doa.

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

Fitxategiaren VMA zerrenda bakarra izaten jarraitzen du (memoria desbikoizten dugu) eta gutxiagotan irakurtzen da diskotik (iops aurrezten). Gure funts komuna SSD batean dago - abiadura irabazi gehigarria.

/bin/bash fitxategia cachean gordetzeko adibidea:

[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

Erabileraren eraginkortasuna kalkulatzen dugu prest egindako gidoia.

Script hau nodoko edukiontzi guztietatik igarotzen da, edukiontzi bakoitzaren cacheko fitxategiak kalkulatuz.

[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

Horrela, memoriatik 40 gigabyte inguru fitxategi gordetzen ditugu edukiontzietan; cachetik kargatuko dira.

Mekanismo honek are hobeto funtziona dezan, beharrezkoa da VPS "berdin-berdina" nodoan jartzea. Adibidez, erabiltzaileak root sarbiderik ez duenak eta zabaldutako irudiaren ingurunea konfiguratuta daudenak.

pfcache konfigurazio fitxategiaren bidez sintonizatu dezakezu
/etc/vz/pfcache.conf

MINSIZE, MAXSIZE - cachean gordetzeko gutxieneko/gehieneko fitxategiaren tamaina
TIMEOUT - cachean gordetzeko saiakeren arteko denbora-muga

Parametroen zerrenda osoa ikus dezakezu ΠΏΠΎ ссылкС.

Iturria: www.habr.com

Gehitu iruzkin berria