У меня есть кластер машин Riak (V1.2.0), каждая с примерно 50 ГБ места на жестком диске. У нас есть биткаск-хранилище, настроенное следующим образом:
%% 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
]},
В нашем программном обеспечении есть шаблон, в котором значения часто переписываются с использованием одних и тех же ключей. IE, набор ключей остается относительно стабильным, в то время как значения меняются не реже одного раза в день.
Наблюдаемая нами закономерность состоит в том, что доступное дисковое пространство сжимается каждый день, пока другие службы на этих машинах не перестанут работать из-за ошибок нехватки места. Иногда перезапуск на коробке освобождает место.
Что-то не так с моей конфигурацией? Я не совсем уверен, как настроить его так, чтобы освободить пространство «автоматически» настолько, чтобы у меня не закончилось место на диске в течение примерно недели.
Как я могу проверить?
Добавьте одну строку в конфигурацию вашей битовой маски
{log_needs_merge, true}
Всякий раз, когда происходит слияние, в файле console.log будет запись, которая показывает, какие файлы встретились, какие триггеры