Ogmante dansite veso sou yon ne lè l sèvi avèk teknoloji PFCACHE

Ogmante dansite veso sou yon ne lè l sèvi avèk teknoloji PFCACHE

Youn nan objektif founisè hosting la se maksimize itilizasyon ekipman ki egziste deja yo nan lòd yo bay itilizatè final yo bon kalite sèvis. Resous yo nan fen serveurs yo toujou limite, men kantite sèvis kliyan anime, ak nan ka nou an nou ap pale de VPS, ka diferan anpil. Li sou kijan pou monte pye bwa a epi manje yon Burger anba koupe a.

Compact VPS sou yon ne nan yon fason ke kliyan pa santi li ditou anpil ede ogmante pèfòmans ekonomik nenpòt founisè hosting. Natirèlman, yon ne pa ta dwe pete nan kouti yo si li chaje plen ak resipyan, ak nenpòt vag nan chaj imedyatman santi pa tout kliyan.

Konbyen VPS ki ka anime sou yon sèl ne depann de anpil faktè, tankou moun ki evidan tankou:

1. Karakteristik pyès ki nan konpitè nan ne tèt li
2. VPS gwosè
3. Nati chaj la sou VPS la
4. Teknoloji lojisyèl ki ede optimize dansite

Nan ka sa a, nou pral pataje eksperyans nou nan itilize teknoloji Pfcache pou Virtuozzo.
Nou itilize branch 6yèm lan, men tout sa ki di se vre tou pou 7yèm lan.

Pfcache – yon mekanis Virtuozzo ki ede deduplike IOPS ak RAM nan resipyan yo, bay fichye ki idantik nan resipyan yo nan yon zòn komen separe.

An reyalite, li konsiste de:
1. Kòd Kernel
2. Itilizatè-espas demon
3. Itilizatè-espas sèvis piblik

Sou bò ne, nou asiyen yon seksyon antye nan ki dosye yo pral kreye ki pral dirèkteman itilize pa tout VPS sou ne la. Yon aparèy ploop blòk monte nan seksyon sa a. Lè sa a, lè veso a kòmanse, li resevwa yon referans pou seksyon sa a:

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

Men estatistik apwoksimatif sou kantite dosye sou youn nan nœuds nou yo:

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

Prensip pfcache se jan sa a:
• Daemon espas itilizatè Pfcached ekri hash sha-1 fichye a nan atribi xattr fichye sa a. Se pa tout dosye yo trete, men sèlman nan /usr, /bin, /usr/sbin, /sbin, /lib, /lib64 répertoires

• Li pi posib ke dosye yo nan anyè sa yo pral “pataje” epi yo pral itilize pa plizyè resipyan;

• Pfcached detanzantan kolekte estatistik sou lekti fichye ki soti nan nwayo a, analize li, epi ajoute fichye yo nan kach la si yo itilize yo souvan;

• Anyè sa yo ka diferan epi yo konfigirasyon nan dosye konfigirasyon.

• Lè w ap li yon fichye, li tcheke si li gen hash espesifye nan atribi pwolonje xattr yo. Si li genyen ladan li, dosye "jeneral" la louvri olye de fichye veso a. Ranplasman sa a fèt inapèsi pa kòd veso a epi li kache nan nwayo a;

• Lè w ap ekri nan yon dosye, hash la invalid. Kidonk, pwochen fwa ou louvri li, dosye veso a li menm yo pral louvri, epi li pa kachèt li yo.

Lè nou kenbe dosye pataje soti nan /vz/pfcache nan kachèt paj la, nou reyalize ekonomi nan kachèt sa a li menm, osi byen ke ekonomi nan IOPS Olye pou nou li dis fichye ki soti nan disk, nou li youn, ki imedyatman ale nan kachèt paj la.

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

Lis VMA pou fichye a rete yon sèl (nou deduplicate memwa) epi li nan disk mwens souvan (ekonomize iops). Fon komen nou an sitiye sou yon SSD - yon pwogrè adisyonèl nan vitès.

Egzanp pou kache fichye /bin/bash la:

[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

Nou kalkile efikasite nan itilizasyon ekriti pare yo.

Script sa a ale nan tout resipyan yo sou ne a, kalkile dosye yo kachèt nan chak veso.

[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

Kidonk, nan memwa nou sove apeprè 40 gigabyte nan dosye nan resipyan; yo pral chaje nan kachèt la.

Pou mekanis sa a travay menm pi byen, li nesesè yo mete VPS ki pi "idantik" sou ne la. Pou egzanp, moun ki itilizatè a pa gen aksè rasin ak sou ki anviwònman an soti nan imaj la deplwaye se configuré.

Ou ka melodi pfcache atravè fichye konfigirasyon an
/etc/vz/pfcache.conf

MINSIZE, MAXSIZE - gwosè dosye minimòm/maksimòm pou kachèt
TIMEOUT - delè ant tantativ kachèt

Ou ka wè lis konplè paramèt yo по ссылке.

Sous: www.habr.com

Add nouvo kòmantè