Canonical ha proposto delle patch per accelerare l'attivazione della modalità sospensione

Azienda Canonical ha proposto nella mailing list degli sviluppatori del kernel Linux un insieme di patch per l'implementazione del recupero opportunistico della memoria ("opportunistic memory reclaim"), che consente di ridurre significativamente il tempo di transizione in modalità sospensione. L'ottimizzazione viene raggiunta mediante la chiamata anticipata dell'operazione di liberazione delle strutture di memoria secondaria, che non contengono informazioni uniche e possono essere ripristinate dinamicamente al ritorno dalla modalità sospensione (ad esempio, aree della memoria anonima e vari cache delle pagine di memoria). L'idea principale è che, dopo la rimozione dei dati superflui, si riduce la dimensione dell'immagine di memoria da salvare prima di passare alla modalità sospensione e, di conseguenza, si richiede meno tempo per la scrittura e la lettura da un supporto lento.

Per impostazione predefinita, durante il salvataggio del dump di memoria per la modalità sospensione, il kernel salva la memoria così com'è con tutte le cache, ma è prevista una funzionalità standard per liberare strutture inutili simulando condizioni di scarsità delle risorse nelle fasi iniziali della transizione in modalità sospensione. Questa funzionalità può essere attivata utilizzando il parametro "/sys/power/image_size" e porta a una significativa diminuzione del tempo di transizione in modalità sospensione. Canonical propone di aggiungere altri due parametri "/sys/power/mm_reclaim/run" e
"/sys/power/mm_reclaim/release", che consentiranno di invocare prontamente la liberazione delle strutture inutili affinché la transizione in modalità sospensione avvenga il più rapidamente possibile e il ritorno dalla modalità sospensione richieda circa lo stesso tempo che si avrebbe utilizzando il parametro già esistente nel kernel "/sys/power/image_size".

I test su un sistema con 8 GB di RAM e 8 GB di partizione di swap, utilizzando l'85% della memoria, hanno mostrato, nelle impostazioni predefinite (image_size=default), una riduzione del tempo di transizione in modalità sospensione da 51.56 a 4.19 secondi avviando il processo di pulizia della memoria superflua 60 secondi prima della transizione in modalità sospensione. Grazie alla riduzione della dimensione dell'immagine di memoria salvata, il tempo di ripristino è diminuito da 26.34 a 5 secondi. Attivando la modalità standard di pulizia della memoria superflua nel sistema (image_size=0), il tempo di transizione in modalità sospensione è stato ridotto da 73.22 a 5.36 secondi, mentre il tempo di ritorno dalla modalità sospensione è praticamente invariato (è diminuito solo di frazioni di secondo, da 5.32 a 5.26 secondi).

Il metodo proposto può essere utile in situazioni in cui è necessario passare rapidamente alla modalità sospensione e si ha la possibilità di prevedere in anticipo la necessità di tale transizione. Ad esempio, nei sistemi cloud, gli ambienti virtuali a bassa priorità (ambienti spot in Amazon EC2) possono essere tradotti dinamicamente in modalità sospensione e liberare la memoria occupata quando aumenta il consumo delle risorse da parte degli ambienti primari. Quando la carica sugli ambienti primari diminuisce, gli ambienti a bassa priorità tornano dalla modalità sospensione. In queste condizioni, per mantenere un adeguato livello di servizio, è importante minimizzare il tempo di passaggio alla modalità sospensione e di uscita da essa. L'avvio della fase di pulizia anticipata può avvenire al raggiungimento di un determinato livello di carico principale, antecedente al livello che porta al blocco degli ambienti a bassa priorità.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster