Должна ли используемая память различаться на разных идентичных узлах, когда оба узла участвуют в кластере мнезии?
У меня есть два узла на двух разных, одинаковых виртуальных машинах - оба идентичных CentOS 64 бит, одинаковое количество оперативной памяти, процессоров и т. Д.
У меня мнезия, сгруппированная на этих двух узлах - очень виналла, не фрагментированный кластер
Узел 1 показывает следующее
{size,[{ttl,0,283},
{scope_to_keys,5,97105},
{type_to_keys,3,97043},
{key_to_value,6015,393137},
{schema,5,935}]}
Node 2 показывает
{size,[{ttl,0,300},
{scope_to_keys,5,97122},
{type_to_keys,3,97060},
{key_to_value,6015,405184},
{schema,5,952}]}
Структура кортежа: {имя_таблицы, записи, слова}.
- mnesia:info() сообщает, что при запуске на каждом узле точно такие же числа, как указано выше.
- Все таблицы являются оперативными копиями
- Никаких транзакций не происходит - никаких действий в течение нескольких часов
- mnesia:info() также сообщает: 33 транзакции совершено, 0 прервано, 9 перезапущено, 0 записано на диск 0 удержано блокировок, 0 в очереди; 0 локальных транзакций, 0 удаленных 0 транзакций ждут другие узлы: []
Это нормально, что два узла сообщают о разной используемой памяти?
1 ответ
Что вы должны сделать, это спросить два узла, одинаковое ли содержимое таблицы или нет. Мнесия и Эрланг вообще собирают мусор. Следовательно, фактическое использование памяти в некоторых случаях может отличаться. Также обратите внимание, что может случиться так, что один из узлов в настоящее время выполняет некоторые работы по техническому обслуживанию / является лидером и так далее. Это сделает память немного другой. Наконец, два узла могут хранить суббинарные файлы, в которых хранится исходный двоичный файл. Но при репликации суббинарный файл вырубается и копируется на другой узел. Это объясняет небольшое расхождение, возможно.
Если нет существенного различия в размерах. То есть один узел использует примерно на 33% больше памяти, тогда я бы не стал сильно беспокоиться.