RAMに十分な空き容量がありますが、スワップを使用するのはなぜですか?

RAMに十分な空き容量がありますが、スワップを使用するのはなぜですか?

使用交換RAMの代わりにスペースが大丈夫です。大幅に遅いコンピュータ。

それでは、十分なRAMが必要なときにLinuxシステム(Arch)がスワップを使用するのはなぜですか?

下の私のconky出力を確認してください。

i686|稼働時間:12時間22分36秒|メモリ:144MiB/1.23GiB|スワップ:144MiB/502MiB|CPU:12%|…

また、これが私が経験している速度とシステム応答の問題の原因かもしれませんか?

出力free -m

$ free -m
             total       used       free     shared    buffers     cached
Mem:          1257       1004        252          0         51        778
-/+ buffers/cache:        174       1082
Swap:          502        144        357

答え1

この動作は、次の値を設定することで設定できます。

/proc/sys/vm/swappiness

デフォルトは60です。 0に設定すると、RAMがまだ残っているときにスワップを使用しないことを意味し、100はできるだけ早くメモリをスワップアウトすることを意味します。

値を一時的に変更するには(再起動時に失われます):

sudo sysctl vm.swappiness=10

値を永久に変更するには、ファイルを編集します。

/etc/sysctl.conf

ルート(たとえばsudoedit /etc/sysctl.conf)で次の行を変更または追加します(存在しない場合)。

vm.swappiness

希望の値(vm.swappiness=10)に設定します。ファイルが存在しない場合(たとえば、Arch Linux)、置換が/etc/sysctl.d/99-sysctl.conf試みられます。

利用可能なメモリに交換するのが良いのか悪いのかという議論がありましたが、Ubuntuヘルプは、デスクトップシステムに10の値を提案します。。また、見ることができますこのチュートリアルはCentOS Digital Oceanのためのものです。

答え2

Linuxシステムの使用は正常です。一部まだ空きRAMがあってもスワッピングが可能です。 Linuxカーネルは、ほとんど使用されていないスワップメモリ​​ページに移動します(たとえば、gettyX11および他の一部の非アクティブデーモンのみが使用されている場合)。

スワップスペースの使用量が問題になる使用可能なRAMが不足している場合のみそして、カーネルは、アプリケーションの実行を維持するために、メモリページを引き続きスワップに移動し、再びRAMに移動する必要があります。この状況では、システムモニタアプリケーションは多くのディスクI / Oアクティビティを表示します。

比較のために、2人のユーザーがX11セッションを使用してログインし、両方ともGNOMEデスクトップを実行しているUbuntu 10.04システムは、〜600 MBのスワップと〜1 GBのRAM(バッファとfsキャッシュを除く)を使用しているため、スワップデータの使用量は正常に見えます。 。 。

答え3

LinuxはRAMがいっぱいになる前にスワップを開始します。これはパフォーマンスと応答性を向上させるために行われます。

  • 時には、RAMがプログラムメモリの保存よりもディスクキャッシュに適しているため、パフォーマンスが向上します。そのため、しばらく使用していないプログラムを交換し、頻繁に使用するファイルをキャッシュに保存することをお勧めします。

  • メモリがいっぱいで、一部のプログラムが実行されているときよりもシステムがアイドル状態のときにページを交換し、ジョブを完了するためにより多くのRAMを要求すると、応答性が向上する可能性があります。

もちろん、スワッピングによりシステムの速度が遅くなるが、スワッピングの代替手段は、スワッピングではなく、より多くのRAMを使用するか、より少ないRAMを使用することである。

答え4

より多くのメモリが利用可能

誰もが言ったように、スワップは未使用のメモリを削除してより多くの空きメモリを解放するのに役立ちます。

冬眠

ただし、交換は次の用途にも使用できます。冬眠これは、ノートパソコンを所有している場合、または退職する前にエネルギーを節約し、コンピュータと作業をスリープ状態にしたい場合に便利です。これにより、翌日の朝を早く始めることができます。

休止状態機能を備えていることは、スワッピングのために少なくともRAMサイズを確保するための推奨事項をまだ見ることができる主な理由の1つです。これにより、システムは使用されているすべてのRAMをスワップに入れ、スリープモードに切り替えることができます。

欠点

プロセスがスワップされると、スワップが暗号化されていない限り(もちろん)終了後もスワップからデータを読み取ることができます。

休止状態で暗号交換を使用することは、どのディストリビューションでも可能ではありません。復元する前にボリュームを有効にするには、定数暗号化キー(一部の設定は起動するたびにスワップスペース暗号化キーをランダムに生成します)とinitrd / initramfsを使用する必要があります。

関連情報