Facebook серверлерде жадтың 20-32% үнемдеуге мүмкіндік беретін TMO механизмін енгізді

Facebook инженерлері (Ресей Федерациясында тыйым салынған) өткен жылы NVMe сияқты жұмыс үшін қажет емес қосымша деректерді арзан дискілерге ауыстыру арқылы серверлердегі жедел жадты айтарлықтай үнемдеуге мүмкіндік беретін TMO (Транспарент жадты босату) технологиясын енгізу туралы есепті жариялады. SSD - дискілер. Facebook компаниясының бағалауы бойынша, TMO пайдалану әрбір серверде жедел жадтың 20-32% үнемдеуге мүмкіндік береді. Шешім қолданбалар оқшауланған контейнерлерде жұмыс істейтін инфрақұрылымдарда пайдалануға арналған. TMO ядросының құрамдас бөліктері Linux ядросына әлдеқашан енгізілген.

Linux ядросының жағында технологияға 4.20 шығарылымынан бастап қол жетімді PSI (Pressure Stall Information) ішкі жүйесі қолдау көрсетеді. PSI қазірдің өзінде әртүрлі жадты өңдегіштерде қолданылады және әртүрлі ресурстарды (CPU, жад, енгізу/шығару) алу үшін күту уақыты туралы ақпаратты талдауға мүмкіндік береді. PSI көмегімен пайдаланушы-кеңістік процессорлары жүйенің жүктелу деңгейлері мен баяулау үлгілерін дәлірек бағалай алады, бұл ауытқуларды өнімділікке айтарлықтай әсер етпес бұрын ерте анықтауға мүмкіндік береді.

Пайдаланушы кеңістігінде TMO cgroup2 арқылы PSI-дан алынған деректер негізінде қолданба контейнерлері үшін жад шегін динамикалық түрде реттейтін Senpai компонентімен қамтамасыз етіледі. Senpai PSI арқылы ресурс тапшылығының басталу белгілерін талдайды, қолданбалардың жадқа қол жеткізудің баяулауына сезімталдығын бағалайды және жұмыс істеуге қажетті деректер ЖЖҚ-да қалатын контейнерге қажетті жадтың минималды өлшемін анықтауға тырысады, және ілеспе файл кэшінде орналасқан немесе қазіргі уақытта тікелей пайдаланылмаған деректер своп бөліміне мәжбүрлеп шығарылады.

Facebook серверлерде жадтың 20-32% үнемдеуге мүмкіндік беретін TMO механизмін енгізді

Осылайша, TMO мәні процестерді жадты тұтыну тұрғысынан қатаң диетада ұстау болып табылады, олардың шығарылуы өнімділікке айтарлықтай әсер етпейтін пайдаланылмаған жад беттерін ауыстыруға мәжбүр етеді (мысалы, инициализация кезінде ғана пайдаланылатын код бар беттер және бір реттік пайдалану). диск кэшіндегі деректер). Жад қысымына жауап ретінде своп бөліміне ақпаратты шығарудан айырмашылығы, TMO деректері алдын ала болжау негізінде шығарылады.

Көшіру критерийлерінің бірі - 5 минут ішінде жад бетіне кірудің болмауы. Мұндай беттер салқын жады беттері деп аталады және орта есеппен қолданбалы жадының шамамен 35%-ын құрайды (қолданба түріне байланысты 19%-дан 65%-ға дейінгі диапазон бар). Алдын ала таңдау анонимді жад беттерімен (қолданба бөлген жад) және файлды кэштеу үшін пайдаланылатын жадпен (ядро арқылы бөлінген) байланысты әрекетті ескереді. Кейбір қолданбаларда негізгі тұтыну анонимді жад болып табылады, бірақ басқаларында файл кэші де маңызды. Кэшті шығару теңгерімсіздігін болдырмау үшін TMO файл кэшімен байланысты анонимді беттер мен беттерді пропорционалды түрде шығаратын жаңа пейджинг алгоритмін пайдаланады.

Сирек қолданылатын беттерді баяу жадқа итеру өнімділікке айтарлықтай әсер етпейді, бірақ аппараттық құралдар құнын айтарлықтай төмендетуі мүмкін. Деректер SSD дискілеріне немесе жедел жадтағы сығылған ауыстыру аймағына тазартылады. Бір байтты деректерді сақтау құны бойынша NVMe SSD пайдалану жедел жадтағы қысуды қолданудан 10 есеге дейін арзанырақ.

Facebook серверлерде жадтың 20-32% үнемдеуге мүмкіндік беретін TMO механизмін енгізді


Ақпарат көзі: opennet.ru

пікір қалдыру