Назад | Перейти на главную страницу

Как установить memory.swappiness по умолчанию для всех групп systemd?

В CentOS 7 как мне установить memory.swappiness по умолчанию для всех групп systemd? Я могу сделать это для каждой контрольной группы с помощью параметра ControlGroupAttribute, но я хотел бы изменить значение по умолчанию 60 для всех контрольных групп.

Если вы хотите сделать это для ВСЕХ контрольных групп, вы хотите сделать это для всей системы? В таком случае вы можете установить подкачку для всей системы в "/etc/sysctl.conf". Строка, которую вы будете редактировать, называется «vm.swappiness =», где вы можете установить любое значение от 0 до 100.

В качестве справедливого предупреждения для всех, кто перемещает это значение как способ вообще избежать подкачки, установка этого очень низкого значения почти полностью отключит подкачку по запросу, что является очень полезным способом вывести незанятые страницы из ОЗУ в свопинг. Да, это «подкачка», но это не такая уж отчаянная вещь, как старый традиционный смысл подкачки, когда у нас заканчивается память. Пейджинг по запросу особенно полезен в больших базах данных и не должен ничего замедлять. Это определенно лучше подкачки, когда у нас заканчивается память в последнюю секунду, так как подкачка по запросу помогает предотвратить это в первую очередь, пока система не измельчение до полной остановки, а не после него. Установка 0 для всей системы vm.swappiness может привести к тому, что система будет убивать процессы OOM, когда они находятся под сильным давлением, что потенциально может привести к остановке всей системы из-за паники ядра.

Также стоит упомянуть, что вы должны вызвать файл sysctl.conf для чтения после его редактирования. # sysctl -p читает строки, которые были изменены в /etc/sysctl.conf. vm.swappiness можно изменить в работающей системе таким образом или используя procfs следующим образом: # echo 50 > /proc/sys/vm/swappiness где 50 - любое число от 0 до 100.