powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Сокеты: задержа при получении данных
25 сообщений из 35, страница 1 из 2
Сокеты: задержа при получении данных
    #37713832
mre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mre
Гость
Всем привет!
Сервер для реал-тайм игры написан на JAVA nio с использованием неблокирующих сокетов.
Проблема возникает при онлайне больше 800 человек: иногда данные, отправленные сервером пользователям начинают приходить с задержками.
В чем может быть проблема?
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37713944
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нагрузочное теситрование и профилирование не помешали бы. При постоянном соединении в 800 на сервер, может быть что угодно.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37713996
mre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mre
Гость
Могут ли возникать подобные проблемы при слишком частом чтении/отправке данных (какие нибудь очереди соединений и т.п.) или же проблему следует искать в алгоритмах работы, утечках памяти или еще чем то, связанным с логикой конкретного сервера?
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37714011
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mreМогут ли возникать подобные проблемы при слишком частом чтении/отправке данных (какие нибудь очереди соединений и т.п.) или же проблему следует искать в алгоритмах работы, утечках памяти или еще чем то, связанным с логикой конкретного сервера?
Настройте GC Log - посмотрите заполнение памяти и распределение по поколениям.
Настройте какой-нибудь монитор CPU и дискового IO, чтобы посмотреть нагрузку.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37714534
rrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё очень полезный подход запускать пинг в параллель и смотреть нет ли проблем с сетью :)
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37714551
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mreВсем привет!
Сервер для реал-тайм игры написан на JAVA nio с использованием неблокирующих сокетов.
Проблема возникает при онлайне больше 800 человек: иногда данные, отправленные сервером пользователям начинают приходить с задержками.
В чем может быть проблема?
А можете подробнее написать? Ну, типа, что за игра и так далее. Это - не любопытство. Сам сейчас играми-онлайн занимаюсь.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718315
mre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mre
Гость
Спасибо за ответы.
По ходу проблема в том, что при выполнении sql-запросов, поток ожидает окончания выполнения и возникают тормоза.
А есть ли библиотеки sql pool для выполнения асинхронных (параллельных) запросов, то есть, чтобы можно было подписываться на событие завершения выполнения запроса?
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718327
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mreПо ходу проблема в том, что при выполнении sql-запросов, поток ожидает окончания выполнения и возникают тормоза.

Да, это действительно проблема. А зачем в игре SQL? Не проще ли запросы оптимизировать, да базёнку подтюнинговать?

mreА есть ли библиотеки sql pool для выполнения асинхронных (параллельных) запросов, то есть, чтобы можно было подписываться на событие завершения выполнения запроса?
Асинхронность требует изменения работы логики. У нас был один проект. Клиенты просто накидывают изменения в сервер. А сервер всех уже нотифицирует, после комита в базу. В результате никто не ждет комитов.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718332
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mreСпасибо за ответы.
По ходу проблема в том, что при выполнении sql-запросов, поток ожидает окончания выполнения и возникают тормоза.
А есть ли библиотеки sql pool для выполнения асинхронных (параллельных) запросов, то есть, чтобы можно было подписываться на событие завершения выполнения запроса?
где то твоя цепочка асинхронности должна упереться в "ждём результат".
Можно, но геморрой. Лучше выясни почему тормозит... кэша нет? Запрос тяжёлый?
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718346
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mre,
зайди на gameDev, там для сетевых игр используют спец.игровые сервера.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718408
mre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mre
Гость
Да запросов не много и не тяжелые, просто потоков не достаточно, их сейчас штук 5 на каждый модуль, видимо, нужно больше.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718410
mre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mre
Гость
В смысле, по одному на модуль, всего штук 5.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718438
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mreДа запросов не много и не тяжелые, просто потоков не достаточно, их сейчас штук 5 на каждый модуль, видимо, нужно больше.
Если у вас потоки ждут запросов, то не связано ли это с лимитом соединений? Почему именно про потоки вы заговорили? И что такое эти самые условные модули?
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718444
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mre,
то запросы ждут, то потоки ждут.
Советовали - профилировка. Найди УЗКОЕ место.
Удачи!
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718478
mre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mre
Гость
Модули, ну, например, магазин, все операции пользователя с магазинов выполняются в отдельном потоке, чат - в другом и т.д.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718482
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mreМодули, ну, например, магазин, все операции пользователя с магазинов выполняются в отдельном потоке, чат - в другом и т.д.
У вас 800 клиентов онлайн обслуживаются 5ю потоками??? Свой LMAX что ли написали?
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718485
mre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mre
Гость
Думаю, нужно еще разделить каждый модуль на какое-то количество потоков.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718487
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может с терминологией что не так? Поток в вашем понимании это Thread? Поток выполнения процессором кода?
Или вы про какие-то свои IO потоки?
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718493
mre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mre
Гость
А какое количество потоков можно вообще использовать в среднем?
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718505
mre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mre
Гость
Thread.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718510
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mreА какое количество потоков можно вообще использовать в среднем?
пул соединений с БД можно делать и 1000 и 2000 коннектов.
Т.е. если у вас поток-соеднение, то понятно, что все будут 800 ждать 5 соединений по очереди.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718511
mre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mre
Гость
Просто в потоках выполняются блокирующие операции - Sql-запросы, и даже если запросы выполняются быстро, задержка ведь небольшая будет в исполнении кода в любом случае.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718515
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mreПросто в потоках выполняются блокирующие операции - Sql-запросы, и даже если запросы выполняются быстро, задержка ведь небольшая будет в исполнении кода в любом случае.
А потоки эти у вас откуда берутся? И почему их так мало?
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718520
mre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mre
Гость
Одно дело, когда мне нужно просто сапдейтить таблицу, я могу не ждать, отправив запрос через пул, но если мне нужно получить результат запроса, потому меня интересуют пулы, где можно подписываться на слушатель и не ждать.
...
Рейтинг: 0 / 0
Сокеты: задержа при получении данных
    #37718521
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mreПросто в потоках выполняются блокирующие операции - Sql-запросы
это не тот термин.
Есь поток, у него всегда должен быть СВОБОДНЫЙ коннект. Потом он ждёт запрос, т.к. результат нужен НЕЗАМЕДЛИТЕЛЬНО и сразу.
Если все эти условия соблюдены - то ОК.
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Сокеты: задержа при получении данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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