Как я могу понять, почему мой кластер Riak не выполняет этап сжатия на компьютерах, когда я ожидаю?
У меня есть кластер машин Riak (V1.2.0), каждый из которых имеет около 50 ГБ пространства на жестком диске. У нас есть хранилище bitcask, настроенное следующим образом:
%% Bitcask Config
{bitcask, [
{data_root, "/var/lib/riak/bitcask"},
{frag_merge_trigger, 40}, %% trigger merge if framentation is > 40% default is 60%
{dead_bytes_merge_trigger, 67108864}, %% trigger if dead bytes for keys > 64MB default is 512MB
{frag_threshold, 20}, %% framentation >= 20% default is 40
{dead_bytes_threshold, 67108864} %% trigger if dead bytes for data > 64MB default is 128MB
]},
Наше программное обеспечение имеет шаблон, где значения часто перезаписываются одними и теми же ключами. То есть набор ключей остается относительно стабильным, а значения меняются не реже одного раза в день.
Наблюдаемая нами схема заключается в том, что доступное дисковое пространство сокращается каждый день, пока другие службы на этих машинах не перестанут работать из-за ошибок нехватки места. Иногда перезапуск на коробке освободит некоторое пространство.
Что-то не так с моим конфигом? Я не совсем уверен, как настроить его так, чтобы он занимал пространство "автоматически" настолько, чтобы у меня не было свободного места на диске в течение недели.
Как я могу проверить?
- Когда алгоритм сжатия определяет, запускать или нет, и что он решает на основании каких критериев?
- Как на самом деле выполнялось уплотнение
- Сколько места было освоено
1 ответ
Добавьте одну строку в вашу конфигурацию bitcask
{log_needs_merge, true}
Всякий раз, когда происходит слияние, в файле console.log будет запись, которая показывает, какие файлы встретились, какие триггеры