Как настроить подкачку в Linux Memory Management?


11

Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Что такое настройка по умолчанию и как ее настроить для улучшения общей производительности ?


3
После изменения swappiness я нашел полезным очистить swap, swapoff -aчтобы начать заново. serverfault.com/a/354384/203035
Nemo

Ответы:


10

Ядро Linux предоставляет настраиваемую настройку, которая управляет перестановкой

$ cat /proc/sys/vm/swappiness
60  

открыть /etc/sysctl.confкак корень. Затем измените или добавьте эту строку в файл:

vm.swappiness = 10

для временного изменения значения подкачки попробуйте эту команду:

$ echo 50 > /proc/sys/vm/swappiness

1
Как он отвечает «как настроить это, чтобы улучшить общую производительность?»
Techraf

Подкачка необходима, когда производительность вашей системы низкая, потому что это происходит в то время, когда у вас заканчивается неиспользуемая оперативная память, что могло бы замедлить работу вашей системы (возможно, даже при сбое приложений), даже если у вас не было подкачки. Таким образом, чтобы упростить процесс, обмен происходит потому, что ваша система перегружена, а не наоборот - и в некоторых случаях это может спасти день.
Дворняга

2
Вам также не нужно, чтобы sudo sysctl -p /etc/sysctl.confизменения вступили в силу?
пкарамол

11

Из Swappiness, Википедия

Вы можете установить это значение в виртуальном файле /proc/sys/vm/swappiness . Упомянутое значение будет решать, как использовать пространство подкачки, ниже приведены значения с их намерениями.

vm.swappiness = 0   # Swap is disabled. In earlier versions, this meant that the kernel would swap only to avoid an out of memory condition, but in later versions this is achieved by setting to 1.
vm.swappiness = 1   # Kernel version 3.5 and over, as well as kernel version 2.6.32-303 and over: Minimum amount of swapping without disabling it entirely.
vm.swappiness = 10  # This value is sometimes recommended to improve performance when sufficient memory exists in a system, this value *10* could be considered for the performance being expected. 
vm.swappiness = 60  # The default value.
vm.swappiness = 100 # The kernel will swap aggressively.

Хотя на самом деле это также зависит от необходимости, если доступной физической памяти достаточно, может и не быть большой потребности в пространстве подкачки, с точки зрения Layman, не будет необходимости изменять значение по умолчанию 60.


@techraf обновил ответ.
Кейшов Борат

1
В ВМ я советую изменить его на 10 на всякий случай.
Руи Ф. Рибейро

2

В RedHat / CentOS значением по умолчанию является 60.
«Для повышения производительности» это очень широкий термин. Какую производительность вы пытаетесь улучшить?

У вас есть проблемы с нехваткой памяти?
Ваша система поменяется местами, когда еще есть свободная память / кэшированная память?

В Linux свободная RAM = потерянная RAM, поэтому почти вся свободная память используется для кэширования диска.
В случаях с перестановкой = 60 страницы в памяти перемещаются в SWAP, если к ним не обращались в течение продолжительных периодов времени, независимо от того, была ли у вас нераспределенная оперативная память.
Перемещение некоторых страниц памяти в SWAP не обязательно является плохой вещью.

Просьба пролить свет на вашу проблему для более подробного ответа.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.