PFCACHE ٽيڪنالاجي استعمال ڪندي نوڊ تي ڪنٽينر جي کثافت کي وڌائڻ

PFCACHE ٽيڪنالاجي استعمال ڪندي نوڊ تي ڪنٽينر جي کثافت کي وڌائڻ

هوسٽنگ فراهم ڪندڙ جي مقصدن مان هڪ آهي موجوده سامان جي استعمال کي وڌائڻ لاءِ ته جيئن صارفين کي اعليٰ معيار جي خدمت مهيا ڪري سگهجي. آخري سرور جا وسيلا هميشه محدود هوندا آهن، پر ميزبان ڪيل ڪلائنٽ سروسز جو تعداد، ۽ اسان جي صورت ۾ اسين ڳالهائي رهيا آهيون VPS، خاص طور تي مختلف ٿي سگهن ٿا. پڙهو ڪيئن وڻ تي چڙهڻ ۽ کٽ هيٺ برگر کائڻ.

هڪ نوڊ تي وي پي ايس کي ترتيب ڏيڻ اهڙي طرح ته گراهڪ اهو محسوس نه ڪن ته ڪنهن به هوسٽنگ فراهم ڪندڙ جي اقتصادي ڪارڪردگي کي وڌائڻ ۾ مدد ڪري ٿي. يقينن، هڪ نوڊ کي سيل تي نه دفن ٿيڻ گهرجي جيڪڏهن اهو ڪنٽينر سان ڀريل هجي، ۽ لوڊ ۾ ڪنهن به اضافو فوري طور تي سڀني گراهڪن طرفان محسوس ڪيو ويندو آهي.

هڪ نوڊ تي ڪيترا وي پي ايس ميزباني ڪري سگهجن ٿا ڪيترن ئي عنصر تي منحصر آهن، جهڙوڪ واضح طور تي:

1. خود نوڊ جي هارڊويئر جون خاصيتون
2. VPS سائيز
3. VPS تي لوڊ جي فطرت
4. سافٽ ويئر ٽيڪنالاجيون جيڪي مدد ڪن ٿيون کثافت کي بهتر ڪرڻ

انهي صورت ۾، اسان Virtuozzo لاء Pfcache ٽيڪنالاجي استعمال ڪرڻ جو تجربو حصيداري ڪنداسين.
اسان 6th شاخ استعمال ڪندا آهيون، پر سڀ ڪجهه چيو ويندو آهي 7th لاء پڻ صحيح آهي.

Pfcache - هڪ Virtuozzo ميڪانيزم جيڪو ڪنٽينرز ۾ IOPS ۽ RAM کي نقل ڪرڻ ۾ مدد ڪري ٿو، ڪنٽينرز ۾ هڪجهڙائي واري فائلن کي الڳ عام علائقي ۾ مختص ڪري ٿو.

حقيقت ۾ ان تي مشتمل آهي:
1. ڪنيل ڪوڊ
2. يوزر اسپيس شيطان
3. يوزر-اسپيس يوٽيلٽيز

نوڊ جي پاسي تي، اسان هڪ مڪمل سيڪشن مختص ڪندا آهيون جنهن ۾ فائلون ٺاهي وينديون آهن جيڪي سڌو سنئون استعمال ڪيا ويندا 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
...

هتي اسان جي هڪ نوڊس تي فائلن جي تعداد تي لڳ ڀڳ انگ اکر آهن:

[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 فائل جي sha-1 هيش کي هن فائل جي xattr وصف ڏانهن لکي ٿو. نه سڀئي فائلون پروسيس ٿيل آهن، پر صرف /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

تبصرو شامل ڪريو