probe", atom_count: :erlang.system_info(:atom_count)); Health.alive?() || exit({:shutdown, 1})'
У тебя в каком-то другом месте видать атомы текут
Возможно, но рост кол-ва атомов совпадает с частотой вызова этого кода.
Поищи в коде где у тебя атомы вызываются
Ну может есть ещё что-то с таймерами раз в секунду? Если это веб-сервис, то может быть HTTP завпросы от ботов с такой частотой, например
Тоже конечно возможно, но оно так начало себя вести после введения таких healthcheck'ов (выше)
Ну кстати это вероятно`rpc` часть хелсчека. Elixir стартует новую пустую ноду, коннектится к "соседу", и запускает через RPC то что ты попросил, если я не ошибаюсь. Это, как я понимаю, как минимум один новый атом - на node name
А ну да. Мы эту гипотезу проверяли, только node name внутри самого rpc проверяли)
А почему решили пробы через rpc делать, а не через http?
Так быстрее и единообразно, тк мы еще startup-пробу используем
Хмм, да, текут из за rpc. Попробовал rpc запускать с -name smth и с -name undefined > If Name is set to undefined the node will be started in a special mode optimized to be the temporary client of another node. The node will then request a dynamic node name from the first node it connects to И все равно течет. rpc игнорирует установку имени ноды
А, опции надо в ELIXIR_ERL_OPTIONS. Все работает, у rpc-ноды постоянное имя
Не понял, каким образом оно течет? Каждый раз создается рандомное имя ноды?
Да. TL; DR ELIXIR_ERL_OPTIONS='-sname undefined' на OTP 23+, и течь не будет
Обсуждают сегодня