Intel ha dado un paso adelante en la optimización del rendimiento de servidores Linux con su In-Memory Analytics Accelerator (IAA). Esta tecnología, incluida en procesadores Xeon de última generación, ahora puede utilizarse para acelerar la compresión en Zswap mediante un sistema de «batching» o procesamiento en lote, como parte de una nueva serie de parches para el kernel de Linux.
Mejora de rendimiento con IAA en Zswap
La tecnología IAA permite realizar compresiones paralelas de páginas en folios grandes, logrando reducir significativamente el tiempo de sistema y mejorando la eficiencia en sistemas que operan bajo condiciones de memoria estrictas. Según los ingenieros de Intel, las pruebas realizadas muestran mejoras de hasta un 50 % en el tiempo de sistema y una reducción del tiempo de ejecución de las cargas de trabajo de aproximadamente un 3,5 % en entornos de alta demanda.
Optimización en entornos de alta demanda
Las pruebas se llevaron a cabo en servidores con configuraciones de alta demanda, demostrando que el uso del IAA para la compresión en lotes reduce la latencia hasta en un 2,5 %. Con esta tecnología, las tareas de compresión se distribuyen entre los dispositivos IAA del socket, mejorando el rendimiento de sistemas que realizan muchas operaciones de intercambio de datos en memoria.
Impulso al kernel de Linux con el soporte IAA
El equipo de desarrollo de Intel ha implementado diversas modificaciones en el kernel para habilitar estas nuevas capacidades de compresión en Zswap, incluyendo mejoras en los controladores y la creación de interfaces de compresión y descompresión que hacen que el uso de IAA sea más accesible para usuarios avanzados y desarrolladores de Linux.
Futuro del IAA en Linux
Con estos parches, el In-Memory Analytics Accelerator de Intel se perfila como una solución atractiva para aplicaciones de Linux que requieren alta eficiencia en el uso de memoria y velocidad de procesamiento.
Pruebas de rendimiento (usemem30)
Se realizó una prueba de rendimiento en un cgroup con el test «usemem» de vm-scalability, configurando el límite de memory.high
en 150 GB, sin establecer un límite de intercambio (swap) para el cgroup. En la prueba, se ejecutaron 30 procesos usemem
, cada uno asignando y escribiendo 10 GB de memoria, y luego entrando en modo de espera por 10 segundos antes de finalizar.
El comando utilizado fue el siguiente:
usemem --init-time -w -O -s 10 -n 30 10g
Este test permitió evaluar el impacto de la compresión en lote con el IAA en un entorno de alta carga de memoria, lo que mostró mejoras significativas en la eficiencia del sistema y la reducción del tiempo de procesamiento en comparación con compresores de software.
Tabla de Rendimiento de Compresión en Lote con IAA: Folios de 16kB/32kB/64kB
Métrica | Sin compresión en lote | Compresión en lote (IAA) |
---|---|---|
Tasa de transferencia total (KB/s) | 7.756.632 | 8.075.817 |
Tasa de transferencia promedio (KB/s) | 258.554 | 269.193 |
Tiempo de ejecución (segundos) | 87,75 | 85,82 |
Tiempo del sistema (segundos) | 2.073,04 | 2.030,52 |
Tabla de Rendimiento de Compresión en Lote con IAA: Folios de 2MB
Métrica | Sin compresión en lote | Compresión en lote (IAA) |
---|---|---|
Tasa de transferencia total (KB/s) | 7.948.345 | 8.165.171 |
Tasa de transferencia promedio (KB/s) | 264.944 | 272.172 |
Tiempo de ejecución (segundos) | 88,18 | 87,30 |
Tiempo del sistema (segundos) | 2.067,56 | 2.046,79 |
Tabla de Rendimiento de Compilación de Kernel (allmodconfig): Compresión en Lote con IAA
Métrica | Sin compresión en lote | Compresión en lote (IAA) |
---|---|---|
Tiempo real (segundos) | 801,25 | 768,92 |
Tiempo de usuario (segundos) | 15.776,31 | 15.753,89 |
Tiempo del sistema (segundos) | 4.250,34 | 3.892,17 |
Tamaño máximo de conjunto residente (KB) | 1.869.428 | 1.871.600 |
Estas tablas muestran cómo el uso de la compresión en lote mediante el IAA mejora la tasa de transferencia y reduce los tiempos de ejecución y del sistema en pruebas de carga intensiva de memoria, lo que confirma la eficiencia de esta tecnología en entornos de alto rendimiento.
vía: Linux Kernel y Phoronix