Canonical offre patch per accelerare l'attivazione della modalità sleep

Sviluppatori Canonical rilasciati tramite una mailing list per lo sviluppo del kernel Linux, una serie di patch per l'implementazione di pulizia opportunistica della memoria, che mira a ridurre significativamente il tempo di sonno dal sistema.

Ottimizzazione si ottiene invocando in modo proattivo il rilascio di strutture di memoria figli che non contengono informazioni univoche e che possono essere ripristinati dinamicamente dopo essere tornati dalla modalità di sospensione (ad esempio, aree di memoria anonime e più cache di pagine di memoria).

A proposito delle patch

L'idea principale è che dopo aver eliminato i dati non necessari, la dimensione dell'immagine in memoria è ridotta salvarer prima di passare alla modalità di sospensione e di conseguenza è richiesto meno tempo per scrivere e leggere da un supporto lento.

Predefinito, quando si salva un dump della memoria per la modalità sleep, il kernel salva la memoria com'è con tutte le cache, Ma c'è una possibilità standard di rilascio strutture non necessarie che simulano condizioni di risorse insufficienti nella fase iniziale della transizione alla modalità sleep.

Questa caratteristica può essere attivato utilizzando il parametro "/ sys / power / image_size" e porta a una notevole riduzione del tempo necessario per passare alla modalità sleep.

Canonical suggerisce di aggiungere altri due parametri, che consentirà il rilascio di strutture non necessarie in anticipo in modo che la transizione effettiva alla modalità sleep venga completata il più rapidamente possibile e il ritorno dalla modalità sleep abbia richiesto circa lo stesso tempo di quando il parametro è stato applicato.

Test e risultati

Test su un sistema con 8 GB di RAM e una partizione di swap da 8 GB durante l'utilizzo dell'85% della memoria mostrato nelle impostazioni predefinite (image_size = default) una diminuzione del tempo per passare alla modalità di sospensione di 51.56 a 4.19 secondi quando il processo di pulizia della memoria in eccesso è iniziato 60 secondi prima di passare alla modalità di sospensione.

A causa della riduzione delle dimensioni dell'immagine della memoria salvata, il tempo di ripristino è diminuito da 26.34 a 5 secondi.

Ecco il primo tentativo di fornire un'interfaccia che consenta alle attività dello spazio utente di attivare il recupero della memoria opportunistico prima di ibernare un sistema.

Il richiamo della memoria in anticipo (ad esempio, quando il sistema è inattivo) lo consente
ridurre le dimensioni dell'immagine di ibernazione e accelerare notevolmente il tempo di ibernazione e ripresa.

Quando la modalità di pulizia normale per memoria in eccesso (image_size = 0) è stato abilitato sul sistema, il tempo necessario per passare alla modalità di sospensione diminuito da 73.22 a 5.36 secondi e il tempo per tornare dalla modalità sleep non è cambiato (diminuito solo di una frazione di secondo, da 5.32 a 5.26 secondi).

Il tipico caso di utilizzo di questa funzione è consentire alle istanze cloud ad alta priorità di superare le istanze a bassa priorità (ad esempio, istanze spot [1]) ibernandole.

Il recupero della memoria opportunistico è molto efficace per ibernare rapidamente istanze che allocano una grande quantità di memoria e rimangono per lo più inattive la maggior parte del tempo, utilizzando solo un working set minimo.

Utilizzare

Il metodo proposto può essere richiesto in situazioni in cui è necessario passare rapidamente alla modalità sleep ed è possibile anticipare la necessità di tale transizione in anticipo.

Ad esempio, nei sistemi cloud, gli ambienti virtuali a bassa priorità (ambienti puntuali in Amazon EC2) possono entrare dinamicamente in ibernazione e liberare memoria occupata man mano che aumenta il consumo di risorse primarie.

Quando il carico è ridotto in contesti primari, gli ambienti a bassa priorità tornano dalla modalità di sospensione. In queste condizioni, per mantenere un'adeguata qualità del servizio, è importante ridurre al minimo il tempo per entrare e uscire dalla modalità sleep.

La fase di pulizia preventiva può iniziare al raggiungimento di un certo livello del carico principale, che precede il livello che porta al congelamento degli ambienti a bassa priorità.

fonte: https://lkml.org


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.