Ukwandisa ukuminyana kweziqukathi ku-node kusetshenziswa ubuchwepheshe be-PFCACHE

Ukwandisa ukuminyana kweziqukathi ku-node kusetshenziswa ubuchwepheshe be-PFCACHE

Enye yezinjongo zomhlinzeki obambayo ukukhulisa ukusetshenziswa kwezinto ezikhona kakade ukuze kuhlinzekwe isevisi yekhwalithi ephezulu kubasebenzisi bokugcina. Izinsiza zamaseva okuphela zihlala zilinganiselwe, kodwa inani lezinsizakalo zamakhasimende aphethwe, futhi esimweni sethu esikhuluma nge-VPS, lingahluka kakhulu. Funda mayelana nendlela yokugibela esihlahleni futhi udle ibhega ngaphansi kokusikwa.

Ukuhlanganisa i-VPS ku-node ngendlela yokuthi amaklayenti angazizwa nhlobo kusiza kakhulu ukukhulisa ukusebenza komnotho kwanoma yimuphi umhlinzeki wokubamba. Vele, i-node akufanele iqhume lapho ithungatha uma igcwele iziqukathi, futhi noma yikuphi ukukhuphuka komthwalo kuzwakala ngokushesha yiwo wonke amaklayenti.

Mangaki ama-VPS angasingathwa endaweni eyodwa kuncike ezintweni eziningi, ezisobala njenge:

1. Izici ze-hardware ye-node ngokwayo
2. Usayizi we-VPS
3. Imvelo yomthwalo ku-VPS
4. Ubuchwepheshe besoftware obusiza ukukhulisa ukuminyana

Kulokhu, sizokwabelana ngolwazi lwethu lokusebenzisa ubuchwepheshe be-Pfcache be-Virtuozzo.
Sisebenzisa igatsha lesi-6, kodwa konke okushiwoyo kuyiqiniso nangesi-7.

I-Pfcache - indlela ye-Virtuozzo esiza ukuphinda i-IOPS ne-RAM ezitsheni, ihlukanise amafayela afanayo ezitsheni endaweni evamile ehlukile.

Eqinisweni ihlanganisa:
1. Ikhodi ye-kernel
2. Idemoni lesikhala somsebenzisi
3. Izinsiza zesikhala somsebenzisi

Ohlangothini lwe-node, sinikeza isigaba sonke lapho kuzokwakhiwa amafayela azosetshenziswa ngokuqondile yi-VPS yonke ku-node. Idivayisi ye-block ploop ifakwe kulesi sigaba. Bese, lapho isiqukathi siqala, sithola ireferensi yalesi sigaba:

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

Nazi izibalo ezilinganiselwe zenani lamafayela kwenye yamanodi ethu:

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

Umgomo we-pfcache umi kanje:
β€’ I-daemon yesikhala somsebenzisi i-Pfcached ibhala i-sha-1 hash yefayela kusibaluli se-xattr saleli fayela. Akuwona wonke amafayela acutshungulwayo, kodwa kuphela / usr, / bin, / usr / sbin, / sbin, / lib, / lib64 izinkomba

β€’ Kungenzeka kakhulu ukuthi amafayela akulezi zinkomba β€œkwabelwane ngawo” futhi azosetshenziswa iziqukathi ezimbalwa;

β€’ I-Pfcached iqoqa ngezikhathi ezithile izibalo zamafayela okufundwayo ku-kernel, iwahlaziye, futhi yengeze amafayela kunqolobane uma esetshenziswa njalo;

β€’ Lezi zinkomba zingase zehluke futhi zimiswe kumafayela okumisa.

β€’ Lapho kufundwa ifayela, liyahlolwa ukuthi ingabe liqukethe i-hash eshiwo kuzibaluli ezinwetshiwe ze-xattr. Uma iqukethe, ifayela "elijwayelekile" liyavulwa esikhundleni sefayela lesiqukathi. Lokhu kushintsha kwenzeka kunganakiwe ikhodi yesiqukathi futhi kufihlwe ku-kernel;

β€’ Uma ubhalela ifayela, i-hashi ayivumelekile. Ngakho, ngokuzayo lapho uyivula, ifayela lesiqukathi ngokwalo lizovulwa, hhayi inqolobane yalo.

Ngokugcina amafayela abelwe kusuka ku-/vz/pfcache ku-cache yekhasi, sifinyelela ukonga kule cache ngokwayo, kanye nokulondoloza ku-IOPS. Esikhundleni sokufunda amafayela ayishumi kusuka kudiski, sifunda eyodwa, eya ngokushesha ku-cache yekhasi.

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

Uhlu lwe-VMA lwefayela luhlala lungashadile (sikhipha inkumbulo) futhi lufundwa kudiski izikhathi ezimbalwa (ukonga ama-iops). Isikhwama sethu esivamile sitholakala ku-SSD - inzuzo eyengeziwe ngesivinini.

Isibonelo sokulondoloza ifayela /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

Sibala ukusebenza kahle kokusetshenziswa iskripthi esenziwe ngomumo.

Lesi script sidlula kuzo zonke iziqukathi ku-node, sibala amafayela agcinwe kunqolobane yesiqukathi ngasinye.

[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

Ngakho-ke, kusuka enkumbulweni sigcina ama-gigabytes angama-40 wamafayela ezitsheni; azolayishwa kusuka kunqolobane.

Ukuze lo mshini usebenze kangcono nakakhulu, kuyadingeka ukubeka i-VPS "efana" kakhulu endaweni. Isibonelo, lezo umsebenzisi angenakho ukufinyelela okuyimpande futhi lapho imvelo esuka esithombeni esisetshenzisiwe ilungiswa.

Ungashuna i-pfcache ngefayela lokumisa
/etc/vz/pfcache.conf

MINSIZE, MAXSIZE – ubuncane/ubuningi bosayizi wefayela wokugcinwa kwesikhashana
TIMEOUT – isikhathi siphelile phakathi kwemizamo yokugcina isikhashana

Ungabuka uhlu olugcwele lwamapharamitha isixhumanisi.

Source: www.habr.com

Engeza amazwana