Ejabberd ограничивает количество онлайн-пользователей до 64 464. Дескрипторы уже увеличены

Мне запрещено подключать более примерно 64 000 (точно 64 464) пользователей к сети на узле Ejabberd. Я использую xml-скрипт (Tsung), чтобы подключить пользователей к узлу.

Я уже увеличил лимит дескрипторов:

Eshell V5.10.4  (abort with ^G)
1> os:cmd("ulimit -n").
"1045000\n"

Вот одно странное наблюдение (здесь ожидайте, что количество доступных портов будет целым числом):

2> os:getenv("ERL_MAX_PORTS").
false

Кроме того, для «ERL_MAX_PORTS» в файле ejabberdctl.cfg установлено значение 704500.

ERL_MAX_PORTS=704500

Я предполагаю, что один узел Ejabberd имеет некоторый предел для максимального количества пользователей, находящихся в сети. Это может быть память, зависящая от машины или что-то в этом роде.

Кроме того, вот как выглядит файл /etc/security/limits.conf:

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50   
#ftp             hard    nproc           0
#@student        -       maxlogins       4
root             soft    nofile          1045000
root             hard    nofile          1045000

Я могу попробовать, создав еще один виртуальный хост, работающий на той же машине Linux, что и:

hosts:
  - "devlab"
  - "devlab2"

Но я не уверен, как это будет по-другому.

Указатели будут оценены.

Спасибо!


person bit_by_bit    schedule 27.04.2015    source источник
comment
проверьте информацию в /var/log/syslog.   -  person Chen Yu    schedule 27.04.2015
comment
Это все, что у меня есть в моей системе. [root@Test ~]# cd /var/log/syslog -bash: cd: /var/log/syslog: Нет такого файла или каталога [root@Test ~]# find / -name syslog /etc/logrotate.d/ системный журнал   -  person bit_by_bit    schedule 27.04.2015
comment
хвост -f /var/журнал/системный журнал   -  person Chen Yu    schedule 27.04.2015
comment
В указанном месте такого файла нет. Должен упомянуть, что я использую RHEL 6. [root@Test bin]# tail -f /var/log/syslog tail: невозможно открыть `/var/log/syslog' для чтения: Нет такого файла или каталога Хорошо, я думаю нужно где-то заглянуть в /var/log/messages.   -  person bit_by_bit    schedule 27.04.2015
comment
проверьте каталог /var/log вашей ОС и поймите его. проверьте файл sysctl.conf ОС, и он контролирует лимит ОС.   -  person Chen Yu    schedule 27.04.2015
comment
Вот что я мог видеть в упомянутом вами файле: # Управляет максимальным размером очереди сообщений по умолчанию kernel.msgmnb = 65536 # Управляет максимальным размером сообщения в байтах kernel.msgmax = 65536 # Управляет максимальным размером общего сегмента , в байтах kernel.shmmax = 68719476736 # Управляет максимальным количеством сегментов разделяемой памяти, в страницах kernel.shmall = 4294967296 fs.file-max = 1045000 Что-то беспокоит?   -  person bit_by_bit    schedule 28.04.2015
comment
ограничение ОС redhat (не только ограничение сеанса пользователя) cyberciti.biz/faq/   -  person Chen Yu    schedule 28.04.2015
comment
системный журнал redhat access.redhat. com/documentation/en-US/Red_Hat_Enterprise_Linux/   -  person Chen Yu    schedule 28.04.2015
comment
Я думаю, вам лучше понять систему журнала RedHat, это поможет вам решить проблему. Я не знаком с системным журналом этой ОС.   -  person Chen Yu    schedule 28.04.2015
comment
каков предел процесса erlang и максимальные таблицы ets, установленные для одного и того же?   -  person Vinod    schedule 30.04.2015


Ответы (1)


Помимо ограничения порта ОС, вы также должны настроить ограничение порта erlang. Это можно сделать, запустив erlang vm с аргументом +Q (дополнительная информация ).

+Q Number|legacy Устанавливает максимальное количество одновременно существующих портов для этой системы, если в качестве значения передается число. Допустимый диапазон для номера: [1024-134217727]

Например: erl +Q 704500

Вы можете проверить лимит порта erlang, используя следующую команду в eshell:

erlang:system_info(port_limit)
person P. Kathmann    schedule 08.08.2015