回答:
Linuxカーネルは、swapinessと呼ばれるスワップファイルの使用頻度を制御する調整可能な設定を提供します。
swappiness設定が0の場合、絶対に必要な場合(メモリが不足している場合)を除いてディスクが回避されます。swapiness設定が100の場合、プログラムはほぼ瞬時にディスクにスワップされます。
Ubuntuシステムにはデフォルトの60が付属しています。これは、メモリ使用量がRAMの約半分である場合、スワップファイルがかなり頻繁に使用されることを意味します。以下を実行することにより、ご使用のシステムのswappiness値を確認できます。
one@onezero:~$ cat /proc/sys/vm/swappiness
60
4 GBのRAMがあるので、これを10または15に減らします。その後、スワップファイルは、RAMの使用率が約80または90パーセントの場合にのみ使用されます。システムのswappiness値を変更するには/etc/sysctl.conf
、rootとして開きます。次に、この行をファイルに変更または追加します。
vm.swappiness = 10
変更を有効にするために再起動します。
システムの実行中に値を変更することもできます:
sysctl vm.swappiness=10
また、同じ効果を得るために再起動する代わりに実行swapoff -a
しswapon -a
てからルートとしてスワップをクリアすることもできます。
スワップ式を計算するには:
free -m (total) / 100 = A
A * 10
root@onezero:/home/one# free -m
total used free shared buffers cached
Mem: 3950 2262 1687 0 407 952
-/+ buffers/cache: 903 3047
Swap: 1953 0 1953
合計は3950/100 = 39.5 * 10 = 395です
つまり、RAMの10%(395 MB)が残っていると、スワップの使用が開始されます。
swappinessパラメータは、カーネルがプロセスを物理メモリからスワップディスクに移動する傾向を制御します。ディスクはRAMよりもはるかに遅いため、プロセスがメモリから積極的に移動されすぎると、システムとアプリケーションの応答時間が遅くなる可能性があります。
swappiness
0〜100の値を設定できます。swappiness=0
:
swappiness=1
:
swappiness=100
:
http://en.wikipedia.org/wiki/Swappinessを参照してください。
Ubuntuのデフォルト設定はswappiness=60
です。swappinessのデフォルト値を減らすと、おそらく典型的なUbuntuデスクトップインストールの全体的なパフォーマンスが向上します。の値をswappiness=10
推奨しますが、自由に実験してください。
91%でスワップの使用を開始しました:
私がRAMを利用するために、私のシステムおよびVMを構成してきたように90% 、で90%まったくスワップありませんでした。
その後、Firefox&Shutterなどのアプリケーションをいくつか開きましたが、RAMの使用率が90%を超えているため、スワップが開始されました。
sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf"