Настройки Valkey™
Для кластера Yandex Managed Service for Valkey™ можно задать настройки, которые относятся к Valkey™.
Метки рядом с названием настройки позволяют определить, с помощью какого интерфейса задается значение этой настройки: консоль управления, CLI, API или Terraform. Метка Все интерфейсы указывает, что поддерживаются все перечисленные интерфейсы.
В зависимости от выбранного интерфейса, одна и та же настройка будет представлена по-разному, например, Maxmemory policy в консоли управления соответствует:
maxmemory_policyв gRPC API, Terraform;maxmemoryPolicyв REST API.
Настройки СУБД
Доступны следующие настройки:
-
Activedefrag
Консоль управленияCLIAPIВключает активную дефрагментацию памяти в кластере. Это помогает уменьшить фрагментацию памяти, которая может приводить к проблемам с нехваткой памяти. Не рекомендуется включать настройку, если проблем с фрагментацией памяти нет.
По умолчанию настройка выключена.
Подробнее см. в документации Valkey™
. -
Allow data loss
Все интерфейсыЕсли флаг включен, при выходе из строя текущего мастера кластер может переключиться на реплику, которая не содержит последних записей. Это может привести к потере данных. Если большинство хостов находится в одной зоне доступности, то Valkey™ продолжит работать, несмотря на отсутствие последних записей.
Если флаг отключить, операции переключения мастера будут ждать полной синхронизации реплик, что гарантирует сохранность всех данных. Но если более 50% хостов одновременно выйдут из строя, новый мастер не будет выбран и операции записи станут недоступны. В этом случае потребуется выбрать новый мастер вручную, однако данные не потеряются и будут сохранены после выборов мастера и синхронизации реплик.
По умолчанию настройка выключена.
-
Aof max size percent
Все интерфейсыМаксимальный размер файла AOF в процентах от размера диска. При превышении этого размера новые запросы на запись блокируются, что позволяет избежать переполнения диска.
Минимальное значение —
1, максимальное значение —100, значение по умолчанию —99. -
Client output buffer limit normal
Все интерфейсыОграничение объема выходного буфера для обычных клиентов.
Valkey™ использует выходной буфер для временного хранения данных, сгенерированных запросом, перед отправкой в клиент. Если клиент отправляет новые запросы быстрее, чем Valkey™ успевает обрабатывать текущие, это приводит к увеличению размера буфера.
Настройка включает в себя следующие параметры:
- Hard limit — жесткое ограничение объема буфера (в байтах). При превышении указанного значения соединение с клиентом будет немедленно прервано. Минимальное значение —
0(ограничение отсутствует). Значение по умолчанию определяется ограничениями скорости сети, зависящими от конфигурации виртуальной машины. В консоли управления единицы измерения задаются параметром Hard limit unit. - Soft limit — мягкое ограничение объема буфера (в байтах). Соединение с клиентом будет прервано только если превышение указанного значения сохранялось в течение времени, заданного параметром Soft seconds. Минимальное значение —
0(ограничение отсутствует). Значение по умолчанию —<значение_Hard_limit>/2. В консоли управления единицы измерения задаются параметром Soft limit unit. - Soft seconds — время (в секундах), в течение которого допустимо превышение мягкого ограничения объема буфера. Минимальное значение —
0. Значение по умолчанию —60.
Подробную информацию о настройке см. в документации Valkey™
. - Hard limit — жесткое ограничение объема буфера (в байтах). При превышении указанного значения соединение с клиентом будет немедленно прервано. Минимальное значение —
-
Client output buffer limit pubsub
Все интерфейсыОграничение объема выходного буфера для клиентов, работающих в парадигме Pub/Sub
.Valkey™ использует выходной буфер для временного хранения данных, сгенерированных запросом, перед отправкой в клиент. Если клиент отправляет новые запросы быстрее, чем Valkey™ успевает обрабатывать текущие, это приводит к увеличению размера буфера.
Настройка включает в себя следующие параметры:
- Hard limit — жесткое ограничение объема буфера (в байтах). При превышении указанного значения соединение с клиентом будет немедленно прервано. Минимальное значение —
0(ограничение отсутствует). Значение по умолчанию —33554432(32 МБ). В консоли управления единицы измерения задаются параметром Hard limit unit. - Soft limit — мягкое ограничение объема буфера (в байтах). Соединение с клиентом будет прервано только если превышение указанного значения сохранялось в течение времени, заданного параметром Soft seconds. Минимальное значение —
0(ограничение отсутствует). Значение по умолчанию —8388608(8 МБ). В консоли управления единицы измерения задаются параметром Soft limit unit. - Soft seconds — время (в секундах), в течение которого допустимо превышение мягкого ограничения объема буфера. Минимальное значение —
0, значение по умолчанию —60.
Подробную информацию о настройке см. в документации Valkey™
. - Hard limit — жесткое ограничение объема буфера (в байтах). При превышении указанного значения соединение с клиентом будет немедленно прервано. Минимальное значение —
-
Cluster allow pubsubshard when down
Все интерфейсыЕсли флаг включен, хостам разрешено обслуживать запросы приложений к шардированным каналам Pub/Sub
и перенаправлять их на выделенный для этого хеш-слот шарда, если кластер находится в неработоспособном состоянии.По умолчанию настройка выключена.
Подробнее см. в документации Valkey™
. -
Cluster allow reads when down
Все интерфейсыЕсли флаг включен, хостам разрешено обслуживать запросы на чтение, когда кластер находится в неработоспособном состоянии. Настройка может использоваться в следующих случаях:
- Клиентское приложение не требует согласованности данных при сбоях реплик или нарушении сетевой связности.
- Нужно сохранить доступность хостов кластера для чтения, если недоступен хост-мастер шарда в кластере из одного или двух шардов.
По умолчанию настройка выключена.
Подробнее см. в документации Valkey™
. -
Cluster require full coverage
Все интерфейсыЕсли флаг включен, хосты перестают принимать запросы, когда по крайней мере один хеш-слот не открыт (ни один доступный хост его не обслуживает). Таким образом, если в кластере есть недоступные хеш-слоты, весь кластер становится недоступным.
По умолчанию настройка выключена. Это значит, что доступные хосты кластера будут продолжать принимать запросы для той части хеш-слотов, которая остается доступной.
Подробнее см. в документации Valkey™
. -
Databases
Все интерфейсыКоличество баз данных.
Valkey™ использует концепцию логических баз данных, которые изолированы друг от друга. Операции с ключами и значениями в одной базе не влияют на данные в других базах. Каждая база идентифицируется своим номером (от
0доDatabases − 1).Минимальное значение —
1, максимальное значение —2147483647, значение по умолчанию —16.Подробнее см. в документации Valkey™
.Важно
Изменение этого параметра приведет к перезапуску всех запущенных нод Valkey™.
-
Io threads allowed
Все интерфейсыЕсли флаг включен, операции чтения и записи обрабатываются в разных потоках ввода-вывода (I/O threads). Это повышает производительность нешардированного кластера. Не рекомендуется включать настройку в кластерах, в которых количество ядер CPU для хоста меньше 4.
По умолчанию настройка выключена.
Подробнее см. в документации Valkey™
. -
Lfu decay time
Все интерфейсыПараметр предназначен для настройки режимов управления памятью
volatile-lfuиallkeys-lfu. Он определяет промежуток времени в минутах, который должен пройти, чтобы значение счетчика LFU ключа (показатель востребованности ключа) уменьшилось.Минимальное значение —
0(счетчик LFU никогда не уменьшается), значение по умолчанию —1.Подробнее см. в документации Valkey™
. -
Lfu log factor
Все интерфейсыПараметр предназначен для настройки режимов управления памятью
volatile-lfuиallkeys-lfu. Он определяет, насколько быстро увеличивается значение счетчика LFU ключа (показателя востребованности ключа) с ростом количества обращений к ключу. Практически это значит, что каждое значение параметра задает некий уровень точности определения наиболее и наименее востребованных ключей.Параметр применяется при каждом обращении к ключу по следующему алгоритму:
-
Генерируется случайное число R в интервале от 0 до 1.
-
Вычисляется вероятность P увеличения счетчика по формуле:
1 / (<текущее_значение_счетчика_LFU> × lfu_log_factor + 1) -
Счетчик увеличивается на 1, если R < P.
Минимальное значение —
0, значение по умолчанию —10.Подробнее см. в документации Valkey™
. -
-
Lua time limit
Консоль управленияCLIAPIМаксимальное время выполнения Lua-скрипта (в миллисекундах).
Допустимые значения — от
0до5000. Значение по умолчанию —5000.0— время выполнения не ограничено.При изменении не влияет на работу уже запущенного скрипта.
Подробнее см. в документации Redis
. -
Maxmemory percent
Все интерфейсыМаксимальный процент оперативной памяти, который будет выделен для пользовательских данных на хостах кластера Yandex Managed Service for Valkey™.
Минимальное значение — 1, максимальное значение — 75, значение по умолчанию — 75.
Примечание
Понижение максимального процента понизит вместимость базы данных. Это может быть полезно, если в базе наблюдаются проблемы с OOM Killer (Out of Memory Killer).
-
Maxmemory policy
Все интерфейсыРежим управления памятью при ее дефиците.
volatile-lru— удалять ключи с истекшим (expired) сроком жизни (Time-To-Live, TTL), начиная с наиболее давно использованного (least recently used, LRU);volatile-lfu— удалять ключи с истекшим сроком жизни, начиная с наиболее редко используемого (least frequently used, LFU);volatile-ttl— удалять ключи с истекшим сроком жизни, начиная с ключа с наименьшим сроком жизни;volatile-random— удалять ключи с истекшим сроком жизни в произвольном порядке;allkeys-lru— удалять ключи вне зависимости от их срока жизни, начиная с наиболее давно использованного;allkeys-lfu— удалять ключи вне зависимости от их срока жизни, начиная с наиболее редко используемого;allkeys-random— удалять ключи вне зависимости от их срока жизни в произвольном порядке;noeviction(по умолчанию) — не удалять ключи. Вернуть ошибку, если для вставки данных недостаточно памяти.
Подробнее см. в документации Valkey™
. -
Notify keyspace events
Все интерфейсыНастройка уведомлений о событиях, происходящих в пространстве ключей.
Значение — строка с модификаторами, которые управляют выводом уведомлений. Значение по умолчанию — пустая строка (вывод уведомлений отключен).
Полный список модификаторов см. в документации Valkey™
. -
Repl backlog size percent
Все интерфейсыРазмер лога репликации на мастере в процентах от размера диска. Чем больше размер лога, тем дольше реплика может оставаться работоспособной при сетевой недоступности мастера.
Подробнее см. в документации Valkey™
-
Slowlog log slower than
Все интерфейсыЗапросы, выполняющиеся дольше указанного времени (в микросекундах), считаются длительными. Такие запросы попадают в лог медленных запросов (slow log). При значении
0в этот лог будут попадать все выполняемые запросы.Минимальное значение —
-1(лог медленных запросов не ведется), максимальное значение —9223372036854775807, значение по умолчанию:10000.Подробнее см. в документации Valkey™
. -
Slowlog max len
Все интерфейсыМаксимальное количество записей в логе медленных запросов. При заполнении лога перед вставкой новых записей будут удалены самые старые.
Минимальное значение —
0(лог медленных запросов не ведется), максимальное значение —9223372036854775807, значение по умолчанию —1000.Подробнее см. в документации Valkey™
. -
Timeout
Все интерфейсыВремя в секундах, в течение которого будет поддерживаться соединение с неактивными клиентами.
Минимальное значение и значение по умолчанию —
0(соединения не закрываются), максимальное значение —2147483647.Подробнее см. в документации Valkey™
. -
Turn before switchover
Все интерфейсыЕсли флаг включен, агент управления состоянием хоста перед назначением нового мастера переключает реплику на хост нового мастера.
По умолчанию настройка выключена.
-
Use luajit
Все интерфейсыЕсли флаг включен, для обработки Lua-скриптов используется LuaJIT
. Это может ускорять обработку при активном использовании скриптов.По умолчанию настройка выключена.
Подробнее см. в документации Valkey™.
-
Zset max listpack entries
Все интерфейсыЕсли количество элементов упорядоченного множества (Sorted Set
) меньше указанного числа, то к элементам массива будет применяться специальная кодировка для уменьшения занимаемого места.Подробнее см. в документации Valkey™
.