PFCACHE సాంకేతికతను ఉపయోగించి నోడ్‌పై కంటైనర్ సాంద్రతను పెంచడం

PFCACHE సాంకేతికతను ఉపయోగించి నోడ్‌పై కంటైనర్ సాంద్రతను పెంచడం

హోస్టింగ్ ప్రొవైడర్ యొక్క లక్ష్యాలలో ఒకటి అంతిమ వినియోగదారులకు నాణ్యమైన సేవను అందించడానికి ఇప్పటికే ఉన్న పరికరాల వినియోగాన్ని గరిష్టీకరించడం. ఎండ్ సర్వర్‌ల వనరులు ఎల్లప్పుడూ పరిమితంగా ఉంటాయి, కానీ హోస్ట్ చేసిన క్లయింట్ సేవల సంఖ్య, మరియు మా విషయంలో మేము VPS గురించి మాట్లాడుతున్నాము, గణనీయంగా తేడా ఉంటుంది. చెట్టు ఎక్కి కట్ కింద బర్గర్ ఎలా తినాలో చదవండి.

క్లయింట్లు అస్సలు భావించని విధంగా నోడ్‌లో VPSని కుదించడం ఏదైనా హోస్టింగ్ ప్రొవైడర్ యొక్క ఆర్థిక పనితీరును పెంచడంలో సహాయపడుతుంది. వాస్తవానికి, ఒక నోడ్ పూర్తిగా కంటైనర్లతో నిండి ఉంటే అతుకుల వద్ద పగిలిపోకూడదు మరియు లోడ్లో ఏదైనా పెరుగుదల వెంటనే ఖాతాదారులందరికీ అనుభూతి చెందుతుంది.

ఒక నోడ్‌లో ఎన్ని VPSని హోస్ట్ చేయవచ్చు అనేది అనేక అంశాలపై ఆధారపడి ఉంటుంది, అటువంటి స్పష్టమైనవి:

1. నోడ్ యొక్క హార్డ్‌వేర్ యొక్క లక్షణాలు
2. VPS పరిమాణం
3. VPS పై లోడ్ యొక్క స్వభావం
4. సాంద్రతను ఆప్టిమైజ్ చేయడంలో సహాయపడే సాఫ్ట్‌వేర్ సాంకేతికతలు

ఈ సందర్భంలో, మేము Virtuozzo కోసం Pfcache సాంకేతికతను ఉపయోగించి మా అనుభవాన్ని పంచుకుంటాము.
మేము 6వ శాఖను ఉపయోగిస్తాము, కానీ 7వది కోసం చెప్పినవన్నీ కూడా నిజం.

Pfcache – కంటెయినర్లలో IOPS మరియు RAMని తగ్గించడంలో సహాయపడే ఒక Virtuozzo మెకానిజం, కంటైనర్‌లలో ఒకే రకమైన ఫైల్‌లను ప్రత్యేక ఉమ్మడి ప్రాంతానికి కేటాయించడం.

వాస్తవానికి ఇది వీటిని కలిగి ఉంటుంది:
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 జాబితా సింగిల్‌గా ఉంటుంది (మేము మెమరీని తగ్గించుకుంటాము) మరియు డిస్క్ నుండి తక్కువ తరచుగా చదవబడుతుంది (iopలను సేవ్ చేయడం). మా సాధారణ ఫండ్ 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

కనిష్టీకరించు, MAXSIZE – కాషింగ్ కోసం కనిష్ట/గరిష్ట ఫైల్ పరిమాణం
TIMEOUT – కాషింగ్ ప్రయత్నాల మధ్య సమయం ముగిసింది

మీరు పారామితుల పూర్తి జాబితాను చూడవచ్చు లింక్.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి