LinuxParty
Roman Gushchin, miembro del equipo de ingeniería de kernel de Linux de Facebook, ha propuesto un nuevo controlador de memoria losa para el kernel de Linux. Este nuevo controlador de memoria de losa promete proporcionar una utilización de memoria mejorada entre múltiples grupos de memoria, a través del intercambio de páginas de losa.
¿Qué es una Slab Page (pagina de losa)?
La asignación de losas es una forma de gestión de memoria, dentro del núcleo de Linux, utilizada con la intención de hacer eficiente la asignación de memoria de objetos. Este tipo de gestión de memoria reduce la fragmentación causada por asignaciones y desasignaciones. La asignación de losas retiene la memoria asignada para su reutilización en asignaciones posteriores de objetos similares y proporciona un menor costo general de inicialización de objetos.
La asignación de losas implica un caché para un cierto tipo / tamaño de objeto. Ese caché tiene una cantidad de "losas" de memoria preasignadas, agrupadas en tamaños fijos que son adecuados para objetos específicos. Dentro del núcleo, hay un asignador de losas que gestiona los fragmentos de tal manera que cuando (el núcleo) recibe una solicitud para asignar memoria para un objeto, puede satisfacer esa solicitud con un fragmento libre de una losa existente.
El nuevo controlador de losa
Gushchin descubrió lo que él considera una "falla grave" en el controlador de memoria de losa actual. Según Gushchin, “la verdadera razón por la cual el diseño existente conduce a una baja utilización de losa es simple: las páginas de losa son utilizadas exclusivamente por un grupo de memoria. Si solo hay unas pocas asignaciones de cierto tamaño hechas por un cgroup , o si quedan algunos objetos activos (por ejemplo, dentries) después de que se elimina el cgroup , o el cgroup contiene una aplicación de un solo subproceso que apenas asigna ningún objeto del núcleo, pero lo hace cada vez en una nueva CPU: en todos estos casos, la utilización de la losa resultante es muy baja. Si la contabilidad kmem está desactivada, el kernel puede usar el espacio libre en las páginas de losas para otras asignaciones ".
Gushchin argumenta que esto no fue un problema cuando se introdujo el controlador kmem como una función opcional, que tuvo que activarse para cada grupo de memoria. Ahora, sin embargo, el controlador kmem está activado de forma predeterminada para cgroup v1 y v2. Y dado que los sistemas modernos basados en systemd tienden a crear una gran cantidad de grupos c, la utilización de losas se vuelve menos eficiente.
Al compartir páginas en losa entre múltiples grupos de memoria (y emplear un sistema donde la contabilidad se realiza por objeto, en lugar de por página), esta nueva implementación del controlador de memoria en losa apunta a alcanzar un nivel mucho más eficiente de utilización.
Según Gushchin, el nuevo parche contiene dos piezas semiindependientes:
- API de carga de subpágina , que se puede usar en el futuro para contabilizar otros objetos que no sean del tamaño de una página, por ejemplo, asignaciones de percpu.
- mem_cgroup_ptr API (punteros contados a un memcg, se pueden reutilizar para la reparación eficiente de otros objetos, por ejemplo, pagecache.
El nuevo controlador de memoria losa de Gushchin ha sido probado en numerosas cargas de trabajo. Los resultados de las pruebas muestran ahorros significativos en el uso de la memoria, que incluyen:
- Interfaz web, 650-700 Mb, ~ 42% de la memoria de losa.
- Caché de la base de datos, 750-800 Mb, ~ 35% de la memoria de losa
- Servidor DNS, 700 Mb, ~ 36% de la memoria de losa
Con este nuevo controlador, es posible obtener entre 35 y 42% de mejor uso de memoria en Linux. Gushchin señaló en este hilo de lkml.org que nada en sus pruebas era específico de Facebook. Indicó que había probado el parche en una instalación de Fedora 30 y encontró que los números eran más o menos los mismos.
El parche de Gushchin está actualmente bajo una bandera de "solicitud de comentarios". Si se acepta, podría llegar al núcleo de la línea principal ya en 2020.
Vía: thenewstack.io
-
Hardware
- Cómo Imprimir desde la Línea de Comandos en Linux y Solucionar Problemas con Impresoras en Red
- Los 5 mejores comandos de Linux para solucionar problemas (y cómo los uso)
- 5 comandos de Linux para encontrar rápidamente la información de tu Sistema Operativo
- El controlador de gráficos NVIDIA 560 Linux adoptará completamente módulos de kernel de GPU de código abierto
- El 84% de los usuarios de PC no están dispuestos a pagar más por un hardware con soporte para IA, según una encuesta
- ¿PC con Linux o Windows 11 Copilot+? TUXEDO presenta el portátil Snapdragon X Elite ARM
- La startup finlandesa 'Flow' afirma que puede multiplicar por 100 la potencia de cualquier CPU con su chip complementario
- China lanza el buque portacontenedores eléctrico más grande del mundo
- Testar el rendimiento de discos duros en Linux
- ¿Por qué los portátiles están soldando sus RAM a la placa?
- TUXEDO Sirius 16 Gen2, el portátil de juegos Linux completamente AMD, recibe un CPU Ryzen 7 más rápido
- Clonezilla Live ahora está parcheado contra la puerta trasera XZ, con tecnología Linux 6.7
- La computadora de escritorio LXQt 2.0 se lanza en abril con un nuevo menú de aplicaciones y portado a Qt 6
- Lanzamiento del controlador de gráficos NVIDIA 550.54.14 para Linux con muchas mejoras
- El firmware BIOS/UEFI de código abierto Libreboot agrega más soporte de hardware