Своп используется, когда в нем нет необходимости

У меня: vm.swappiness = 1 как предлагается здесь , чтобы предотвратить использование Swap, когда имеется много доступной памяти. (0 полностью отключит свопинг, насколько я понимаю)

В частых случаях я использую, скажем, 5 ГБ подкачки (всего 16 ГБ),
пока у меня 9 ГБ свободной доступной памяти (всего 32 ГБ)
(свободно только 1 ГБ, если считать кешированную RAM.)

Поскольку мое приложение начинает работать медленнее (поскольку большая часть Swap-файла исходит от MariaDB), я запускаю:

swapoff -a
swapon -a

И вся память подкачки перемещается в основную RAM.
В итоге у меня остается 5,6 ГБ доступной оперативной памяти, 4 ГБ, если считать кешированным.

Нет очевидной причины иметь такой большой объем Swap.
Я занимаюсь этим вопросом и не могу найти способ предотвратить использование Swap, когда он не нужен.
vm.swappiness = 1 определенно "постоянно сохраняется", так как он находится в файле sysctl.conf , и были перезагрузки и т. д.

Я не хочу отключать своп, но я могу придумать единственный обходной путь:

  1. отключить своп
  2. запустить cron каждые 1 минуту, чтобы проверить, сколько свободная RAM есть
  3. включить swap, если доступная RAM мало

Но это ОЧЕНЬ рискованно, и я бы хотел, чтобы ОС была достаточно умной, чтобы справиться с этим лучше!

Нет абсолютно никакого способа ] использовать своп только тогда, когда это абсолютно необходимо ?

1
задан 13 December 2020 в 21:59
1 ответ

У вас много чего работает на сервере? Если это так, возможно, стоит рассмотреть выделенную машину или виртуальную машину для БД.

Это физический или виртуальный/облачный сервер? Некоторые облачные провайдеры НЕ хотят, чтобы вы вообще использовали своп (поэтому просто укажите это, если это актуально): https://docs.rackspace.com/support/how-to/swap-space-on -cloud-servers/

На этой странице есть хорошее обсуждение по устранению неполадок подкачки для MySQL или MariaDB — возможно, проверьте раздел NUMA ближе к концу: https://fromdual.com/do-not-underestimate -performance-impacts-of-swapping-on-numa-database-systems

Этот вопрос и ответ на сайте MariaDB приводит к настройкам чередования NUMA в качестве возможного решения: https://mariadb.com/kb/en/swap-usage-wont-decrease/

Много дискуссий о памяти и MariaDB: https://mariadb.com/kb/en/mariadb-memory-allocation/

А это официальное видео на YouTube для NUMA :-D https://youtu.be/KmtzQCSh6xk

Пожалуйста, проголосуйте за этот ответ / примите его, если он полезен. Спасибо.

1
ответ дан 13 December 2020 в 22:11

Теги

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