32 GB RAMおよび2GBスワップのInteli5でOpenStackFolsomを使用してUbuntuQuantalを実行しているデスクトップがあります。それぞれEC2m1.smallのようなサイズの7つのVMを実行しているため、1.7 GB RAMそれぞれ。KVMを使用しています。
5または6を同時に実行するようになると、ホストはそれらを交換し始めます。
top - 23:45:42 up 3 days, 1:51, 10 users, load average: 0.37, 0.75, 1.15
Tasks: 418 total, 2 running, 413 sleeping, 3 stopped, 0 zombie
%Cpu(s): 8.8 us, 2.1 sy, 0.0 ni, 88.8 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem: 32864580 total, 32586956 used, 277624 free, 574236 buffers
KiB Swap: 1998844 total, 1113352 used, 885492 free, 16498252 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24652 libvirt- 20 0 4169m 1.7g 7756 S 3.6 5.4 4:49.37 kvm
25233 libvirt- 20 0 4450m 1.6g 7756 S 1.2 5.2 4:35.12 kvm
25589 libvirt- 20 0 4163m 1.6g 7756 S 2.4 5.1 4:40.31 kvm
6562 root 39 19 2935m 658m 7460 S 0.0 2.1 100:05.62 Java
28393 libvirt- 20 0 4149m 624m 7756 S 0.0 1.9 2:25.01 kvm
28106 libvirt- 20 0 4170m 617m 7756 S 0.0 1.9 2:18.17 kvm
26519 libvirt- 20 0 4167m 590m 7756 S 0.0 1.8 2:22.16 kvm
29399 libvirt- 20 0 4159m 589m 7756 S 0.0 1.8 2:19.94 kvm
$ free -m
total used free shared buffers cached
Mem: 32094 31868 225 0 559 16175
-/+ buffers/cache: 15134 16959
Swap: 1951 1087 864
# /tmp/swap-used.sh |grep kvm
PID=944 - Swap used: 0 - (kvm-irqfd-clean )
PID=24652 - Swap used: 102468 - (kvm )
PID=25233 - Swap used: 108644 - (kvm )
PID=25589 - Swap used: 155768 - (kvm )
PID=26519 - Swap used: 192216 - (kvm )
PID=28106 - Swap used: 150796 - (kvm )
PID=28393 - Swap used: 208488 - (kvm )
PID=29399 - Swap used: 187388 - (kvm )
私はすでにswapinessを20、次に10、最後に0に設定しようとしましたが、どれも違いはありませんでした。
# cat /proc/sys/vm/swappiness
0
ホストを60から0に変更してから再起動していません(再起動する必要がありますか)?また、/sbin/swapoff -a; /bin/swapon -a
でスワップを完全にオフにしました。スワップを再度有効にした直後に、次のように表示されます。
$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
2 0 11384 247572 652736 16539748 11 10 291 228 13 12 7 3 87 3
0 0 12968 234360 652756 16554432 0 317 8576 1240 3508 5470 17 2 75 5
1 0 17068 243512 652768 16559508 0 820 9448 1216 3687 4845 20 2 77 2
1 0 20040 233300 652772 16576152 0 594 12262 677 4436 5063 29 2 68 1
1 0 22764 219156 652792 16594448 6 546 11962 727 3870 4559 28 1 68 2
3 0 40832 229384 652776 16602440 0 3614 58404 4176 2051 6231 21 2 66 10
1 0 52420 232236 652784 16613320 0 2318 42174 2512 1819 4026 15 2 77 6
プロセスを交換せずに使用できる15GBの空きメモリがあります。
プロセスを交換せずに使用できる15GBの空きメモリがあります。
いいえ、必要ありません。
total used free shared buffers cached
Mem: 32094 31868 225 0 559 16175
225MBの空きメモリがあります。
KiBスワップ:1998844合計、1113352使用、885492無料、16498252キャッシュ
貴重なRAMから未使用のジャンクを取り出すことで、システムが作成したすばらしいキャッシュをすべて見てください。なぜ貴重なRAMを無駄にしようとしているのですか?
RAMに1GBのデータがあり、それが数時間使用されていない場合、より理にかなっています:
忙しくなく、使用するキャッシュが1 GB多い場合は、それをディスクにスワップアウトします。
あなたはそれをメモリに保持します。使用するキャッシュが1GB少なくなり、そのメモリが他の何かのために必要になった場合は、忙しいときにそれを交換する必要があります。
ただし、オペレーティングシステムのメモリ管理ロジックを作成した人よりもメモリ管理についてよく知っていると思われる場合は、先に進んで、魔法の「すべてをより速く、よりよく」行うスイッチを見つけてください。