Canonical ha propuesto parches para acelerar la activación del modo suspensión

Compañía canónica sugerido en la lista de correo de desarrolladores del kernel de Linux un conjunto de parches con implementación purga de memoria oportunista (“recuperación de memoria oportunista”), que le permite reducir significativamente el tiempo que lleva entrar en modo de suspensión. La optimización se logra llamando proactivamente a la operación de liberación de estructuras de memoria secundaria que no contienen información única y se pueden restaurar dinámicamente después de regresar del modo de suspensión (por ejemplo, áreas memoria anónima y varios cachés de páginas de memoria). La idea principal es que después de eliminar datos innecesarios, el tamaño de la imagen de la memoria que se guardará antes de entrar en modo de suspensión se reduce y, en consecuencia, se requiere menos tiempo para escribirla y leerla desde medios lentos.

De forma predeterminada, al guardar un volcado de memoria para hibernación, el kernel guarda la memoria tal como está con todos los cachés, pero existe una capacidad estándar para liberar estructuras innecesarias simulando condiciones de escasez de recursos en la etapa inicial de entrada a la hibernación. Esta característica se puede activar usando el parámetro “/sys/power/image_size” y conduce a una reducción notable en el tiempo que lleva ingresar al modo de suspensión. Canonical sugiere agregar dos parámetros más “/sys/power/mm_reclaim/run” y
“/sys/power/mm_reclaim/release”, que le permitirá activar la liberación de estructuras innecesarias por adelantado para que la transición real al modo de suspensión se realice lo más rápido posible y regresar del modo de suspensión demore aproximadamente el mismo tiempo que cuando se utiliza uno existente en el parámetro del kernel "/sys/power/image_size".

Las pruebas en un sistema con 8 GB de RAM y 8 GB de partición de intercambio con un 85% de utilización de la memoria mostraron en la configuración predeterminada (image_size=default) una disminución en el tiempo para entrar en modo de suspensión de 51.56 a 4.19 segundos al iniciar el proceso de borrar el exceso de memoria 60 segundos antes de entrar en el modo de suspensión. Al reducir el tamaño de la imagen de la memoria almacenada, el tiempo de recuperación disminuyó de 26.34 a 5 segundos. Cuando el sistema activó el modo estándar para borrar el exceso de memoria (image_size=0), el tiempo para ingresar al modo de suspensión se redujo de 73.22 a 5.36 segundos, y el tiempo para regresar del modo de suspensión se mantuvo prácticamente sin cambios (se redujo solo en un fracción de segundo, de 5.32 a 5.26 segundos).

El método propuesto puede tener demanda en situaciones en las que es necesario cambiar muy rápidamente al modo de suspensión y es posible prever la necesidad de dicha transición con anticipación. Por ejemplo, en los sistemas en la nube, los entornos virtuales de baja prioridad (entornos puntuales en Amazon EC2) puede hibernar dinámicamente y liberar memoria ocupada a medida que aumenta el consumo de recursos por parte de los entornos primarios. Cuando la carga en los entornos primarios disminuye, los entornos de baja prioridad vuelven del modo de suspensión. En estas condiciones, para mantener una calidad de servicio adecuada, es importante minimizar el tiempo que lleva entrar y salir del modo de suspensión. La fase de limpieza preventiva se puede activar cuando se alcanza un cierto nivel de carga principal, anterior al nivel que conduce a la congelación de ambientes de baja prioridad.

Fuente: opennet.ru

Añadir un comentario