Настройка параметров памяти для сервисов хранилища#
Ограничения и гарантированные объемы памяти для сервисов хранилища можно настроить во время выполнения с помощью команд vinfra memory-policy vstorage-services. Это можно сделать для всего кластера или отдельного сервера.
Следующие параметры памяти можно настроить вручную:
гарантированный объем памяти;
размер файла подкачки;
кэш страниц, который, в свою очередь, задается с помощью множителя, минимального значения и максимального значения.
Кэш страниц рассчитывается по следующей формуле:
$PAGE_CACHE = minimum <= ratio * $TOTAL_MEMORY <= maximum
Значения minimum и maximum — это "жесткие" ограничения, которые применяются, если значение ratio * $TOTAL_MEMORY выходит за эти пределы.
Чтобы лучше понять, как вычисляется размер кэша страниц, рассмотрите примеры в таблице.
Пример 1 (размер кэша в пределах ограничений) |
Пример 2 (размер кэша равен минимальному) |
Пример 3 (размер кэша равен максимальному) |
|
|---|---|---|---|
Всего памяти |
4 ГиБ |
4 ГиБ |
4 ГиБ |
Множитель кэша |
0,5 |
0,1 |
0,9 |
Минимальный кэш |
1 ГиБ |
2 ГиБ |
1 ГиБ |
Максимальный кэш |
3 ГиБ |
3 ГиБ |
3 ГиБ |
Размер кэша |
2 ГиБ |
2 ГиБ |
3 ГиБ |
Если параметры памяти заданы как для сервера, так и для кластера, применяются параметры для сервера. Если параметры памяти, настраиваемые вручную, отсутствуют, то управление памятью автоматически выполняется демоном vcmmd следующим образом:
Каждый CS (например, диск хранилища) требует 512 МиБ ОЗУ для кэша страниц;
Минимальный кэш страниц составляет 1 ГиБ;
Если общий объем памяти меньше 48 ГиБ, то максимальный кэш страниц рассчитывается как две трети этого объема;
Если общий объем памяти больше 48 ГиБ, то максимальный кэш страниц составляет 32 ГиБ.
Чтобы проверить текущие параметры памяти для сервисов хранилища, заданные демоном vcmmd, выполните следующую команду:
# vcmmdctl list
name type active guarantee limit swap cache
<...>
vstorage.slice/vstorage-services.sl… SRVC yes 1310720 24522132 0 1048576