На одной ноде запущено 10К процессов.
При запуске процесса делается задержка в интервале 1-15 секунд.
init([Id]) ->
...
{ok,State,InitialDelayMs}
По таймауту (15 sec) вызывается метод с другой ноды по сети (1Gbit).
Получаем примерно 600 сообщений в секунду.
handle_info(timeout, State) ->
Msg = term_to_binary([{start,os:timestamp()}]),
Reply = gen_server:call({srv,node1@host2},{ping,Msg}),
FullMsg = [{end,os:timestamp()} | binary_to_term(Reply)],
ets:insert(test, {Id, FullMsg})
...
Обработчик srv.
handle_call({ping,Msg}, From, State) ->
spawn(fun() -> gen_server:reply(From, Msg) end,
{noreply, State};
Отдельный метод считает статистику (timer:now_diff(end,start) ) и выводит три значения: min, max, median.
Проблема в том что постепенно время вызова метода с другой ноды по этим значениям начинает увеличиваться.
В чем грабли? Откуда идет увеличение времени? Не могу сообразить