Canonical propuxo parches para acelerar a activación do modo de suspensión

Canónico suxerido na lista de correo dos desenvolvedores do núcleo de Linux un conxunto de parches con implementación purga de memoria oportunista ("recuperación oportunista de memoria"), que permite reducir significativamente o tempo que tarda en entrar no modo de suspensión. A optimización conséguese chamando de forma proactiva á operación de liberación de estruturas de memoria secundarias que non conteñen información única e que se poden restaurar de forma dinámica despois de volver do modo de suspensión (por exemplo, áreas memoria anónima e varios cachés de páxinas de memoria). A idea principal é que despois de eliminar os datos innecesarios, o tamaño da imaxe de memoria que se vai gardar antes de entrar en modo de suspensión redúcese e, en consecuencia, é necesario menos tempo para escribila e lela desde medios lentos.

Por defecto, ao gardar un volcado de memoria para a hibernación, o núcleo garda a memoria tal e como está con todas as cachés, pero hai unha capacidade estándar para liberar estruturas innecesarias simulando condicións de escaseza de recursos na fase inicial de entrar na hibernación. Esta función pódese activar mediante o parámetro "/sys/power/image_size" e leva a unha redución notable do tempo que leva entrar no modo de suspensión. Canonical suxire engadir dous parámetros máis "/sys/power/mm_reclaim/run" e
"/sys/power/mm_reclaim/release", que lle permitirá activar a liberación de estruturas innecesarias con antelación para que a transición real ao modo de suspensión se realice o máis rápido posible, e volver do modo de suspensión leve aproximadamente o mesmo tempo que cando se usa un existente no parámetro do núcleo "/sys/power/image_size".

As probas nun sistema con 8 GB de RAM e 8 GB de partición de intercambio cun 85 % de utilización da memoria mostraron na configuración predeterminada (image_size=default) unha diminución do tempo para entrar en modo de suspensión de 51.56 a 4.19 segundos ao iniciar o proceso de borrando o exceso de memoria 60 segundos antes de entrar no modo de suspensión. Ao reducir o tamaño da imaxe de memoria almacenada, o tempo de recuperación diminuíu de 26.34 a 5 segundos. Cando o sistema activou o modo estándar para borrar o exceso de memoria (image_size=0), o tempo para entrar no modo de suspensión reduciuse de 73.22 a 5.36 segundos e o tempo para volver do modo de suspensión permaneceu practicamente sen cambios (só reduciuse un fracción de segundo, de 5.32 a 5.26 segundos).

O método proposto pode ser demandado en situacións nas que é necesario cambiar moi rapidamente ao modo de suspensión e é posible prever a necesidade desta transición con antelación. Por exemplo, en sistemas de nube, ambientes virtuais de baixa prioridade (ambientes localizados en Amazon EC2) pode hibernar e liberar dinámicamente a memoria ocupada a medida que aumenta o consumo de recursos dos ambientes primarios. Cando a carga dos ambientes primarios diminúe, os ambientes de baixa prioridade volven do modo de suspensión. Nestas condicións, para manter unha calidade de servizo adecuada, é importante minimizar o tempo que leva entrar e saír do modo de suspensión. A fase de limpeza preventiva pódese desencadear cando se alcanza un determinado nivel da carga principal, precedendo ao nivel que conduce á conxelación de ambientes de baixa prioridade.

Fonte: opennet.ru

Engadir un comentario