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


3

多くのKVM VPSを実行する64 GB RAMを備えたCentOS 6.5 x64サーバーがいくつかあります。

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

faulty *プログラムは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が利用可能であることに注意してください。

スワップを完全に防ぐにはどうすればよいですか?これは私を非常に悩まし、このようなサーバーがさらにあり、一部のサーバーがスワップしないことを考えると、さらに困惑させられます。今まで。

回答:


5

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

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


はい、まあ、いくつかのボックスに1GBのスワップが事前にインストールされていたという事実を考えると、このスワップがvps pidを埋めると殺されます。まったく面白くない。そのため、ファイルとして追加のスワップを作成し、既存のスワップに追加しました。20GBのRAMバッファが空いているので、perma no swapが必要です。あなたのソリューションは検討されていますが、実稼働環境でスワップオフを行うことがいかに安全かはわかりません。私が考えたことのないものがクラッシュする可能性があります。またはさらに悪い。
ホラティウ

2
ここで述べたように(percona.com/blog/2014/04/28/…)、最新のカーネルでは、vm.swappiness = 0には新しい意味があります。スワップを無効にします(実際)
δοδεMεδιϲ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.