web-dev-qa-db-ja.com

vm.swappinessを0に設定してもスワッピングが発生するのはなぜですか?

CentOS 6.5x64サーバーと64GB RAM実行中の [〜#〜] kvm [〜#〜]VPS

これらのサーバーの中には、スワップをまったく使用しないものと、使用するものがあります。 swappinessをゼロに設定しました。ただし、RAMに空きGBがたくさんある場合でも、スワップするものもあります。

障害のある*プログラムはqemu-kvmです-VPSはKVM仮想マシンです。

これは top から出力されます。スワッピング(Op enter)の順序で:

top - 10:47:31 up 14 days,  1:25,  1 user,  load average: 0.05, 0.10, 0.13
Tasks: 325 total,   1 running, 324 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.4%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  65940252k total, 41202572k used, 24737680k free,  9129148k buffers
Swap:  5240808k total,  1039544k used,  4201264k free, 10935732k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
11653 qemu      20   0 1437m 725m 4968 S  0.0  1.1  24:23.56  51m qemu-kvm
 4873 qemu      20   0 1451m 743m 4968 S  0.0  1.2  22:32.94  50m qemu-kvm
14265 qemu      20   0 1443m 742m 4968 S  0.0  1.2  27:21.25  47m qemu-kvm
 5928 qemu      20   0 1445m 751m 4968 S  0.0  1.2  24:56.82  45m qemu-kvm
11294 qemu      20   0 1436m 718m 5004 S  0.0  1.1  23:35.45  45m qemu-kvm
10016 qemu      20   0 1438m 741m 4968 S  0.0  1.2  24:58.07  45m qemu-kvm
 8028 qemu      20   0 1445m 725m 4968 S  0.0  1.1  22:49.86  44m qemu-kvm
13449 qemu      20   0 1439m 738m 5008 S  0.3  1.1  25:49.07  43m qemu-kvm
 9065 qemu      20   0 1439m 738m 4968 S  0.0  1.1  22:35.70  41m qemu-kvm
 5173 qemu      20   0 1443m 748m 4968 S  0.3  1.2  24:57.27  41m qemu-kvm
 6833 qemu      20   0 1445m 735m 4968 S  0.3  1.1  24:43.94  40m qemu-kvm
12901 qemu      20   0 1447m 754m 4968 S  0.7  1.2  26:46.74  39m qemu-kvm
12508 qemu      20   0 1435m 737m 4968 S  0.0  1.1  24:07.60  37m qemu-kvm
 8197 qemu      20   0 1449m 752m 4968 S  0.0  1.2  23:15.54  37m qemu-kvm
 7394 qemu      20   0 1444m 745m 5008 S  0.3  1.2  22:20.29  36m qemu-kvm
 7783 qemu      20   0 1435m 739m 4996 S  0.0  1.1  24:02.63  36m qemu-kvm
14733 qemu      20   0 1448m 753m 5000 S  0.3  1.2  28:58.61  35m qemu-kvm
14323 qemu      20   0 1448m 750m 4968 S  0.0  1.2  26:02.34  35m qemu-kvm
 9381 qemu      20   0 1426m 728m 4968 S  0.0  1.1  23:27.13  35m qemu-kvm
 5472 qemu      20   0 1443m 743m 4968 S  0.3  1.2  22:14.22  35m qemu-kvm
13293 qemu      20   0 1428m 727m 4968 S  0.0  1.1  24:51.03  34m qemu-kvm
11697 qemu      20   0 1449m 756m 4968 S  0.0  1.2  24:46.59  33m qemu-kvm
 4566 qemu      20   0 1432m 747m 5008 S  0.0  1.2  23:28.19  30m qemu-kvm
 9752 qemu      20   0 1439m 743m 4968 S  0.3  1.2  22:56.10  30m qemu-kvm
 6533 qemu      20   0 1438m 747m 4968 S  0.0  1.2  22:38.61  30m qemu-kvm
 6234 qemu      20   0 1418m 724m 4968 S  0.3  1.1  23:14.90  28m qemu-kvm
    1 root      20   0 19232 1524 1232 S  0.0  0.0   0:02.86    0 init

ご覧のとおり、qemu-kvmがスワップしています。ボックスは、更新された最新のOSを実行します。また、無料のRAMがたくさんあることに注意してください。

どうすれば完全にスワッピングを防ぐことができますか?それは私を非常に苛立たせます、そして私がこのようなより多くのサーバーを持っていて、そしていくつかが決して交換しないことを考えるとそれはさらに困惑します。これまで。

4
Horatiu

vm.swappiness = 0はスワッピングを完全に防ぐわけではありません。スワップを完全にオフにするには、root権限でコマンドswapoff -aを発行できます。ただし、スワップを完全に無効にすることは一般的に安全ではありません。メモリ不足の極端な状態が発生すると、システムがクラッシュする可能性があります。また、swapoffアクション自体がスワップ(低速)からRAMにコピーされるため、実際のスワップと同じくらいパフォーマンスに影響を与える可能性があります。

明らかに「空き」メモリがあるにもかかわらず、カーネルは、長時間非アクティブでメモリを消費するプロセスをスワップアウトする傾向があります。これにより、キャッシュ用にRAMが解放され、応答性が向上します。パフォーマンスの低下の本当の証拠がない限り、心配するのをやめてカーネルを愛することをお勧めします;)

5
user319088