Facebook TMO మెకానిజంను ప్రవేశపెట్టింది, ఇది సర్వర్‌లలో 20-32% మెమరీని ఆదా చేయడానికి మిమ్మల్ని అనుమతిస్తుంది

Facebookకి చెందిన ఇంజనీర్లు (రష్యన్ ఫెడరేషన్‌లో నిషేధించబడ్డారు) TMO (పారదర్శక మెమరీ ఆఫ్‌లోడింగ్) సాంకేతికత యొక్క గత సంవత్సరం అమలుపై ఒక నివేదికను ప్రచురించారు, ఇది NVMe వంటి చౌక డ్రైవ్‌లకు పనికి అవసరం లేని సెకండరీ డేటాను స్థానభ్రంశం చేయడం ద్వారా సర్వర్‌లపై RAMలో గణనీయమైన పొదుపును అనుమతిస్తుంది. SSD - డిస్క్‌లు. TMOని ఉపయోగించడం ద్వారా ప్రతి సర్వర్‌లో 20 నుండి 32% RAM ఆదా చేయవచ్చని Facebook అంచనా వేసింది. ఇన్‌ఫ్రాస్ట్రక్చర్‌లలో ఉపయోగం కోసం పరిష్కారం రూపొందించబడింది, ఇక్కడ అప్లికేషన్‌లు వివిక్త కంటైనర్‌లలో అమలు చేయబడతాయి. TMO యొక్క కెర్నల్ వైపు భాగాలు ఇప్పటికే Linux కెర్నల్‌లో చేర్చబడ్డాయి.

Linux కెర్నల్ వైపు, సాంకేతికతకు PSI (ప్రెజర్ స్టాల్ ఇన్ఫర్మేషన్) సబ్‌సిస్టమ్ మద్దతు ఇస్తుంది, ఇది విడుదల 4.20తో ప్రారంభమవుతుంది. PSI ఇప్పటికే వివిధ తక్కువ-మెమరీ హ్యాండ్లర్‌లలో ఉపయోగించబడింది మరియు వివిధ వనరులను (CPU, మెమరీ, I/O) పొందడం కోసం వేచి ఉండే సమయం గురించి సమాచారాన్ని విశ్లేషించడానికి మిమ్మల్ని అనుమతిస్తుంది. PSIతో, యూజర్-స్పేస్ ప్రాసెసర్‌లు సిస్టమ్ లోడ్ స్థాయిలు మరియు స్లోడౌన్ ప్యాటర్న్‌లను మరింత ఖచ్చితంగా అంచనా వేయగలవు, పనితీరుపై గుర్తించదగిన ప్రభావాన్ని చూపే ముందు క్రమరాహిత్యాలను ముందుగానే గుర్తించడానికి వీలు కల్పిస్తుంది.

వినియోగదారు స్థలంలో, TMO అనేది సెన్‌పై భాగం ద్వారా అందించబడుతుంది, ఇది cgroup2 ద్వారా, PSI నుండి స్వీకరించిన డేటా ఆధారంగా అప్లికేషన్ కంటైనర్‌ల కోసం మెమరీ పరిమితిని డైనమిక్‌గా సర్దుబాటు చేస్తుంది. సెన్‌పాయ్ PSI ద్వారా వనరుల కొరత ప్రారంభానికి సంబంధించిన సంకేతాలను విశ్లేషిస్తుంది, మెమరీ యాక్సెస్‌లో మందగింపులకు అప్లికేషన్‌ల సున్నితత్వాన్ని అంచనా వేస్తుంది మరియు కంటైనర్‌కు అవసరమైన కనీస మెమరీ పరిమాణాన్ని నిర్ణయించడానికి ప్రయత్నిస్తుంది, దీనిలో ఆపరేషన్‌కు అవసరమైన డేటా RAMలో ఉంటుంది మరియు దానితో పాటుగా ఫైల్ కాష్‌లో స్థిరపడిన లేదా ప్రస్తుతం నేరుగా ఉపయోగించబడని డేటా, స్వాప్ విభజనకు బలవంతంగా తీసివేయబడుతుంది.

Facebook TMO మెకానిజంను ప్రవేశపెట్టింది, ఇది సర్వర్‌లలో 20-32% మెమరీని ఆదా చేయడానికి మిమ్మల్ని అనుమతిస్తుంది

అందువల్ల, TMO యొక్క సారాంశం ఏమిటంటే, మెమరీ వినియోగం పరంగా ప్రక్రియలను కఠినమైన ఆహారంలో ఉంచడం, ఉపయోగించని మెమరీ పేజీల మార్పిడిని బలవంతంగా మార్చడం, దీని తొలగింపు పనితీరును గమనించదగ్గ విధంగా ప్రభావితం చేయదు (ఉదాహరణకు, ప్రారంభ సమయంలో మాత్రమే ఉపయోగించే కోడ్‌తో పేజీలు మరియు సింగిల్-యూజ్ డిస్క్ కాష్‌లోని డేటా). మెమరీ ఒత్తిడికి ప్రతిస్పందనగా స్వాప్ విభజనకు సమాచారాన్ని తొలగించడం వలె కాకుండా, TMO డేటా ప్రోయాక్టివ్ ప్రిడిక్షన్ ఆధారంగా తొలగించబడుతుంది.

తొలగింపు కోసం ప్రమాణాలలో ఒకటి మెమరీ పేజీకి 5 నిమిషాలు యాక్సెస్ లేకపోవడం. ఇటువంటి పేజీలను కోల్డ్ మెమరీ పేజీలు అని పిలుస్తారు మరియు సగటున అప్లికేషన్ మెమరీలో 35% ఉంటుంది (అప్లికేషన్ రకాన్ని బట్టి, 19% నుండి 65% వరకు పరిధి ఉంటుంది). ప్రింప్షన్ అనామక మెమరీ పేజీలు (అప్లికేషన్ ద్వారా కేటాయించబడిన మెమరీ) మరియు ఫైల్ కాషింగ్ కోసం ఉపయోగించే మెమరీ (కెర్నల్ ద్వారా కేటాయించబడింది)తో అనుబంధించబడిన కార్యాచరణను పరిగణనలోకి తీసుకుంటుంది. కొన్ని అనువర్తనాల్లో ప్రధాన వినియోగం అనామక మెమరీ, కానీ మరికొన్నింటిలో ఫైల్ కాష్ కూడా ముఖ్యమైనది. కాష్ ఎవిక్షన్ అసమతుల్యతలను నివారించడానికి, TMO కొత్త పేజింగ్ అల్గారిథమ్‌ను ఉపయోగిస్తుంది, ఇది ఫైల్ కాష్‌తో అనుబంధించబడిన అనామక పేజీలు మరియు పేజీలను దామాషా ప్రకారం తొలగిస్తుంది.

అరుదుగా ఉపయోగించే పేజీలను నెమ్మదిగా మెమరీలోకి నెట్టడం పనితీరుపై గణనీయమైన ప్రభావాన్ని చూపదు, కానీ హార్డ్‌వేర్ ఖర్చులను గణనీయంగా తగ్గిస్తుంది. డేటా SSD డ్రైవ్‌లకు లేదా RAMలోని కంప్రెస్డ్ స్వాప్ ఏరియాకు ఫ్లష్ చేయబడుతుంది. ఒక బైట్ డేటాను నిల్వ చేయడానికి అయ్యే ఖర్చు పరంగా, RAMలో కంప్రెషన్‌ని ఉపయోగించడం కంటే NVMe SSDని ఉపయోగించడం 10 రెట్లు చౌకగా ఉంటుంది.

Facebook TMO మెకానిజంను ప్రవేశపెట్టింది, ఇది సర్వర్‌లలో 20-32% మెమరీని ఆదా చేయడానికి మిమ్మల్ని అనుమతిస్తుంది


మూలం: opennet.ru

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