Das Unternehmen Canonical in der Mailingliste für Entwickler des Linux-Kernels gibt es einen Satz von Patches zur Implementierung („opportunistic memory reclaim“), die erheblich die Zeit bis zum Übergang in den Energiesparmodus verkürzt. Die Optimierung wird durch einen vorzeitigen Aufruf der Freigabeoperation für sekundäre Speicherstrukturen erreicht, die keine einzigartigen Informationen enthalten und nach der Rückkehr aus dem Energiesparmodus dynamisch wiederhergestellt werden können (zum Beispiel Bereiche und verschiedene Seitencaches des Speichers). Die Hauptidee besteht darin, dass durch das Entfernen überflüssiger Daten die Größe des Speicherabbilds vor dem Übergang in den Energiesparmodus verringert wird und somit weniger Zeit für die Speicherung und das Lesen von langsamen Speichermedien benötigt wird.
Standardmäßig speichert der Kernel beim Speichern eines Speicherdumps für den Energiesparmodus den Speicher so, wie er ist, einschließlich aller Caches. Es gibt jedoch eine integrierte Funktion, um über die Simulation von Ressourcenmangel im frühen Stadium des Übergangs in den Energiesparmodus überflüssige Strukturen freizugeben. Diese Funktion kann mithilfe des Parameters "/sys/power/image_size" aktiviert werden und führt zu einer erheblichen Verkürzung der Zeit, die für den Übergang in den Energiesparmodus benötigt wird. Canonical schlägt vor, zwei weitere Parameter "/sys/power/mm_reclaim/run" und
"/sys/power/mm_reclaim/release" hinzuzufügen, die es ermöglichen, überflüssige Strukturen vorzeitig freizugeben, damit der tatsächliche Übergang in den Energiesparmodus so schnell wie möglich erfolgt und das Aufwachen aus dem Energiesparmodus etwa genauso lange dauert, wie bei der Verwendung des bereits bestehenden Kernel-Parameters "/sys/power/image_size".
Tests an einem System mit 8 GB RAM und 8 GB Swap-Speicher ergaben bei einer Nutzung von 85 % des Speichers im Standardmodus (image_size=default) eine Verkürzung der Zeit bis zum Übergang in den Energiesparmodus von 51,56 auf 4,19 Sekunden, nachdem der Prozess zur Bereinigung des überflüssigen Speichers 60 Sekunden vor dem Übergang in den Energiesparmodus eingeleitet wurde. Durch die Reduzierung der Größe des gespeicherten Speicherabbilds verringerte sich die Wiederherstellungszeit von 26,34 auf 5 Sekunden. Bei Aktivierung des regulären Modus zur Reinigung des überflüssigen Speichers im System (image_size=0) verkürzte sich die Zeit bis zum Übergang in den Energiesparmodus von 73,22 auf 5,36 Sekunden, und die Zeit zum Aufwachen aus dem Energiesparmodus blieb nahezu unverändert (verringert sich nur um Bruchteile von Sekunden, von 5,32 auf 5,26 Sekunden).
Die vorgeschlagene Methode könnte in Situationen von Nutzen sein, in denen ein sehr schneller Übergang in den Energiesparmodus erforderlich ist und die Möglichkeit besteht, einen solchen Übergang im Voraus vorherzusehen. Zum Beispiel in Cloud-Systemen mit niedrigpriorisierten virtuellen Umgebungen ( In Amazon EC2 können Umgebungen dynamisch in den Schlafmodus versetzt werden und den verbrauchten Speicher bei einem Anstieg der Ressourcennutzung durch primäre Umgebungen freigeben. Wenn die Belastung der primären Umgebungen sinkt, werden die niederrangigen Umgebungen aus dem Schlafmodus zurückgeholt. Unter diesen Bedingungen ist es wichtig, die Zeit für den Übergang in den Schlafmodus und den Rückweg zu minimieren, um die Servicequalität zu gewährleisten. Die Phase der proaktiven Speicherbereinigung kann eingeleitet werden, sobald ein bestimmter Belastungsgrad erreicht wird, der dem Niveau vorausgeht, das zur Einfrierung der niederrangigen Umgebungen führt.
Quelle: opennet.ru
