Как стать автором
Обновить

Комментарии 20

Кто мешает запускать и останавливать sasl во время работы приложения? Со стороны VM, sasl и любое другое приложение (включая наш «сервер») находятся на одной ступени иерархии и взаимодействуют через VM.
Ой, ну этого бы очень не хотелось. Во первых этого не достаточно, так, как sys.config читается процессом init а не sasl, а во вторых на sasl навешано еще других функций, которые не хотлеось бы прерывать. например — лог файлы, или слежение за переполнением памяти и диска.

а использовать application:set_env() как-то страшновато, учитывая, что про него пишут в документации.
так, а как это согласовывается с балансировщиком нагрузки в самом ерланге? (могу ошибаться)
я имею ввиду когда запущено несколько нод и одна нода занимается раскидыванием кода и запросов по подчиненным нодам.

и еще какова сферическая конфигурация оборудования, которое выдерживает 300 запросов/сек?
В нашем случае баласировщик нагрузки был выше, в радиус сервере. Там можно настроить чтобы нагрузка распределялась равномерно между модулями(радиусовскими) и если нода отказывается принимать запрос (ну или с ней потерялась связь) запрос уйдет к другой ноде. Если все ноды отказали — радиус ответит циске, что «извини, не могу отбработать твой аккаунтитнг».

По поводу 300 запросов — для эрланга это далеко не предел. У нас такое ограничение появилось потому что тяжелая обработка запроса — требует от 0 до 3 запросов в постгрес базу.

А железо там — обычный 32 разрядный компьютер с 2 гигами памяти и amd phenom если не ошибаюсь.
вру про феном, интел какой-то
если не секрет почему не Mnesia как БД?

мне пришла мысль, что можно собрать кластер на бюджетных машинах и расширять его путем включения в розетку и заливку образа :)
потому что постгрес там появился намного раньше, чем эрланг. И идея была перенести часть того, что делалось в хранимках на постгресе в отдельный эрланг процесс. С улучшениями и балансировкой разумеется.

те если бы сейчас делали проект с 0 то там была бы Mnesia?
нет. Я делал нагрузочные тесты, мнезия держит нагрузку на нашем workload только на dirty операциях. Скорее была бы кассандра или что-то типа того.
Mnesia в работе не настолько хороша, как кажется. У нее отличная идея, и весьма заманчиво иметь распределенное хранилище из коробки.

Но на практике, лучше использовать сторонние решения. Например, mongo.
буду тестить
так, а как это согласовывается с балансировщиком нагрузки в самом ерланге? (могу ошибаться)
я имею ввиду когда запущено несколько нод и одна нода занимается раскидыванием кода и запросов по подчиненным нодам.

На каждом экземпляре VM свой экземпляр SASL.
и еще какова сферическая конфигурация оборудования, которое выдерживает 300 запросов/сек?

Все зависит от того, что делают запросы.
спасибо.

просто потому и уточнил сферичность данных.
для себя собираю данные для себя, чтобы хоть какие-то границы определить производительности своих будущих поделий.
Кроме overload еще есть os_mon с помощью которого можно мониторить процессор, диски и память.
абсолютно точно. Про них в следующий раз напишу.
В своей системе построил контроль нагрузки именно на базе os_mon. Просто запретил повышать load average 1m выше сумарного числа ядер процессоров.
Я правильно понимаю, что ответ функции зависит исключительно от частоты её вызовов перед этим?
Да, правильно.
Эх. Неудобно мне. 100 000 раз в секунду его вызывать стремно, а раз в 5 секунд нет смысла
Вот это заюзай, очень удобная штука:

github.com/EchoTeam/mavg
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории