powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Long-Polling vs ???
7 сообщений из 7, страница 1 из 1
Long-Polling vs ???
    #38995621
nmkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

Имеется интерактивное web приложение(GWT, GWT RPC, JBOSS), в соответствиями с требованиями, задержек при получении сообщений с сервера быть не должно. Каждый клиент в цикле опрашивает сервер, при наличии сообщений они отдаются сразу и клиент делает новый запрос, при отсутствии сообщений, запрос удерживается до 5 секунд.

Данная архитектура работает без проблем при небольшом количестве клиентов до 2000-2500 тысяч на односерверной конфигурации. При увеличении количества клиентов возникает проблема. В JBoss заканчиваются потоки обработчики, фактически получается что количество потоков обработчиков должно быть не менее количества активных клиентов. На тестовой машине OS X Yosemite возникает OutOfMemoryError: unable to create new native thread при 2000+ созданных потоков одним процессом (я так понял что это захардкожено на уровне ядра). В продакшене будет использоваться Cent OS и мы сможем обойти это ограничение, но есть подозрения что проявятся другие проблемы как минимум такие как нехватка памяти при увеличении количества потоков и открытых сокетов.

Полагаем что 1 клиент = 1 открытое keep-alive соединение на сервере + 1 нативный поток обработчик. У заказчика есть требование поддержать несколько десятков тысяч активных клиентов. Собственно говоря вопросы - с какими проблемами можно столкнуться при увеличении количества потоков на сервере? В идеале хотелось бы понять сколько мы можем держать клиентов на одном сервере? Есть ли смысл переходить на WebSocket, т.е. будет ли ограниченное число потоков обработчиков, обрабатывать запросы по всем сокетам или связь будет 1 сокет = 1 поток обработчик?

Спасибо
...
Рейтинг: 0 / 0
Long-Polling vs ???
    #38995654
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nmkvВ JBoss заканчиваются потоки обработчикиNginx?
...
Рейтинг: 0 / 0
Long-Polling vs ???
    #38995668
nmkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

Nginx бежит в качестве фронтенда на отдельной машине, с ним проблем не обнаружено.
JBoss создает пул нативных потоков для обработки запросов, в данный момент проблема именно с ним.
...
Рейтинг: 0 / 0
Long-Polling vs ???
    #38995696
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nmkvДоброго времени суток.

Имеется интерактивное web приложение(GWT, GWT RPC, JBOSS), в соответствиями с требованиями, задержек при получении сообщений с сервера быть не должно. Каждый клиент в цикле опрашивает сервер, при наличии сообщений они отдаются сразу и клиент делает новый запрос, при отсутствии сообщений, запрос удерживается до 5 секунд.
...
Спасибо

IMHO надо копать в сторону масштабирования и кластеризации.
И закладывать ~2000 клиентов на ноду.
...
Рейтинг: 0 / 0
Long-Polling vs ???
    #38995721
nmkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul,

Почему именно ~2000 клиентов на ноду?

На одной ноде можно поднять 4 инстанса JBoss, в этом случае ~8000?
...
Рейтинг: 0 / 0
Long-Polling vs ???
    #38995986
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nmkvНа тестовой машине OS X Yosemite возникает OutOfMemoryError: unable to create new native thread при 2000+ созданных потоков одним процессом (я так понял что это захардкожено на уровне ядра).
Нет, это вычерпывается адресное пространство под стэки потоков.
...
Рейтинг: 0 / 0
Long-Polling vs ???
    #38996115
nmkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Странно, в таком случае наверное уменьшение размера памяти под стек, через ключ Xss как-то влияло. Но уменьшение с 1024k до 228k никак не влияет на максимальное количество создаваемых потоков, одним процессом.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Long-Polling vs ???
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]