Комментарии 33
Что касается потребляемых ресурсов
А можно поподробнее о цифирках? Если есть возможность, конечно.
Конечно! Двухпроцессорный сервер с 8 физическими ядрами имеет LA порядка 2-4, памяти съедается (после нескольких дней работы) на мастере ~25-30Gb, на слейвах процентов на 25 меньше. На mysql-сервере база с 5 млн. пользователей и 20+ млн записей в rosterusers умещается в 20 гб.
Простите, о каком сервисе идет речь? jabber.ru?
Большинству читателей топика нужен легкий и простой jabber сервер на 10-50 юзеров, максимум пару сотен.
Большинству читателей топика нужен легкий и простой jabber сервер на 10-50 юзеров, максимум пару сотен.
Простите, о каком сервисе идет речь? jabber.ru?
нет, к общедоступным jabber-серверам сервис отношения не имеет) Сделан для организации чатов / рассылки уведомлений / и т.п. функций, которыми обладает jabber, в рамках нами же написанного приложения.
Большинству читателей топика нужен легкий и простой jabber сервер на 10-50 юзеров, максимум пару сотен.
Согласен с Вами, поэтому и упомянул в статье, что очень мало компаний, где реализован опыт работы с ejabberd и большим количеством подключенных пользователей.
А вообще, было бы интересно узнать что используется в Вконтакте, Facebook'е, WhatsApp'е. В mail.ru и их агенте в конце концов!)
В портах есть erlang 17.1 и ejabberd 14.07.
Java надо отдельно качать и ставить.
Устанавливать вручную из исходников — очень плохая мысль, потом при обновлении, очень долго вычищать.
Смешивать установку из портов и pkg не стоит, к тому же установка из портов имеет EOL.
Java надо отдельно качать и ставить.
Устанавливать вручную из исходников — очень плохая мысль, потом при обновлении, очень долго вычищать.
Смешивать установку из портов и pkg не стоит, к тому же установка из портов имеет EOL.
На момент написания «чернового» гайда в портах была 16-я версия erlang, а по факту больше месяца была уже релизнута 17-я, в которой много чего поправлено. К тому же, с 16-й ejabberd вел себя нестабильно, поэтому и пришлось отказаться от портов на тот момент.
Увлекаться смешиванием установок не стоит, согласен.
Увлекаться смешиванием установок не стоит, согласен.
> установка из портов имеет EOL
Можно про это подробнее?
Можно про это подробнее?
/!\ WARNING /!\
pkg_install EOL is scheduled for 2014-09-01. Please consider migrating to pkgng
blogs.freebsdish.org/portmgr/2014/02/03/time-to-bid-farewell-to-the-old-pkg_-tools/
If you do not want to see this message again set NO_WARNING_PKG_INSTALL_EOL=yes in your make.conf
pkg_install EOL is scheduled for 2014-09-01. Please consider migrating to pkgng
blogs.freebsdish.org/portmgr/2014/02/03/time-to-bid-farewell-to-the-old-pkg_-tools/
If you do not want to see this message again set NO_WARNING_PKG_INSTALL_EOL=yes in your make.conf
Это не EOL установки из портов, это обновление утилит для работы с пакетами.
А возьмите любой порт с меню опций и попробуйте собрать через make [config].
И увидите, что собирается по-дефолту (на основе Makefile).
Для меня ситуация с портами в сентябре сего года равнозначно EOL портов.
И увидите, что собирается по-дефолту (на основе Makefile).
Для меня ситуация с портами в сентябре сего года равнозначно EOL портов.
Java надо отдельно качать и ставить.Это оракловую джаву надо отдельно качать и ставить, OpenJDK вполне себе пакетирован:
$ pkg search openjdk
bootstrap-openjdk-r351880
openjdk-7.65.17,1
openjdk6-b32,1
openjdk6-jre-b32,1
openjdk8-8.11.12
openjdk8-jre-8.11.12_4
rxtx-openjdk7-2.2p2_1
> Смешивать установку из портов и pkg не стоит, к тому же установка из портов имеет EOL.
pkg и порты на FreeBSD изначально дополняли друг друга и не возникало проблем их совместного использования. Другое дело, что в портах ПО, как правило, немного свежее, на одну цифру в суффиксе версии. При установке pkg install <имя> можно получить набор ПО старее, чем при установке из портов.
Что такое EOL для портов? В принципе, всё ПО, нуждающееся в обновлении в конкретный момент времени, уже превысило «время жизни» и надо решать: обновлять на следующую версию, учитывая зависимости, либо не трогать («работает — не трожь»).
pkg и порты на FreeBSD изначально дополняли друг друга и не возникало проблем их совместного использования. Другое дело, что в портах ПО, как правило, немного свежее, на одну цифру в суффиксе версии. При установке pkg install <имя> можно получить набор ПО старее, чем при установке из портов.
Что такое EOL для портов? В принципе, всё ПО, нуждающееся в обновлении в конкретный момент времени, уже превысило «время жизни» и надо решать: обновлять на следующую версию, учитывая зависимости, либо не трогать («работает — не трожь»).
Спасибо! FreeBSD нигде кроме jabber-серверов не используем и никогда не использовали, поэтому советы по тюннингу будут очень полезными.
Качаем последнюю версию эрланга (на момент написания статьи 17.2.2):
Ну зачем вы так? можно было же взять из PM'ом свежий порт.
Ну зачем вы так? можно было же взять из PM'ом свежий порт.
если в портах нет нужной свежей версии софта, то надо не компилять этот софт из исходников, а делать новую версию порта, использовать её и отправлять сначала мейнтейнеру, а потом в багзиллу, если мейнтейнер не отвечает.
Спасибо за статью. Не совсем понял для чего java устанавливается на сервер? В старом ёжике точно зависимости не было от нее, за это в свое время именно он был выбран, а не openfire…
И еще вопрос по поводу транспортов — вы пользуетесь ими в своем решении? Особенно интересно было бы узнать как сейчас обстоят дела с icq/gtalk/skype?
И еще вопрос по поводу транспортов — вы пользуетесь ими в своем решении? Особенно интересно было бы узнать как сейчас обстоят дела с icq/gtalk/skype?
Мы с коллегами в свое время не смогли добиться нормальной и стабильной работы кластера ejabberd с количеством узлов более 2 и количеством пользователей на узел 100К, из-за того, что при таких нагрузках mnesia-ю начинает страшно плющить и колбасить, особенно если возникает ситуация, когда например, одновременно отключается 10-20 тысяч пользователей от сервера, или они подключаются с большой скоростью. В итоге уже несколько лет, как совсем отказались от mnesia для хранения данных и используем доработанный форк MongooseIM от Erlang Solutions, который умеет хранить информацию о сессиях (активных подключениях) в Redis. Стоит также заметить, что выдерживаемая нагрузка и потребление памяти очень сильно (в разы) изменяется в худшую сторону, если используется SSL. Частично эту проблему удалось решить, пропатчив драйвер tls_drv.c так, чтобы не использовалось сжатие при инициализации OpenSSL, при использовании которого на каждое подключение выделяется около 150 Кб памяти, плюс другие доработки.
Да, с mnesia'ей много нюансов, поэтому тоже отказались от неё и перешли на mysql. Про MongooseIM совсем недавно читал, тоже заинтересовал этот проект, но в всерьез об его использовании пока не думали. А не могли бы вы немного подробнее рассказать об вашей инсталляции, если это возможно? Какую операционную систему используете?
Так 100 (200, 300 при увеличении кол-ва узлов) тысяч сессий-то у вас по-прежнему будут храниться в mnesia, так что толк от MySQL в данном случае небольшой. Мы, кстати, тоже пытались перейти на него, но на тот момент в реализации было множество багов, на которые мы не захотели тратить время, например EJAB-1583. Мы тоже используем FreeBSD и MongooseIM с некоторыми доработками в части повышения быстродействия и увеличения масштабируемости. Подключения идут через old ssl (не starttls), в качестве БД для сессий, офлайн-сообщений и других данных используется Redis с репликацией данных между узлами кластера.
Никто не подскажет как автоматически обновлять ростер? У меня авторизация через AD, но новые пользователи появляются только после рестарта ejabberd.
Shared roster — www.process-one.net/docs/ejabberd/guide_en.html#htoc62
ejabberd 14.07 есть в портах: www.freshports.org/net-im/ejabberd/
Зачем ставить всё ПО на FreeBSD «врукопашную» и писать об этом статью в том ключе, что это правильный ход, — не понимаю.
Ведь рано или поздно возникает масса вопросов: как обновить установленное таким образом ПО? Кто поручится за его безопасность в будущем? Что будем делать, если уволится тот человек, кто развёртывал ПО, и придёт новый человек, который будет вынужден разбираться со всем этим «добром»?
Непрофессионально.
Зачем ставить всё ПО на FreeBSD «врукопашную» и писать об этом статью в том ключе, что это правильный ход, — не понимаю.
Ведь рано или поздно возникает масса вопросов: как обновить установленное таким образом ПО? Кто поручится за его безопасность в будущем? Что будем делать, если уволится тот человек, кто развёртывал ПО, и придёт новый человек, который будет вынужден разбираться со всем этим «добром»?
Непрофессионально.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Ejabberd 14.x на FreeBSD 10: установка и базовая настройка