Управление памятью в Yandex Managed Service for Valkey™
Для пользовательских данных на хостах кластера Yandex Managed Service for Valkey™ выделяется 75% от общего объема оперативной памяти. Оставшаяся память резервируется для служебных нужд процесса Valkey™. Объем памяти, доступной для пользовательских данных, можно понизить с помощью параметра Maxmemory percent — это может быть полезно, если в кластере возникают ошибки Out of Memory.
Резервирование памяти на хосте позволяет:
- повысить производительность и стабильность процесса Valkey™;
- организовать стабильное создание резервных копий.
Повышение производительности и стабильности процесса Valkey™
На хостах кластера Yandex Managed Service for Valkey™ используется настройка ядра Linuxvm.overcommit_memory = 0
. С помощью нее процесс Valkey™ минимизирует количество обращений к файлу подкачки. Это повышает производительность и обеспечивает стабильную работу процесса Valkey™, в т. ч. при репликации и создании резервных копий.
Стабильное создание резервных копий
Резервные копии в Yandex Managed Service for Valkey™ создаются на основе консистентного снимка памяти процесса. Снимок создается в результате копирования исходного процесса Valkey™ с помощью системного вызова fork()
.
Использование fork()
снижает потребление RAM, т. к. исходный процесс Valkey™ и его копия совместно используют одинаковые страницы памяти. Наличие резерва RAM и настройка vm.overcommit_memory = 0
делает использование fork()
более безопасным — создание копий не влияет на производительность основного процесса Valkey™.
При работе fork()
используется механизм Copy-on-Write
- выберите такое время начала резервного копирования, когда кластер наименее нагружен;
- увеличьте объем оперативной памяти, повысив класс хостов.