د PFCACHE ټیکنالوژۍ په کارولو سره په نوډ کې د کانټینر کثافت زیاتول

د PFCACHE ټیکنالوژۍ په کارولو سره په نوډ کې د کانټینر کثافت زیاتول

د کوربه چمتو کونکي یو له اهدافو څخه دا دی چې د موجوده تجهیزاتو کارول اعظمي کړي ترڅو پای کاروونکو ته د لوړ کیفیت خدمت چمتو کړي. د پای سرورونو سرچینې تل محدود وي، مګر د کوربه پیرودونکو خدماتو شمیر، او زموږ په قضیه کې موږ د VPS په اړه خبرې کوو، د پام وړ توپیر کولی شي. د ونې د پورته کولو څرنګوالي په اړه ولولئ او د کټ لاندې برګر وخورئ.

په نوډ کې د VPS تړون کول په داسې ډول چې پیرودونکي دا احساس نه کوي د هر کوربه چمتو کونکي اقتصادي فعالیت زیاتولو کې خورا مرسته کوي. البته، یو نوډ باید په سیندونو کې ونه مات شي که چیرې دا د کانټینرونو څخه ډک وي، او په بار کې هر ډول زیاتوالی د ټولو پیرودونکو لخوا سمدلاسه احساس کیږي.

په یو نوډ کې څومره VPS کوربه کیدی شي په ډیری فاکتورونو پورې اړه لري ، لکه څرګند دي لکه:

1. پخپله د نوډ د هارډویر ځانګړتیاوې
2. د VPS اندازه
3. په VPS کې د بار نوعیت
4. د سافټویر ټیکنالوژي چې د کثافت غوره کولو کې مرسته کوي

پدې حالت کې، موږ به د Virtuozzo لپاره د Pfcache ټیکنالوژۍ کارولو تجربه شریک کړو.
موږ شپږمه څانګه کاروو، مګر هرڅه چې ویل شوي د 6 لپاره هم ریښتیا دي.

Pfcache - د Virtuozzo میکانیزم چې په کانټینرونو کې د IOPS او RAM د نقل کولو کې مرسته کوي، په کانټینرونو کې ورته فایلونه په جلا مشترکه ساحه کې تخصیص کوي.

په حقیقت کې دا عبارت دي له:
1. د کرنل کوډ
2. د کارن ځای شیطان
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 ځانګړتیا ته د فایل شا-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 ځای په ځای کړئ. د مثال په توګه، هغه څه چې کاروونکي یې ریښې ته لاسرسی نلري او په کوم کې د ګمارل شوي عکس څخه چاپیریال تنظیم شوی.

تاسو کولی شئ د ترتیب فایل له لارې pfcache تنظیم کړئ
/etc/vz/pfcache.conf

MINSIZE، MAXSIZE - د کیچ کولو لپاره لږترلږه / اعظمي فایل اندازه
TIMEOUT - د کیچ کولو هڅو ترمینځ وخت پای

تاسو کولی شئ د پیرامیټونو بشپړ لیست وګورئ مخونه.

سرچینه: www.habr.com

Add a comment