PFCACHE தொழில்நுட்பத்தைப் பயன்படுத்தி ஒரு முனையில் கொள்கலன் அடர்த்தியை அதிகரித்தல்

PFCACHE தொழில்நுட்பத்தைப் பயன்படுத்தி ஒரு முனையில் கொள்கலன் அடர்த்தியை அதிகரித்தல்

ஹோஸ்டிங் வழங்குநரின் குறிக்கோள்களில் ஒன்று, இறுதிப் பயனர்களுக்கு உயர்தர சேவையை வழங்குவதற்காக இருக்கும் உபகரணங்களின் பயன்பாட்டை அதிகப்படுத்துவதாகும். இறுதி சேவையகங்களின் வளங்கள் எப்போதும் குறைவாகவே இருக்கும், ஆனால் ஹோஸ்ட் செய்யப்பட்ட கிளையன்ட் சேவைகளின் எண்ணிக்கை, மற்றும் எங்கள் விஷயத்தில் நாங்கள் VPS பற்றி பேசுகிறோம், கணிசமாக வேறுபடலாம். மரத்தில் ஏறுவது மற்றும் வெட்டப்பட்ட கீழ் பர்கர் சாப்பிடுவது எப்படி என்பதைப் படியுங்கள்.

வாடிக்கையாளர்கள் உணராத வகையில் ஒரு முனையில் VPSஐச் சுருக்குவது எந்தவொரு ஹோஸ்டிங் வழங்குநரின் பொருளாதார செயல்திறனை அதிகரிக்க பெரிதும் உதவுகிறது. நிச்சயமாக, கொள்கலன்கள் நிரம்பியிருந்தால், ஒரு முனை சீம்களில் வெடிக்கக்கூடாது, மேலும் எந்த ஏற்றமும் அனைத்து வாடிக்கையாளர்களாலும் உடனடியாக உணரப்படும்.

ஒரு முனையில் எத்தனை VPS ஐ ஹோஸ்ட் செய்ய முடியும் என்பது பல காரணிகளைப் பொறுத்தது, இது போன்ற வெளிப்படையானவை:

1. முனையின் வன்பொருளின் சிறப்பியல்புகள்
2. VPS அளவு
3. VPS இல் சுமையின் தன்மை
4. அடர்த்தியை மேம்படுத்த உதவும் மென்பொருள் தொழில்நுட்பங்கள்

இந்த வழக்கில், Virtuozzo க்கு Pfcache தொழில்நுட்பத்தைப் பயன்படுத்திய அனுபவத்தைப் பகிர்ந்து கொள்வோம்.
நாங்கள் 6 வது கிளையைப் பயன்படுத்துகிறோம், ஆனால் 7 ஆம் தேதிக்குக் கூறப்பட்ட அனைத்தும் உண்மை.

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 இந்த கோப்பின் 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 பட்டியல் தனித்தனியாகவே உள்ளது (நாங்கள் நினைவகத்தை குறைக்கிறோம்) மேலும் வட்டில் இருந்து குறைவாகவே படிக்கப்படுகிறது (ஐயோப்களை சேமிக்கிறது). எங்கள் பொதுவான நிதி ஒரு 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 ஐ வைக்க வேண்டியது அவசியம். எடுத்துக்காட்டாக, பயனருக்கு ரூட் அணுகல் இல்லாதவை மற்றும் பயன்படுத்தப்பட்ட படத்திலிருந்து சூழல் கட்டமைக்கப்பட்டுள்ளது.

நீங்கள் config கோப்பு மூலம் pfcache ஐ டியூன் செய்யலாம்
/etc/vz/pfcache.conf

சிறிய அளவு, அதிகபட்சம் - தற்காலிக சேமிப்புக்கான குறைந்தபட்ச/அதிகபட்ச கோப்பு அளவு
TIMEOUT - கேச்சிங் முயற்சிகளுக்கு இடையே நேரம் முடிந்தது

அளவுருக்களின் முழு பட்டியலையும் நீங்கள் பார்க்கலாம் இணைப்பு.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்