Facebook ha proposat un nou mecanisme de gestió de memòria de lloses per al nucli Linux

Roman Gushchin (Roman Gushchin) de Facebook publicat a la llista de correu dels desenvolupadors del nucli de Linux un conjunt de pedaços amb la implementació d'un nou controlador d'assignació de memòria llosa (controlador de memòria llosa). El nou controlador destaca per moure la comptabilitat de lloses del nivell de la pàgina de memòria al nivell d'objecte del nucli, cosa que fa possible compartir pàgines de lloses en diferents cgroups, en lloc d'assignar memòria cau de lloses separades per a cada cgroup.

L'enfocament proposat permet augmentar l'eficiència de l'ús de la llosa, reduir la mida de la memòria utilitzada per a la llosa en un 30-45% i reduir significativament el consum total de memòria del nucli. En reduir el nombre de lloses no mòbils, també hi ha un efecte positiu en la reducció de la fragmentació de la memòria. El nou controlador de memòria simplifica significativament el codi per a la comptabilitat de lloses i no requereix l'ús d'algorismes complicats per crear i eliminar de forma dinàmica les memòries cau de lloses per a cada grup c. Tots els cgroups de memòria de la nova implementació utilitzen un conjunt comú de memòria cau de lloses i la vida útil de les memòries cau de lloses ja no està lligada a la vida útil dels instal·lats a través del grup c restriccions sobre l'ús de la memòria.

La comptabilitat de recursos més precisa implementada al nou controlador de llosa hauria de carregar teòricament més la CPU, però a la pràctica les diferències van resultar ser insignificants. En particular, el nou controlador de llosa s'ha utilitzat durant diversos mesos en servidors de producció de Facebook que gestionen diferents tipus de càrrega de treball, i encara no s'han identificat regressions notables. Al mateix temps, hi ha una reducció significativa del consum de memòria: en alguns amfitrions es va poder estalviar fins a 1 GB de memòria, però aquest indicador depèn molt de la naturalesa de la càrrega, la mida total de la memòria RAM i el nombre de CPU. i les característiques de treballar amb memòria. Proves prèvies va mostrar reducció del consum de memòria en 650-700 MB (42% de la memòria de lloses) al front-end web, 750-800 MB (35%) al servidor amb una memòria cau DBMS i 700 MB (36%) al servidor DNS.

Font: opennet.ru

Afegeix comentari