Почему я получаю обмен, даже если я установил vm.swappiness в 0?

5444
Horatiu

У меня есть пара серверов CentOS 6.5 x64 с 64 ГБ ОЗУ, на которых работает множество VPS KVM .

Некоторые из этих серверов вообще не используют своп, а некоторые - нет. Я установил swappiness на ноль. Тем не менее, некоторые по-прежнему меняются местами, даже если у них много свободных ГБ в оперативной памяти.

Неисправная * программа - 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 обменивается. Ящики работают с последней обновленной ОС. Также обратите внимание, что там много свободной оперативной памяти.

Как я могу полностью предотвратить обмен? Это меня очень раздражает, и это еще более озадачивает, учитывая, что у меня больше таких серверов, а некоторые никогда не меняются местами. Когда-либо.

2

1 ответ на вопрос

5

vm.swappiness = 0 does not completely prevent swapping. To turn swap off altogether, you could issue the command swapoff -a with root privilege. However, disabling swap completely is generally unsafe -- when a memory-starvation extreme condition hits, the system will probably crash. Also, the swapoff action itself copies from swap (slow) to RAM, therefore it may just as well hit performance as actual swapping.

Despite the apparent "free" memory, the kernel tends to swap out long-inactive and memory -consuming processes. This frees up RAM for caches, thus improves responsiveness. Unless you have real proof of performance degradation, I'd suggest you stop worrying and love the kernel ;)

да, хорошо, учитывая тот факт, что некоторые коробки были предустановлены со свопом 1 Гб, когда этот своп заполняет vps pids убивают. совсем не смешно. Вот почему я создал дополнительный своп в виде файла и добавил к существующему свопу. все еще хочу, что perma не swap, потому что у него есть 20 ГБ оперативной памяти без буфера. Ваше решение было рассмотрено, но я не знаю, насколько это безопасно - делать своп в производстве. некоторые вещи, которые я никогда не рассматривал, могут потерпеть крах. или хуже. Horatiu 9 лет назад 0
Как упоминалось здесь (https://www.percona.com/blog/2014/04/28/oom-relation-vm-swappiness0-new-kernel/), в современных ядрах vm.swappiness = 0 имеет новое значение; это отключит обмен (в действительности) ϹοδεMεδιϲ 8 лет назад 2

Похожие вопросы