Un dos membros do equipo de desenvolvemento de redes sociais Facebook, Roman Gushchin, propuxo na lista de correo para desenvolvedores un conxunto de Parches do kernel de Linuxdestinado a mellorar a xestión da memoria mediante a implementación dun novo controlador de xestión de memoria - placa (controlador de memoria de placa).
distribución de lousa é un mecanismo de xestión de memoria deseñado para asignar memoria de forma máis eficiente e eliminar a fragmentación significativa. A base deste algoritmo é almacenar memoria asignada que contén un obxecto dun determinado tipo e reutilizar esa memoria a próxima vez que se asigne a un obxecto do mesmo tipo. Esta técnica foi introducida por primeira vez en SunOS por Jeff Bonwick e agora úsase amplamente nos núcleos de moitos sistemas operativos Unix, incluíndo FreeBSD e Linux.
O novo controlador baséase en mover a contabilidade de losas desde o nivel de páxina de memoria ata o nivel de obxectos do núcleo, o que fai posible compartir unha páxina de losas en diferentes cgroups, en lugar de asignar unha caché separada para cada cgroup.
En base aos resultados das probas, despréndese que o método de xestión de memoria proposto permite aumentar eficacia utilizando lousa para 45%, e tamén reducirá o consumo total de memoria do núcleo do sistema operativo. Ademais, ao reducir o número de páxinas asignadas para o forxado, redúcese a fragmentación da memoria no seu conxunto, o que non pode senón afectar o rendemento do sistema.
O novo controlador foi probado en servidores de produción de Facebook durante varios meses, e ata agora esta proba pódese calificar de exitosa: sen perda de rendemento e sen aumento do número de erros, notouse unha clara diminución do consumo de memoria, nalgúns casos. servidores de ata 1 GB. Este número é bastante subxectivo, por exemplo, as probas anteriores mostraron resultados lixeiramente inferiores:
- 650-700 MB na interface web
- 750-800 MB en servidor con caché de base de datos
- 700 MB no servidor DNS
>>> Os primeiros resultados das probas
Fonte: linux.org.ru