రోమన్ గుష్చిన్ (ఫేస్బుక్ సాఫ్ట్వేర్ ఇంజనీర్) రిజిస్ట్రీ Linux కెర్నల్ అభివృద్ధి జాబితాలో, స్లాబ్ కంట్రోలర్ మెమరీ మ్యాపింగ్ అనువర్తనానికి పాచెస్ సమితి (మెమరీ కంట్రోలర్).
కొత్త నియంత్రిక గొప్పది స్లాబ్ అకౌంటింగ్ను మెమరీ పేజీ స్థాయి నుండి కెర్నల్ ఆబ్జెక్ట్ స్థాయికి తరలించడం ద్వారా, ప్రతి సమూహానికి ప్రత్యేక స్లాబ్ కాష్లను కేటాయించకుండా, వివిధ సమూహాలలో సి స్లాబ్ పేజీలను పంచుకోవడం సాధ్యపడుతుంది.
ప్రస్తుతం ఉన్న స్లాబ్ మెమరీ కంట్రోలర్లో రోమన్ అతను "చాలా తీవ్రమైన లోపం" అని పిలిచాడు, ఇది ఈ రోజుల్లో సిగ్రూప్లతో తక్కువ వినియోగానికి దారితీస్తుంది.
"ఇప్పటికే ఉన్న డిజైన్ తక్కువ స్లాబ్ వినియోగానికి దారితీసే అసలు కారణం చాలా సులభం: స్లాబ్ పేజీలు ప్రత్యేకంగా మెమరీ పూల్ ద్వారా ఉపయోగించబడతాయి.
ఒక సిగ్రూప్ చేసిన నిర్దిష్ట పరిమాణంలో కొన్ని కేటాయింపులు మాత్రమే ఉంటే, లేదా సిగ్రూప్ తొలగించబడిన తర్వాత కొన్ని క్రియాశీల వస్తువులు మిగిలి ఉంటే, లేదా సిగ్రూప్ ఒకే థ్రెడ్ అప్లికేషన్ కలిగి ఉంటే అది ఏదైనా కెర్నల్ వస్తువులను కేటాయించదు, కానీ ప్రతిసారీ క్రొత్త CPU లో: ఈ అన్ని సందర్భాల్లో, ఫలితంగా వచ్చే స్లాబ్ వినియోగం చాలా తక్కువ.
Kmem అకౌంటింగ్ నిలిపివేయబడితే, కెర్నల్ ఇతర కేటాయింపుల కోసం స్లాబ్ పేజీలలో ఖాళీ స్థలాన్ని ఉపయోగించవచ్చు. «
ప్రతిపాదిత స్లాబ్ మెమరీ కంట్రోలర్ గత సంవత్సరంలో రొమానో గుష్చిన్ చేత చాలా ఆశాజనకంగా ఉంది సామర్థ్యాన్ని పెంచుతుంది స్లాబ్ యొక్క ఉపయోగం, ఉపయోగించిన మెమరీ పరిమాణాన్ని తగ్గించండి స్లాబ్ కోసం 30-45% మరియు మొత్తం కెర్నల్ మెమరీ వినియోగాన్ని గణనీయంగా తగ్గిస్తుంది.
అదనంగా, అమలు చేసిన పాచెస్ సూచించాయి ఫేస్బుక్ ఇప్పటికే తమ సర్వర్లలో ఉత్పత్తిలో ఉన్న కోడ్ను ఉపయోగిస్తోంది ఫ్రంట్ ఎండ్ వెబ్ సర్వర్ల కోసం 650 700-XNUMXMB + ని ఆదా చేస్తుంది, డేటాబేస్ కాషింగ్ మరియు DNS సర్వర్లు, ఇతర అవార్డులలో.
మొబైల్ కాని స్లాబ్ల సంఖ్యను తగ్గించడం ద్వారా, మెమరీ ఫ్రాగ్మెంటేషన్ను తగ్గించే రంగంలో కూడా సానుకూల ప్రభావం కనిపిస్తుంది. కొత్త మెమరీ కంట్రోలర్ అకౌంటింగ్ స్లాబ్ కోసం కోడ్ను గణనీయంగా సులభతరం చేస్తుంది మరియు ప్రతి సమూహానికి డైనమిక్ సృష్టి మరియు స్లాబ్ కాష్లను తొలగించడానికి సంక్లిష్టమైన అల్గోరిథంలు అవసరం లేదు.
క్రొత్త అమలులో మెమరీ కోసం అన్ని cgroups సాధారణ స్లాబ్ కాష్లను ఉపయోగిస్తాయి మరియు స్లాబ్ కాష్ల యొక్క జీవితకాలం ఇకపై cgroup ద్వారా సెట్ చేయబడిన మెమరీ పరిమితుల జీవితకాలంతో ముడిపడి ఉండదు.
కొత్త స్లాబ్ కంట్రోలర్లో అమలు చేయబడిన మరింత ఖచ్చితమైన రిసోర్స్ అకౌంటింగ్ సిద్ధాంతపరంగా CPU ని మరింత లోడ్ చేయాలి, కాని ఆచరణలో తేడాలు చాలా తక్కువ.
ముఖ్యంగా కొత్త స్లాబ్ డ్రైవర్ ఫేస్బుక్ సర్వర్లలో చాలా నెలలుగా ఉపయోగించబడింది వివిధ రకాలైన లోడ్లను నిర్వహించే ఆపరేషన్లో, ఇప్పటివరకు గణనీయమైన రిగ్రెషన్లు కనుగొనబడలేదు.
ప్యాచ్లో కొన్ని పాక్షిక స్వతంత్ర భాగాలు ఉన్నాయి, ఇవి స్లాబ్ యొక్క మెమరీ కంట్రోలర్ వెలుపల వాటి ఉపయోగాన్ని కూడా కనుగొనవచ్చు:
- పేజీ యొక్క పరిమాణం లేని ఇతర వస్తువులను లెక్కించడానికి భవిష్యత్తులో ఉపయోగించగల సబ్పేజ్ లోడ్ API, ఉదాహరణకు పెర్క్పు కేటాయింపులు
- Mem_cgroup_ptr API, ఇక్కడ ఒక memcg కు పాయింటర్లను లెక్కించారు, ఇతర వస్తువులను సమర్థవంతంగా తిరిగి పొందడం కోసం తిరిగి ఉపయోగించవచ్చు, ఉదా. పేజీ కాష్.
అదే సమయంలో మెమరీ వినియోగంలో గణనీయమైన తగ్గుదల ఉంది- కొన్ని హోస్ట్లలో 1 GB మెమరీని ఆదా చేయడం సాధ్యమైంది, కానీ ఈ సూచిక ఎక్కువగా లోడ్ యొక్క స్వభావం మీద ఆధారపడి ఉంటుంది, RAM యొక్క మొత్తం పరిమాణం, CPU మొత్తం మరియు మెమరీతో పనిచేసే లక్షణాలు.
ప్రతి మెమరీ cgroup కోసం ప్రత్యేకమైన kmem_cache లను సృష్టించే బదులు, రెండు గ్లోబల్ సెట్లు ఉపయోగించబడతాయి: లెక్కించబడని రూట్ సెట్ మరియు రూట్ గ్రూప్ cgroup అసైన్మెంట్లు మరియు అన్ని ఇతర అసైన్మెంట్ల కోసం రెండవ సెట్. ఇది వ్యక్తిగత kmem_caches యొక్క జీవితకాల నిర్వహణను సులభతరం చేస్తుంది.
చివరగా, మీకు 19 పాచెస్ యొక్క కొత్త సెట్ తెలుసుకోవటానికి ఆసక్తి ఉంటే అది జాబితాలో చూడవచ్చు కెర్నల్ మెయిల్.
వ్యాఖ్యానించిన మొదటి వ్యక్తి అవ్వండి