TMO, un mecanismo de Facebook que permite ahorrar RAM en servidores

Los ingenieros de Facebook dieron a conocer, mediante un informe, la introducción de la tecnología TMO (Transparent Memory Offloading) el año pasado, que permite ahorrar significativamente RAM en los servidores al desplazar datos secundarios que no se requieren para trabajar en unidades más económicas, como discos SSD NVMe.

Facebook estima que TMO ahorra entre un 20% y un 32% de RAM en cada servidor. La solución está diseñada para su uso en infraestructuras donde las aplicaciones se ejecutan en contenedores aislados. Los componentes del lado del kernel de TMO ya están incluidos en el kernel de Linux.

Del lado del kernel de Linux, la operación de la tecnología es proporcionada por el subsistema PSI (Pressure Stall Information), suministrado a partir de la versión 4.20.

PSI ya se usa en varios controladores de memoria insuficiente y permite analizar información sobre el tiempo de espera para obtener varios recursos (CPU, memoria, E / S). Con PSI, los procesadores de espacio de usuario pueden evaluar con mayor precisión la carga del sistema y los patrones de ralentización, lo que permite detectar anomalías antes de que tengan un impacto notable en el rendimiento.

En el espacio del usuario, el componente Senpai ejecuta TMO, que ajusta dinámicamente el límite de memoria para los contenedores de aplicaciones a través de cgroup2 en función de los datos recibidos del PSI.

Senpai analiza los signos del comienzo de una escasez de recursos a través de PSI, evalúa la sensibilidad de las aplicaciones al acceso lento a la memoria e intenta determinar el tamaño mínimo de memoria requerido para un contenedor, en el que los datos requeridos para el trabajo permanecen en RAM, y relacionados los datos que se han asentado en la memoria caché del archivo o que no se usan directamente actualmente, se fuerzan a salir a la partición de intercambio.

La descarga transparente de memoria (TMO) es la solución de Meta para entornos de centros de datos heterogéneos. Introduce un nuevo mecanismo del kernel de Linux que mide el trabajo perdido debido a la escasez de recursos en CPU, memoria y E/S en tiempo real. Guiado por esta información y sin ningún conocimiento previo de la aplicación, TMO ajusta automáticamente la cantidad de memoria para descargar en un dispositivo heterogéneo, como una memoria comprimida o un SSD. Lo hace de acuerdo con las características de rendimiento del dispositivo y la sensibilidad de la aplicación a los accesos de memoria más lentos.

Por lo tanto, la esencia de TMO es mantener los procesos a «dieta estricta» en términos de consumo de memoria, obligando a que las páginas de memoria no utilizadas se muevan a la partición de intercambio, cuya eliminación no afecta notablemente el rendimiento (por ejemplo, páginas con código utilizado solo durante la inicialización y datos de un solo uso en la memoria caché del disco). A diferencia de expulsar información a la partición de intercambio en respuesta a poca memoria, TMO expulsa datos en función de la predicción predictiva.

La ausencia de acceso a una página de memoria dentro de los 5 minutos se utiliza como uno de los criterios para la preferencia. Estas páginas se denominan frías y, en promedio, constituyen alrededor del 35 % de la memoria de la aplicación (según el tipo de aplicación, hay una variación del 19 % al 65 %).

La preferencia tiene en cuenta la actividad asociada con las páginas anónimas de memoria (memoria asignada por la aplicación) y la memoria utilizada para el almacenamiento en caché de archivos (asignada por el núcleo). En algunas aplicaciones la memoria anónima es el principal consumo, pero en otras la caché de archivos también es muy importante.

Para evitar el desequilibrio al vaciar la memoria en la memoria caché, TMO utiliza un nuevo algoritmo de paginación que vacía las páginas anónimas y las páginas asociadas con la memoria caché de archivos de manera proporcional.

Empujar las páginas que se usan con poca frecuencia a una memoria más lenta no tiene un gran impacto en el rendimiento, pero puede reducir significativamente los costos de hardware. Los datos se envían a los SSD o al espacio de intercambio comprimido en la RAM. A costa de almacenar un byte de datos, el uso de SSD NVMe es hasta 10 veces más económico que usar compresión en RAM.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://www.linuxadictos.com/tmo-un-mecanismo-de-facebook-que-permite-ahorrar-ram-en-servidores.html
via IFTTT

AlmaLinux Build System: el nuevo sistema de compilación de AlmaLinux

Hace poco los desarrolladores de la distribución AlmaLinux presentaron un nuevo sistema de compilación llamado ALBS (AlmaLinux Build System), que ya se ha utilizado en la formación de las versiones AlmaLinux 8.6 y 9.0 preparadas para las arquitecturas x86_64, Aarch64, PowerPC ppc64le y s390x.

El sistema de compilación presentado se basa en los desarrollos de CloudLinux, que desarrolla su propia distribución comercial basada en la base del paquete RHEL.

Aquí en AlmaLinux OS Foundation creemos que facilitar a los miembros de la comunidad la creación de paquetes e imágenes es una parte fundamental para hacer crecer y garantizar un ecosistema Linux empresarial saludable. AlmaLinux es completamente de código abierto y cuenta con el respaldo de una lista creciente de miembros que ayudan a mejorar cada versión. Con ese fin, comenzamos a trabajar hace mucho tiempo para asegurarnos de que nuestro sistema de compilación también sea transparente y abierto para que lo use cualquier organización que esté interesada en crear una mejor distribución de Linux.

Hoy nos complace anunciar los primeros frutos de nuestros esfuerzos, ALBS, The AlmaLinux Build System. 

Para quienes desconocen de CloudLinux deben saber que fundó el Proyecto AlmaLinux y es miembro fundador de la Fundación AlmaLinux OS, una organización sin fines de lucro diseñada para desarrollarse en un entorno neutral impulsado por la comunidad utilizando un modelo de gobierno similar al Proyecto Fedora.

Para confirmar el compromiso con el modelo de desarrollo completamente abierto y transparente declarado inicialmente para la comunidad, el código del sistema de compilación ahora está completamente abierto y todas las etapas de compilación de AlmaLinux están controladas por la comunidad.

Sobre AlmaLinux Build System

El sistema ALBS se centra en la automatización de la creación de distribución, la creación de paquetes, la prueba de paquetes, la generación de firmas digitales y la publicación de paquetes compilados en repositorios públicos. El sistema tiene como objetivo procesar todas las etapas de la formación de la distribución como un todo para eliminar errores causados ​​por el factor humano. El sistema de compilación continúa la evolución del sistema de compilación interno de CloudLinux, que ha estado en uso desde 2012.

Además de los paquetes RPM, se admite el formato DEB y se proporcionan herramientas para automatizar el cambio de marca y la modificación de paquetes de reconstrucción. Incluir el sistema se puede utilizar para crear distribuciones arbitrarias basadas en Ubuntu y Debian.

Hoy estamos agregando la siguiente etapa de transparencia para nuestros procesos de compilación al liberar el acceso anónimo de solo lectura a nuestro sistema de compilación. Esto permite que cualquier persona vea qué paquetes se están creando en este momento, cuándo se creó un paquete en particular, cuándo falla la construcción de un paquete y todos los registros asociados con el proceso de construcción para todos y cada uno de los paquetes.

Las compilaciones se prueban con el sistema de integración continua de Jenkins. El código fuente de los paquetes que se crean se descarga del repositorio de Git.

Para todos, el acceso anónimo al sistema de compilación de AlmaLinux está abierto, lo que permite realizar un seguimiento de todas las etapas de la compilación de la distribución. A través de la interfaz proporcionada, se puede determinar qué paquetes se están construyendo actualmente, cuándo se creó el paquete de interés y qué paquetes no se pudieron construir.

Para el análisis, se encuentra disponible un registro de compilación completo con detalles a nivel de paquetes individuales. Actualmente, el acceso está limitado a monitorear el sistema, pero el plan es lanzar el control de acceso basado en roles (RBAC) a fines de julio y permitir que los colaboradores y mantenedores de la comunidad construyan sus propios paquetes en ALBS.

En el futuro, también se espera que admita la verificación de compilación mediante el servicio CodeNotary, soporte para el servicio de compilación COPR, soporte para espacios de nombres para proporcionar a los proyectos y organizaciones la infraestructura para construir sus paquetes y preparación de herramientas para automatizar la compilación y publicar imágenes de máquinas virtuales y contenedores.

Además de construir la distribución, ALBS también se usa para generar y publicar actualizaciones correctivas (erratas) y firmar paquetes digitalmente.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/jyzVGWQ
via IFTTT