เบซเบเบถเปเบเปเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบญเบเบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเปเบฎเบเบเบดเปเบเปเบกเปเบเปเบเบทเปเบญเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฒเบเบเปเบฒเปเบเปเบญเบธเบเบฐเบเบญเบเบเบตเปเบกเบตเบขเบนเปเปเบเบทเปเบญเบชเบฐเบซเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบกเบตเบเบธเบเบเบฐเบเบฒเบเบชเบนเบเปเบซเปเบเบฑเบเบเบนเปเปเบเปเบชเบธเบเบเปเบฒเบ. เบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบชเบธเบเบเปเบฒเบเปเบกเปเบเบเปเบฒเบเบฑเบเบชเบฐเปเบซเบกเบต, เปเบเปเบเปเบฒเบเบงเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบฅเบนเบเบเปเบฒเบเบตเปเปเบเบฑเบเปเบเบปเปเบฒเบเบฒเบ, เปเบฅเบฐเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบ VPS, เบชเบฒเบกเบฒเบเปเบเบเบเปเบฒเบเบเบฑเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ. เบญเปเบฒเบเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบตเบเบเบปเปเบเปเบกเปเปเบฅเบฐเบเบดเบเปเบเบตเปเบเบตเบเบฒเบเปเบเปเบเบฒเบเบเบฑเบ.
เบเบฒเบเบเบตเบเบญเบฑเบ VPS เปเบเบดเบเปเบซเบเบเปเบเปเบเบเบเบตเปเบฅเบนเบเบเปเบฒเบเปเปเบฎเบนเปเบชเบถเบเบงเปเบฒเบกเบฑเบเบเปเบงเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฒเบเบเปเบฒเบเปเบชเบเบเบฐเบเบดเบเบเบญเบเบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเปเบฎเบเบเบดเปเบเปเบเป. เปเบเปเบเบญเบ, node เบเปเปเบเบงเบเบฅเบฐเปเบเบตเบเบขเบนเป seams เบเปเบฒเบกเบฑเบเบเบทเบ crammed เปเบเบฑเบกเปเบเบเปเบงเบเบเบฑเบเบเบธ, เปเบฅเบฐเบเบฒเบเปเบเบตเปเบกเบเบถเปเบเบเบญเบเบเบฒเบเปเบซเบผเบเปเบกเปเบเบฎเบนเปเบชเบถเบเบเบฑเบเบเบตเปเบเบเบฅเบนเบเบเปเบฒเบเบฑเบเบซเบกเบปเบ.
เบเปเบฒเบเบงเบ VPS เบชเบฒเบกเบฒเบเบเบทเบเปเบฎเบเบขเบนเปเปเบเบซเบเบถเปเบ node เปเบกเปเบเบเบถเปเบเบเบฑเบเบซเบผเบฒเบเบเบฑเบเปเบ, เบเบตเปเบเบฐเปเบเปเบเปเบเบฑเปเบ:
1. เบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเบฎเบฒเบเปเบงเบเบญเบ node เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ
2. เบเบฐเบซเบเบฒเบ VPS
3. เบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเบเบฒเบเปเบซเบผเบเปเบ VPS
4. เปเบเบฑเบเปเบเปเบฅเบเบตเบเบญเบเปเบงเบเบตเปเบเปเบงเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบงเบฒเบกเบซเบเบฒเปเบซเบเปเบ
เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบเบเบฑเบเบเบฐเบชเบปเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบฑเบเปเบเปเบฅเบขเบต Pfcache เบชเปเบฒเบฅเบฑเบ Virtuozzo.
เบเบงเบเปเบฎเบปเบฒเปเบเปเบชเบฒเบเบฒเบเบต 6, เปเบเปเบเบธเบเบขเปเบฒเบเบเบตเปเปเบงเบปเปเบฒเปเบกเปเบเบเบฑเบเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบชเปเบฒเบฅเบฑเบเบชเบฒเบเบฒ 7.
เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบกเบฑเบเบเบฐเบเบญเบเบเปเบงเบ:
1. เบฅเบฐเบซเบฑเบ Kernel
2. User-space demon
3. เบญเบธเบเบฐเปเบเบ - เบเบทเปเบเบเบตเป
เปเบเบเปเบฒเบเบเบญเบ node, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบฑเบเบเบฒเบเบชเปเบงเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบเบฐเบชเปเบฒเบเปเบเบฅเปเบเบตเปเบเบฐเบเบทเบเบเปเบฒเปเบเปเปเบเบเบเบปเบเปเบเบ VPS เบเบฑเบเบซเบกเบปเบเปเบ node. เบญเบธเบเบฐเบเบญเบ block ploop เบเบทเบเบเบดเบเบเบฑเปเบเบขเบนเปเปเบเบชเปเบงเบเบเบตเป. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบกเบทเปเบญเบเบนเปเบเบญเบเปเบเบเปเบเบตเปเบฅเบตเปเบกเบเบปเปเบ, เบกเบฑเบเปเบเปเบฎเบฑเบเบเบฒเบเบญเปเบฒเบเบญเบตเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเป:
[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
...
เบเบตเปเปเบกเปเบเบชเบฐเบเบดเบเบดเปเบเบเบเบฐเบกเบฒเบเบเปเบฝเบงเบเบฑเบเบเปเบฒเบเบงเบเบเบญเบเปเบเบฅเปเบขเบนเปเปเบเบซเบเบถเปเบเบเบญเบ nodes เบเบญเบเบเบงเบเปเบฎเบปเบฒ:
[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 เบเบญเบเปเบเบฅเปเบเบตเป. เบเปเปเปเบกเปเบเปเบเบฅเปเบเบฑเบเปเบปเบเบเบทเบเบเบฐเบกเบงเบเบเบปเบ, เปเบเปเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต /usr, /bin, /usr/sbin, /sbin, /lib, /lib64 เปเบเบปเปเบฒเบเบฑเปเบ
โข เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบซเบผเบฒเบเบเบตเปเบชเบธเบเบงเปเบฒเปเบเบฅเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบซเบผเบปเปเบฒเบเบตเปเบเบฐเบเบทเบ โเปเบเปเบเบเบฑเบโ เปเบฅเบฐเบเบฐเบเบทเบเปเบเปเปเบเบเบซเบผเบฒเบเบเบฑเบเบเบธ;
โข Pfcached เปเบเบฑเบเปเบฅเบเบฐเปเบเบฑเบเบเปเบฒเบชเบฐเบเบดเบเบดเบเปเบฝเบงเบเบฑเบเบเบฒเบเบญเปเบฒเบเปเบเบฅเปเบเบฒเบ kernel, เบงเบดเปเบเบฒเบฐเบกเบฑเบ, เปเบฅเบฐเปเบเบตเปเบกเปเบเบฅเปเปเบ cache เบเปเบฒเบเบงเบเปเบเบปเบฒเบเบทเบเบเปเบฒเปเบเปเปเบฅเบทเปเบญเบเป;
โขเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบซเบผเบปเปเบฒเบเบตเปเบญเบฒเบเบเบฐเปเบเบเบเปเบฒเบเบเบฑเบเปเบฅเบฐเบเบทเบเบเบฑเปเบเบเปเบฒเปเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ.
โข เปเบกเบทเปเบญเบญเปเบฒเบเปเบเบฅเป, เบกเบฑเบเบเบทเบเบเบงเบเปเบเบดเปเบเบงเปเบฒเบกเบฑเบเบกเบต hash เบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบฐเบซเบเบฒเบ xattr เบซเบผเบทเบเปเป. เบเปเบฒเบกเบฑเบเบกเบต, เปเบเบฅเป "เบเบปเปเบงเปเบ" เบเบทเบเปเบเบตเบเปเบเบเบเบตเปเบเบฐเปเบเบฑเบเปเบเบฅเปเบเบฑเบเบเบธ. เบเบฒเบเบเบปเบเปเบเบเบเบตเปเปเบเบตเบเบเบถเปเบเปเบเบ unnoticed เปเบเบเบฅเบฐเบซเบฑเบ container เปเบฅเบฐเบเบทเบเปเบเบทเปเบญเบเปเบงเปเปเบ kernel;
โข เปเบกเบทเปเบญเบเบฝเบเปเบชเปเปเบเบฅเป, hash เบเปเปเบเบทเบเบเปเบญเบ. เบเบฑเปเบเบเบฑเปเบ, เปเบเบเบฑเปเบเบเปเปเปเบเบเบตเปเบเปเบฒเบเปเบเบตเบเบกเบฑเบ, เปเบเบฅเป container เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบเบเบฐเบเบทเบเปเบเบตเบ, เปเบฅเบฐเบเปเปเปเบกเปเบ cache เบเบญเบเบกเบฑเบ.
เปเบเบเบเบฒเบเบฎเบฑเบเบชเบฒเปเบเบฅเปเบเบตเปเปเบเปเบเบเบฑเบเบเบฒเบ /vz/pfcache เปเบ cache เบเบญเบเบซเบเปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบฅเบธเบเบฒเบเบเบฐเบซเบเบฑเบเปเบ cache เบเบตเปเปเบญเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบเบฐเบซเบเบฑเบเปเบ IOPS. เปเบเบเบเบตเปเบเบฐเบญเปเบฒเบเบชเบดเบเปเบเบฅเปเบเบฒเบเปเบเปเบ, เบเบงเบเปเบฎเบปเบฒเบญเปเบฒเบเบซเบเบถเปเบ, เปเบเบดเปเบเบเบฑเบเบเบตเปเบเบซเบฒ 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
เบเบงเบเปเบฎเบปเบฒเบเบดเบเปเบฅเปเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเป
เบชเบฐเบเบฃเบดเบเบเบตเปเบเปเบฒเบเบเบธเบ container เบขเบนเปเปเบ node, เบเบฒเบเบเบดเบเปเบฅเปเปเบเบฅเป cache เบเบญเบเปเบเปเบฅเบฐ container.
[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
เบเบฑเปเบเบเบฑเปเบ, เบเบฒเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเบซเบเบฑเบเปเบเบฅเปเบเบฐเบกเบฒเบ 40 gigabytes เปเบเบเบฑเบ; เบเบงเบเบกเบฑเบเบเบฐเบเบทเบเปเบซเบฅเบเบเบฒเบ cache.
เปเบเบทเปเบญเปเบซเปเบเบปเบเปเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเปเบเปเบเบตเบเบงเปเบฒ, เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบงเบฒเบ VPS เบเบตเป "เบเบทเบเบฑเบ" เบเบตเปเบชเบธเบเบขเบนเปเปเบ node. เบเบปเบงเบขเปเบฒเบ, เบเบนเปเปเบเปเบเบตเปเบเปเปเบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบฎเบฒเบเปเบฅเบฐเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฒเบเบฎเบนเบเบเบฒเบเบเบตเปเบเบทเบเบเปเบฒเปเบเปเบเบทเบเบเบฑเปเบเบเปเบฒ.
เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบ pfcache เบเปเบฒเบเปเบเบฅเป config
/etc/vz/pfcache.conf
MINSIZE, MAXSIZE โ เบเบฐเปเบฒเบเปเบเบฅเปเบเปเปเบฒเบชเบธเบ/เบชเบนเบเบชเบธเบเบชเบณเบฅเบฑเบเบเบฒเบเบเบฑเบเปเบเบฑเบเบเปเปเบกเบนเบ
TIMEOUT โ เปเบปเบเปเบงเบฅเบฒเบฅเบฐเบซเบงเปเบฒเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเปเบเบฑเบเบเปเปเบกเบนเบ
เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบเบฑเบกเบเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com