hosting áááºáá±á¬ááºááŸá¯áá±ážáá°á áááºááŸááºážáá»ááºáá»á¬ážáá²á០áá
áºáá¯ááẠáá¯á¶ážá
áœá²áá°áá»á¬ážá¡ááœáẠá¡áááºá¡ááœá±ážááŒáá·áº áááºáá±á¬ááºááŸá¯ááᯠáá±ážáá±á¬ááºááá¯ááºááẠááŸáááŒá®ážáá¬áž á
ááºáááááá¬áá»á¬ážááᯠá¡ááŒáá·áºáá¯á¶ážá¡áá¯á¶ážáá»áááºááŒá
áºáááºá á¡áá¯á¶ážáá¬áá¬áá»á¬ážááááºážááŒá
áºáá»á¬ážááẠá¡ááŒá²áááºážá¡ááá·áºá¡áááºááŸááá±á¬áºáááºáž áááºáá¶áá¬ážááá·áº client áááºáá±á¬ááºááŸá¯á¡áá±á¡ááœááºááŸáá·áº VPS á¡ááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·ááŒá±á¬áá±ááá·áºááá
á¹á
ááœááºáá° áááááá¬áá¬ááœá²ááŒá¬ážááá¯ááºáááºá áá
áºáááºáá±á«áºáááºááŒá®áž ááŸá®ážááŒááºáá¬ážáá²á· áá¬áá«á
á¬ážáááºážá¡ááŒá±á¬ááºáž áááºááŒáá·áºáá«á
áá¯á¶ážá áœá²áá°áá»á¬ážá áááºážááᯠáá¯á¶ážá ááá¶á á¬ážáááá·áºáá¯á¶á á¶ááŒáá·áº node áá áºáá¯áá±á«áºááœáẠVPS ááᯠáá±ážáááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážááẠhosting áááºáá±á¬ááºááŸá¯áá±ážáá°ááá¯ááºážá á á®ážááœá¬ážáá±ážá áœááºážáá±á¬ááºáááºááᯠááá¯ážááŒáá·áºáá¬á á±áá«áááºá ááŸááºáá«áááºá ááœááºááááºáá¬áá»á¬ážááŸáá·áº ááŒáá·áºáá»ááºáá±áá«á node áá áºáá¯ááẠáá»á¯ááºááá¯ážáá»á¬ážá¡ááœááºáž ááá±á«ááºááá·áºáá²á áááºááŸáááŸá¯ ááŒáá·áºáááºáá¬ááŒááºážááᯠáá¯á¶ážá áœá²áá°á¡á¬ážáá¯á¶ážá០áá»ááºáá»ááºážáá¶á á¬ážááááºááŒá áºáááºá
node áá áºáá¯ááœáẠVPS áááºáá»áŸ host áá¯ááºááá¯ááºáááºá ááá¯áá²á·ááá¯á·áá±á¬ áááá¬áááºááŸá¬ážáá±á¬á¡áá»ááºáá»á¬ážá áœá¬áá±á«áºááœáẠáá°áááºáááº-
1. node ááá¯ááºááá¯ááºá hardware ááá¹ááá¬áá»á¬áž
2. VPS á¡ááœááºá¡á
á¬áž
3. VPS áá±á«áºááŸá load áááá±á¬ááá¬á
4. ááááºáááºážáááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá
áºá¡á±á¬áẠáá°áá®áá±ážáá±á¬ áá±á¬á·ááºáá²áááºážááá¬áá»á¬áž
á€ááá
á¹á
ááœááºá áá»áœááºá¯ááºááá¯á·ááẠVirtuozzo á¡ááœáẠPfcache áááºážááá¬ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá¡ááœá±á·á¡ááŒá¯á¶ááᯠáá»áŸáá±áá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠ6th áá¬áááœá²ááá¯á¡áá¯á¶ážááŒá¯áá±á¬áºáááºáž 7th á¡ááœááºááŸááºáá«áááºá
á¡ááŸááºááááºááœááºáááºážááœááºáá«áááºáááº:
1. Kernel áá¯ááº
2. á¡áá¯á¶ážááŒá¯áá°-á¡á¬áá¬ááááºááá¯áž
3. á¡áá¯á¶ážááŒá¯áá°-á¡á¬áá¬á á¡áá¯á¶ážáááºááŸá¯áá»á¬áž
node áááºááœááºá node áá±á«áºááŸá VPS á¡á¬ážáá¯á¶ážá០ááá¯ááºááá¯ááºá¡áá¯á¶ážááŒá¯ááá·áº ááá¯ááºáá»á¬ážááᯠáááºáá®ážááá·áº á¡ááá¯ááºážáá áºáá¯áá¯á¶ážááᯠááœá²áá±áá±ážáá«áááºá á€ááá¹áááœáẠááá±á¬ááºáá¯á¶ážáááááá¬ááᯠáááºáááºáá¬ážáááºá ááá¯á·áá±á¬ááºá ááœááºááááºáá¬á áááºáá±á¬á¡áá«á áááºážááẠá€ááá¹áá¡ááœáẠááá¯ážáá¬ážáá»ááºááᯠáááºáá¶áááŸááááº-
[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
...
á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á·á node áá áºáá¯ááŸá ááá¯ááºá¡áá±á¡ááœááºááŸáá·áºáááºáááºááá·áº ááá·áºááŸááºážááŒá±á á¬áááºážááá¬ážáá»á¬ážááŒá áºáááº-
[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 ááááá¬ááááºá¡á±á¬ááºáá«á¡ááá¯ááºážááŒá
áºáááºá
⢠user-space daemon Pfcached ááẠááá¯ááºá sha-1 hash ááᯠá€ááá¯ááºá xattr attribute ááá¯á· áá±ážáááºá ááá¯ááºá¡á¬ážáá¯á¶ážááᯠáá¯ááºáá±á¬ááºááŒááºážááá¯ááºáá±á¬áºáááºáž /usr, /bin, /usr/sbin, /sbin, /lib, /lib64 áááºážááœáŸááºáá»á¬ážááœááºáá¬
⢠á€áááºážááœáŸááºáá»á¬ážááŸáááá¯ááºáá»á¬ážááᯠ"áá»áŸáá±áááº" ááŒá áºáᬠááœááºááááºáá¬á¡áá»á¬ážá¡ááŒá¬ážá á¡áá¯á¶ážááŒá¯áááá·áºááẠááŒá áºááá¯ááºááŒá±áá»á¬ážáá«áááºá
⢠Pfcached ááẠkernel á០ááá¯ááºáá»á¬ážááá¯áááºááŸá¯ááŒááºážááá¯ááºáᬠá á¬áááºážá¡ááºážáá»á¬ážááᯠá¡áá«á¡á¬ážáá»á±á¬áºá áœá¬ á á¯áá±á¬ááºážááŒá®ážá áááºážááᯠááá¯ááºážááŒá¬ážá áááºááŒá¬áᬠáááºážááá¯á·ááᯠáááŒá¬ááá¡áá¯á¶ážááŒá¯áá«á áááºááŸáºááá¯á· ááá¯ááºáá»á¬ážááᯠáá±á«ááºážááá·áºáááºá
⢠á€áááºážááœáŸááºáá»ááºáá»á¬ážááẠááœá²ááŒá¬ážááá¯ááºááŒá®áž configuration files áá»á¬ážááœáẠconfigure áá¯ááºáá¬ážáá«áááºá
⢠ááá¯ááºááá¯áááºááá·áºá¡áá«á xattr ááá¯ážáá»á²á·áá¬ážáá±á¬ attributes ááœáẠáááºááŸááºáá¬ážáá±á¬ hash áá«áááºááŒááºážááŸááááŸá á á áºáá±ážáááºááŒá áºáááºá áááºážááœááºáá«áááºáá«áá ááœááºááááºáá¬ááá¯ááºá¡á á¬áž "á¡ááœá±ááœá±" ááá¯ááºááá¯ááœáá·áºáááºá á€á¡á á¬ážááá¯ážááŸá¯ááẠááœááºááááºáá¬áá¯ááºááŒáá·áº ááááááŒá¯áááá² kernel ááœáẠááŸááºáá¬ážáááºá
⢠ááá¯ááºáá áºáá¯ááá¯á· á á¬áá±ážáá±á¬á¡áá«á hash ááẠáá»ááºááœá¬ážáá«áááºá ááá¯á·ááŒá±á¬áá·áº áá±á¬ááºáá áºááŒáááºááœáá·áºááá·áºá¡áá«á ááœááºááááºáá¬ááá¯ááºááẠáááºážá cache ááá¯ááºáá² áááºážááá¯ááºááá¯ááºááœáá·áºááœá¬ážáááºááŒá áºáááºá
á á¬áá»ááºááŸá¬ cache ááœáẠ/vz/pfcache á០áá»áŸáá±áá¬ážáá±á¬ááá¯ááºáá»á¬ážááᯠááááºážáááºážááŒááºážááŒáá·áºá ဠcache ááá¯ááºááá¯ááºááœáẠá á¯áá±á¬ááºážááŸá¯áá»á¬ážá¡ááŒáẠIOPS ááœáẠááááºážáááºážááŸá¯áá»á¬ážáááºáž áááŸááá«áááºá disk á០ááá¯ááºáááºáá¯ááᯠáááºááá·áºá¡á á¬ážá á á¬áá»ááºááŸá¬ cache ááá¯á· áá»ááºáá»ááºážáá±á¬ááºááœá¬ážáá±á¬ ááá¯ááºáá áºáá¯ááᯠáá»áœááºá¯ááºááá¯á·áááºáá«áááºá
struct inode {
...
struct file *i_peer_file;
...
};
struct address_space {
...
struct list_head i_peer_list;
...
}
ááá¯ááºá¡ááœáẠVMA á á¬áááºážááẠáá áºáá¯áááºážáᬠáá»ááºááŸááá±á¬á·ááẠ(áá»áœááºá¯ááºááá¯á·ááẠáááºááá¯áá®ááᯠáááºáá°áááº) ááŸáá·áº áá áºááºá០áááŒá¬áá áááºáá±á·ááŸáááẠ(iops ááááºážáááºážáááº)á áá»áœááºá¯ááºááá¯á·á áá¯á¶áá¶áá¯á¶ááœá±ááẠSSD áá±á«áºááœáẠáááºááŸáááẠ- ááŒááºááŸá¯ááºážááœáẠá¡ááá¯á¡ááŒááºáá»á¬ážá
/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
áá»áœááºá¯ááºááá¯á·ááẠá¡áá¯á¶ážááŒá¯ááŸá¯á áááá±á¬ááºááŸá¯ááᯠááœááºáá»ááºáá«áááºá
ဠscript ááẠnode áá±á«áºááŸá container á¡á¬ážáá¯á¶ážááá¯ááŒááºá container áá áºáá¯á á®á cached files áá»á¬ážááá¯ááœááºáá»ááºáááºá
[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
ááá¯á·ááŒá±á¬áá·áº ááœááºááááºáá¬áá²ááœáẠááá¯áẠáá áá áºáá«ááá¯ááºááá·áºááᯠáááºááá¯áá®á០ááááºážáááºážáá¬ážáᬠáááºážááá¯á·ááᯠáááºááŸáºá០áááºáááºááŒá áºáááºá
á€ááá¹ááá¬ážááẠááá¯á áá±á¬ááºážááœááºá áœá¬ áá¯ááºáá±á¬ááºááá¯ááºá á±áááºá¡ááœááºá á¡áá»á¬ážáá¯á¶áž "áá°áá®áá±á¬" VPS ááᯠnode ááœáẠáá¬ážááẠááá¯á¡ááºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡áá¯á¶ážááŒá¯áá°ááœáẠroot access áááŸáááá·áºá¡áá¬áá»á¬ážááŸáá·áº á¡áá¯á¶ážááŒá¯áá¬ážááá·áºáá¯á¶á០áááºáááºážáá»ááºááᯠconfigure áá¯ááºáá¬ážááá·áºá¡áá¬áá»á¬ážá
config ááá¯ááºááŸáááá·áº pfcache ááá¯áá»áááºááŸáááá¯ááºáááºá
/etc/vz/pfcache.conf
MINSIZEá MAXSIZE â áááºááŸáºá¡ááœáẠá¡áááá·áºáá¯á¶áž/á¡ááŒáá·áºáá¯á¶áž ááá¯ááºá¡ááœááºá¡á
á¬áž
TIMEOUT â áááºááŸáºáá¯ááºááẠááŒáá¯ážá
á¬ážááŸá¯áá»á¬ážááŒá¬ážááœáẠá¡áá»áááºáá¯ááºááœá¬ážáááºá
ááá·áºáááºáá»ááºáá»á¬ážá
á¬áááºážá¡ááŒáá·áºá¡á
á¯á¶ááᯠáááºááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
source: www.habr.com