PFCACHE තාක්ෂණය භාවිතයෙන් නෝඩයක් මත බහාලුම් ඝනත්වය වැඩි කිරීම

PFCACHE තාක්ෂණය භාවිතයෙන් නෝඩයක් මත බහාලුම් ඝනත්වය වැඩි කිරීම

සත්කාරක සැපයුම්කරුගේ එක් ඉලක්කයක් වන්නේ අවසාන පරිශීලකයින්ට ගුණාත්මක සේවාවක් සැපයීම සඳහා පවතින උපකරණ උපරිම ලෙස භාවිතා කිරීමයි. අවසාන සේවාදායකයන්ගේ සම්පත් සෑම විටම සීමිත වේ, නමුත් සත්කාරක සේවාදායක සේවා ගණන, සහ අපගේ නඩුවේදී අපි VPS ගැන කතා කරමු, සැලකිය යුතු ලෙස වෙනස් විය හැකිය. ගසට නැඟීම සහ කපන ලද යටින් බර්ගර් කන්න ආකාරය ගැන කියවන්න.

සේවාදායකයාට එය කිසිසේත් දැනෙන්නේ නැති ආකාරයට නෝඩයක් මත VPS සංයුක්ත කිරීම ඕනෑම සත්කාරක සපයන්නෙකුගේ ආර්ථික ක්‍රියාකාරිත්වය වැඩි කිරීමට උපකාරී වේ. ඇත්ත වශයෙන්ම, නෝඩයක් බහාලුම්වලින් පිරී තිබේ නම් එය මැහුම් වලදී පුපුරා නොයා යුතු අතර, ඕනෑම බර වැඩිවීමක් සියලුම සේවාදායකයින්ට වහාම දැනේ.

එක් නෝඩයක් මත VPS කීයක් සත්කාරක කළ හැකිද යන්න බොහෝ සාධක මත රඳා පවතී, එවැනි පැහැදිලි ඒවා:

1. නෝඩයේ දෘඪාංගයේ ලක්ෂණ
2. VPS ප්රමාණය
3. VPS මත පැටවීමේ ස්වභාවය
4. ඝනත්වය ප්‍රශස්ත කිරීමට උපකාරී වන මෘදුකාංග තාක්ෂණය

මෙම අවස්ථාවේදී, අපි Virtuozzo සඳහා Pfcache තාක්ෂණය භාවිතා කිරීමේ අපගේ අත්දැකීම් බෙදා ගන්නෙමු.
අපි 6 වෙනි ශාඛාව භාවිතා කරනවා, නමුත් 7 වෙනියට කියපු හැම දෙයක්ම ඇත්ත.

Pfcache - බහාලුම්වල IOPS සහ RAM අඩු කිරීමට උපකාරී වන Virtuozzo යාන්ත්‍රණයක්, බහාලුම්වල සමාන ගොනු වෙනම පොදු ප්‍රදේශයකට වෙන් කරයි.

ඇත්ත වශයෙන්ම එය සමන්විත වන්නේ:
1. කර්නල් කේතය
2. User-space demon
3. පරිශීලක-අවකාශ උපයෝගිතා

නෝඩ් පැත්තේ, අපි නෝඩයේ ඇති සියලුම VPS විසින් කෙලින්ම භාවිතා කරන ගොනු සාදනු ලබන සම්පූර්ණ කොටසක් වෙන් කරමු. මෙම කොටසෙහි බ්ලොක් 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
...

මෙන්න අපගේ එක් නෝඩ් එකක ඇති ගොනු ගණන පිළිබඳ ආසන්න සංඛ්‍යාලේඛන:

[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 හි මූලධර්මය පහත පරිදි වේ:
• පරිශීලක-අවකාශ ඩීමන් Pfcached මෙම ගොනුවේ xattr ගුණාංගයට ගොනුවේ sha-1 හැෂ් ලියයි. සියලුම ගොනු සකසනු නොලැබේ, නමුත් /usr, /bin, /usr/sbin, /sbin, /lib, /lib64 නාමාවලි තුළ පමණි.

• මෙම නාමාවලිවල ඇති ගොනු "බෙදාගැනීම" සහ බහාලුම් කිහිපයකින් භාවිතා කිරීමට බොහෝ දුරට ඉඩ ඇත;

• Pfcached විසින් කර්නලයෙන් ගොනු කියවීම පිළිබඳ සංඛ්‍යාලේඛන වරින් වර එකතු කරයි, එය විශ්ලේෂණය කරයි, සහ ඒවා නිතර භාවිතා කරන්නේ නම් හැඹිලියට ගොනු එක් කරයි;

• මෙම නාමාවලි වෙනස් විය හැකි අතර ඒවා වින්‍යාස ගොනු තුළ වින්‍යාස කර ඇත.

• ගොනුවක් කියවන විට, එහි xattr විස්තීරණ ගුණාංගවල සඳහන් කර ඇති හැෂ් තිබේ දැයි පරීක්ෂා කරනු ලැබේ. එහි අඩංගු නම්, බහාලුම් ගොනුව වෙනුවට "සාමාන්ය" ගොනුව විවෘත වේ. මෙම ආදේශනය බහාලුම් කේතය මගින් නොදැනෙන අතර කර්නලය තුළ සඟවා ඇත;

• ගොනුවකට ලියන විට, හැෂ් අවලංගු වේ. මේ අනුව, ඔබ ඊළඟ වතාවේ එය විවෘත කරන විට, බහාලුම් ගොනුව ම විවෘත වනු ඇත, එහි හැඹිලිය නොවේ.

/vz/pfcache වෙතින් බෙදාගත් ගොනු පිටු හැඹිලියේ තබා ගැනීමෙන්, අපි මෙම හැඹිලිය තුළම ඉතුරුම් මෙන්ම IOPS හි ඉතිරිකිරීම් ද ලබා ගනිමු. තැටියෙන් ගොනු දහයක් කියවීම වෙනුවට, අපි එකක් කියවමු, එය වහාම පිටු හැඹිලියට යයි.

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

අපි භාවිතයේ කාර්යක්ෂමතාව ගණනය කරමු සූදානම් කළ පිටපත.

මෙම ස්ක්‍රිප්ට් එක නෝඩයේ ඇති සියලුම බහාලුම් හරහා ගමන් කරයි, එක් එක් බහාලුම්වල හැඹිලිගත ගොනු ගණනය කරයි.

[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 ක් පමණ සුරකිමු; ඒවා හැඹිලියෙන් පටවනු ලැබේ.

මෙම යාන්ත්‍රණය වඩාත් හොඳින් ක්‍රියා කිරීම සඳහා, නෝඩයේ වඩාත්ම “සමාන” VPS තැබීම අවශ්‍ය වේ. උදාහරණයක් ලෙස, පරිශීලකයාට root ප්‍රවේශය නොමැති සහ යොදවා ඇති රූපයෙන් පරිසරය වින්‍යාස කර ඇති ඒවා.

ඔබට config ගොනුව හරහා pfcache සුසර කළ හැකිය
/etc/vz/pfcache.conf

කුඩා, MAXSIZE - හැඹිලිගත කිරීම සඳහා අවම/උපරිම ගොනු ප්‍රමාණය
TIMEOUT - හැඹිලිගත කිරීමේ උත්සාහයන් අතර කල් ඉකුත්වීම

ඔබට සම්පූර්ණ පරාමිති ලැයිස්තුව නැරඹිය හැකිය ලින්ක්.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න