Имеется сайт, на котором чат сделан через http-poll. Два ejabberd объединены в кластер. Проблема заключается в том, что кластер не держит более 600 юзеров -- при приближении к этому пределу на каждом сервере отъедается по 3.5 Гб памяти и load average подскакивает до 4.
Сейчас ejabberd запускается с такими параметрами:
-env ERL_MAX_PORTS=5000 -env ERL_MAX_ETS_TABLES=200000 +P 2500000 -shared +K true -mnesia auto_repair true
Что ещё можно подкрутить?
Ещё одна деталь: каждый сервер работает в виртуальной машине OpenVZ, может ли это отрицательно влиять на работу ejabberd?
загляни,
загляни, возможно что-то забыл?
не помогает
загляни, возможно что-то забыл?
Ну ERL_MAX_PORTS=32000 у меня по умолчанию было, а ERL_FULLSWEEP_AFTER=0 не помогает :(
На самом деле, я ещё не упомянул кое-что: все юзеры ломятся в одну комнату, в краш-репорте указано что "Cannot allocate memory". То есть всё упирается в потребление памяти. Почему ejabberd её так сильно жрёт?