休止状態から再起動したときのメモリ/スワップページの状態の復元

休止状態から再起動したときのメモリ/スワップページの状態の復元

私はLinuxの休止状態のサポートが好きで、私が試したすべての(もちろん少し古い)ハードウェアで非常にうまく機能します。完全にシャットダウンしてオンにするよりも優先されます。

しかし、休止状態に関する1つの点がしばらく私を悩ませました。休止状態システムは、再起動時に常に遅く応答しません。電源を入れた後、速度はそれほど速くはありません。これは古いハードウェアによってさらに悪化しますが、最新のシステムでは少し深刻なレベルで発生します。

これは、カーネルが[カーネルレベル]操作に必要なページだけをワークメモリに再スワップし、カーネルのデフォルトのジョブ状態を復元し、個々のプロセスが必要なページを再スワップしている間に、ユーザースペースがRAMをしばらく消費するようにするためです。そうです。作業記憶はそれ自体の力で行われます。

これは実際にはうまくいきません。これは、システムが最初に大規模なプロセスがすべてをディスクに完全にスワップするように強制するように動作するためです。画面のすべての内容はすばやく切り替えられますが、他のプロセスに切り替えるには数秒待つ必要があります。それまた、メモリに交換された。古いハードウェア(私の場合はCore 2 ThinkPad T60)では、「数秒」が数分になることがあります。

しばらく考えた後、私は最近この問題に非常に簡単な解決策があることに気づきました。つまり、ディスクとRAMのページを表示するタグを記録し、復元するときにこの正確な状態を復元することです。もちろん、回復プロセスに10秒ほどかかることがありますが、問題ありません。クイックシステムを備えています。

そのような機能を有効にする曖昧なカーネルコンパイルオプションがあるのか​​、この動作を近似するために設定できるいくつかの設定があるのか​​どうか疑問に思います。

メモ:実行可能な解決策がないと思いますswapoff -a; swapon -a。一時停止したユーザー・スペースが再始動すると、ロードされたすべてのプロセスがコードを実行しようとし、RAMとの交換を試みるため、多くのディスクI / Oが発生します。スワップ領域を破壊しようとすると、ハリケーンが悪化するだけで、実際にカーネルの回復を完了するのに時間がかかります。みんなユーザースペースの前にRAMを復元します。

ベストアンサー1

おすすめ記事