Как увеличить предел параллельного соединения OpenFire? -- java поле с участием xmpp поле с участием server поле с участием openfire поле с участием jabberd2 пол Связанный проблема

How to increase Openfire concurrent connection limit?


1
vote

проблема

русский

Я пытаюсь проверить, сколько одновременных пользовательских подключений Openfire может обрабатывать. Я заметил предел при 4000 пользователями. Как я могу обрабатывать 50000 одновременных связей или больше на Openfire? Какая конфигурация должна быть сделана для обработки большого количества соединений.

Мой сервер Config

 <код> OS - Ubuntu Server 14.04.1 64 bit Processor - 3.00 GHz RAM - 512 MB Openfire Version - 3.9.3   

Для цели тестирования я использую настройку виртуального сервера на VirtualBox.

<Сильный> Сценарий

Я проверяю Openfire 3.9.3 без менеджера подключения и без SSL (пока). Сервер представляет собой настройку виртуальной машины на VirtualBox, имеющих процессор 3.00 ГГц и 512 МБ ОЗУ. Это стандартная установка OpenFire с подключением базы данных MySQL с 100 максимальными соединениями.

При тестировании с помощью скрипта тестирования нагрузки от https://doc---232"> https://community.igniterealtime.org/docs/doc-1232 [Обратите внимание, что я не настроил кластер] Количество пользовательского соединения постоянно увеличивается до 4000 одновременных пользовательских соединений. Как только 4000 пользователей подключены, все соединения начинают падать, пока все подключения не будут потеряны, и я получаю ошибку следующим образом:

 <код> java.net.SocketException: Too many open files at java.net.Socket.createImpl(Socket.java:460) at java.net.Socket.<init>(Socket.java:431) at java.net.Socket.<init>(Socket.java:211) at OpenfireClusterStressTest.testMultipleLogin(OpenfireClusterStressTest.java:111) at OpenfireClusterStressTest.main(OpenfireClusterStressTest.java:46)   

<Сильная> проблема

не может обрабатывать более 4000 одновременных пользовательских соединений. Как увеличить этот предел? Какая конфигурация Openfire требуется для достижения того же?

Английский оригинал

I am trying to test how many concurrent user connections Openfire can handle. I have noticed a limit at 4000 users. How can I handle 50000 concurrent connections or more on Openfire? What configuration should be done to handle large number of connections.

My Server Config

OS - Ubuntu Server 14.04.1 64 bit Processor - 3.00 GHz RAM - 512 MB Openfire Version - 3.9.3 

For testing purpose, I am using a virtual server setup on virtualbox.

Scenario

I'm testing Openfire 3.9.3 without connection manager and with no SSL either (yet). The server is a virtual machine setup on Virtualbox having 3.00GHz processor and 512MB RAM. It is a standard Openfire install with MySQL database connection with 100 maximum connections.

When testing with a load testing script from https://community.igniterealtime.org/docs/DOC-1232 [Please note I have not setup a cluster] the number of user connection increase steadily till 4000 concurrent user connections. Once 4000 users are connected, all connections begin to drop until all connections are lost and I get an error as follows:

java.net.SocketException: Too many open files at java.net.Socket.createImpl(Socket.java:460) at java.net.Socket.<init>(Socket.java:431) at java.net.Socket.<init>(Socket.java:211) at OpenfireClusterStressTest.testMultipleLogin(OpenfireClusterStressTest.java:111) at OpenfireClusterStressTest.main(OpenfireClusterStressTest.java:46) 

Issue

Cannot handle more than 4000 concurrent user connections. How to increase this limit? What openfire configuration is required to achieve the same?

</div
              

Список ответов

7
 
vote

Вы не бьете ограничение, наложенные Openfire. Unix-подобные системы ограничивают максимальное количество ручек открытого файла, и это включает в себя (TCP) розетки, может иметь процесс. Вам нужно установить более высокий предел (оно, кажется, в настоящее время устанавливается на что-то около 4000). Предел обычно модифицируется с помощью команды kill $(ps | grep "python" | awk "{print $1}") 0 .

Смотрите также:

    .
  • https://unix.stackexchange.com / Вопросы / 85457 / Как-to-to-to-debian to-debian
  • https://unix.stackexchange.com/questions/169004 / номер открытых файлов - конфигурация - не работает
 

You are not hitting an limit imposed by Openfire. Unix-like systems limit the maximum number of open file handles, and this includes (TCP) sockets, a process can have. You need to set a higher limit (it appears to be currently set to something around 4000). The limit is usually modified with the ulimit command.

See also:

  • https://unix.stackexchange.com/questions/85457/how-to-circumvent-too-many-open-files-in-debian
  • https://unix.stackexchange.com/questions/169004/number-of-open-files-configuration-not-operational
</div
 
 
         
         
1
 
vote
vote
Лучший ответ
 

Добавление ответа на @ flow ...

Если вы пытаетесь подключиться с другого компьютера, то вам придется увеличить ULIMIT этого компьютера.

<Сильная> ошибка

Я поднял предел максимального количества открытых файлов. Но я пытался подключиться с другого компьютера и улимит на то же самое было установлено значение по умолчанию. Следовательно, тест провалится при достижении 4000 соединений.

Решение, которое работало для меня

Когда я обновил ULIMIT компьютера, который запускает тестовый скрипт, он работал нормально. Теперь я могу добиться 20000 одновременных соединений.

 

Adding to @Flow's answer...

If you are trying to connect from another computer, then you would have to increase the ulimit of that computer too.

The mistake

I had raised the limit of maximum number of open files. But, I was trying to connect from another computer and the ulimit for the same was set to default. Hence, the test would fail on reaching 4000 connections.

Solution that worked for me

When I updated the ulimit of the computer that runs the test script, it worked fine. I am now able to achieve 20000 concurrent connections.

</div
 
 

Связанный проблема

0  Java нерешенная переменная JPanel?  ( Java unresolved jpanel variable ) 
Почему не может <код> aniPanel быть разрешена в переменной. Я пробовал <код> AniPanel aniPanel = new AniPanel(); Но это не решает проблему. Я также по...

1  Получить все идентификаторы элементов из Dynamodb Java с помощью dynamodbmapper  ( Retrieve all items ids from dynamodb java using dynamodbmapper ) 
Моя цель - получить идентификаторы всех предметов. Для этого я собираюсь использовать Java и Dynamodbmapper. Способ сделать это использовать сканирование . П...

0  ConstanaintValidator - сделать JPA сделать проверку после ввода  ( Constraintvalidator make jpa make the validation after input ) 
Можно ли сделать JPA проверить вход сразу после типов пользователей в чем-либо? Я использую EclipseLink. Я не хочу ждать, пока JPA сохраняется для проверк...

1  Eclipse IDE отключается часто  ( Eclipse ide shuts down frequently ) 
Я пытался использовать SDK SDK SDK 22.3.0-887826, чтобы узнать о Develeopment Android, однако IDE отключается часто. Это происходит много, но в основном при и...

1  Кварц Schdeuler для нескольких проектов в JBOSS 5  ( Quartz schdeuler for multiple projects in jboss 5 ) 
Я развернул два проекта (P1 & AMP; P2) в JBOSS 5. Оба проекта настроены с различными кварцевыми планировщиками. Но когда я заплатурую работу на P1, он доступа...

1  Простое Javaee HTML Get / Post Application  ( Simple javaee html get post application ) 
Я просто начинаю с Javaee (я вполне свободно владею в Javase), и у меня возникли проблемы с обездованием моего мозга вокруг всех новых вещей, которые необходи...

0  Чехол для тестирования, где нуль должен быть возвращен с помощью RestController с Mockito Change  ( Testing case where null should be returned using restcontroller with mockito fai ) 
Я хочу проверить корпус NullPointexception, который следует бросить контроллер, который я проверяю, но я всегда получаю ошибку NullPointexception. Я пытаюсь п...

12  Способ вызова в EJB на jboss запустить [дубликат]  ( Call method in ejb on jboss startup ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

-2  В классе F250.java есть две петли, которые не будут работать  ( There are two loops in the f250 java class that wont run ) 
Класс F250.java - это объект оружия, и есть два метода, которые привлекают и обновляют пули, выходящие из пистолета. Я сделал класс пули и сделал массив пули ...

4  Как полностью квалифицировать класс, имя пакета которого сталкивается с местным именем члена?  ( How to fully qualify a class whose package name collides with a local member nam ) 
ОК, вот очень любопытная языковая головоломка Java 7 для специалистов JLS там. Следующий кусок кода не скомпилируется, ни с Javac, ни с Eclipse: <код> ...

-1  SQL Server для моего SQL  ( Sql server to my sql ) 
У меня есть новый проект от моего учителя, чтобы преобразовать базу данных в другую. Как я могу преобразовать базу данных MS SQL в MySQL с помощью Java? ...

1  WebView loaddatawithbaseurl java.lang.nullpointerexception  ( Webview loaddatawithbaseurl java lang nullpointerexception ) 
<код> //. . . public class MainActivity extends Activity { //. . . @Override protected void onCreate( Bundle savedInstanceState ) { //....

105  Почему C # реализует методы как не виртуальные по умолчанию?  ( Why c sharp implements methods as non virtual by default ) 
В отличие от Java, почему C # методы лечения как не виртуальные функции по умолчанию? Скорее всего, это проблема производительности, а не на других возможных ...

0  Basic Echo Server, отношения клиент-сервера  ( Basic echo server client server relationship ) 
Так как мой проект, который мне пришлось написать класс клиента и простой класс серверов, который будет эхом сообщение, написанным клиентом. По какой-то при...

1  Обратитесь к веб-странице внутри файла JAR  ( Refer to a web page inside a jar file ) 
У меня есть рабочий проект. Он включает в себя другой проект, который имеет дело с отдыхом как REST-API.jar. Теперь я сделал одностраничное интернет-интерфе...