Помогите Лаги при большом колове игроков

  • Автор темы Автор темы kasdo
  • Дата начала Дата начала

kasdo

Старожил
Пользователь
Баллы
103
Ник в Minecraft
kasdo
Так-с, тут у меня проблемка, которую я не знаю как решить, может на руведре мне помогут.
Есть режим, на котором играют 250 игроков. Когда много игроков собираются на 1й точке (например на спавне), то сервер начинает жестко лагать и даже падает.
Порезать слоты никак, ибо суть режима в большом колове игроков.

Есть идеи?
 
МультиСпавн сделать какой-нибудь например...
 
Ну такое себе решение
samopis.jar для фазирования игроков, к примеру сделать так: игроки видят только тех кто их группе привилегий находится. По идее должно поправить проблему.
 
samopis.jar для фазирования игроков, к примеру сделать так: игроки видят только тех кто их группе привилегий находится. По идее должно поправить проблему.
Так нагрузка на сервер, а не на клиент. Или я чего-то не понимаю?)
 
Если сервер на ПК
То в батнике/кмд можно увеличить ОЗУ
 
Так нагрузка на сервер, а не на клиент. Или я чего-то не понимаю?)
Сервер просто будет распределять кто кого может видеть и с кем взаимодействовать, сократится вероятность колизии и как следствие общая нагрузка на ядро сервера.
 
Можно увидеть лог?
Проц какой?
Оперативки сколько?
Скрин локации?
Плагинов сколько?
Эффекты, статы имеются? Если да, есть возможность их разгрузить?
Таблички, рамки, картины?
 
Можно увидеть лог?
Проц какой?
Оперативки сколько?
Скрин локации?
Плагинов сколько?
Эффекты, статы имеются? Если да, есть возможность их разгрузить?
Таблички, рамки, картины?
+ ещё версия какая ядра?
 
Каждому игроку сервер шлет пакеты передвижений всех видимых игроков

В итоге, при 250 игроках получается:
250*249=62250 пакетов передвижений за тик
1.245.000 пакетов в секунду
+ еще пакеты анимаций рук, ломания блоков....запуск звуков шагов
, ударов и др.
Обычная геометрическая прогрессия)

Сетевой код в ядре сервера херовый....при большом кол-ве пакетов возникает много блокировок при чтении очереди Netty-потоками, от чего не успевают своевременно отправить клиентам. Дальше очередь растет еще больше, в итоге растет пинг до небывалых значений (но сам главный поток сервера при этом совсем не лагает)

Варианты решения:
1. Показывать игрокам только опеределенный процент всех игроков (100 будет достаточно, чтобы потоки Netty хоть как-то вывозили)
2. Снизить TickRate игроков...передвижения будут отправляться реже, игроки будут двигаться рывками, но сильно разгрузит Netty
3. Переписать сетевой код ядра.....ведь в BungeeCord такой проблемы нет (банжи может в десятки раз больше пакетов разослать за приемлимое время)
 
Последнее редактирование:
Каждому игроку сервер шлет пакеты передвижений всех видимых игроков

В итоге, при 250 игроках получается:
250*249=62250 пакетов передвижений за тик
1.245.000 пакетов в секунду
+ еще пакеты анимаций рук, ломания блоков....запуск звуков шагов
, ударов и др.
Обычная геометрическая прогрессия)

Ни один сетевой движок не сможет своевременно отправить столько пакетов......поэтому создается очередь и растет пинг

Варианты решения:
1. Показывать игрокам только опеределенный процент всех игроков (100 будет достаточно, чтобы потоки Netty хоть как-то вывозили)
2. Снизить TickRate игроков...передвижения будут отправляться реже, игроки будут двигаться рывками, но сильно разгрузит Netty
Ну я подобное уже предложил, только с разделением по группам в пермах.
 
Каждому игроку сервер шлет пакеты передвижений всех видимых игроков

В итоге, при 250 игроках получается:
250*249=62250 пакетов передвижений за тик
1.245.000 пакетов в секунду
+ еще пакеты анимаций рук, ломания блоков....запуск звуков шагов
, ударов и др.
Обычная геометрическая прогрессия)

Сетевой код в ядре сервера херовый....при большом кол-ве пакетов возникает много блокировок при чтении очереди Netty-потоками, от чего не успевают своевременно отправить клиентам. Дальше очередь растет еще больше, в итоге растет пинг до небывалых значений (но сам главный поток сервера при этом совсем не лагает)

Варианты решения:
1. Показывать игрокам только опеределенный процент всех игроков (100 будет достаточно, чтобы потоки Netty хоть как-то вывозили)
2. Снизить TickRate игроков...передвижения будут отправляться реже, игроки будут двигаться рывками, но сильно разгрузит Netty
3. Переписать сетевой код ядра.....ведь в BungeeCord такой проблемы нет (банжи может в десятки раз больше пакетов разослать за приемлимое время)
Именно тпс падает, а не только пинг.

Рывки, при снижении TickRate, ужасны, кто на таком режиме играть то будет)

А за остальную информацию спасибо, мб поможет)
 
Именно тпс падает, а не только пинг.

Рывки, при снижении TickRate, ужасны, кто на таком режиме играть то будет)

А за остальную информацию спасибо, мб поможет)
Вырезать компресс пакетов, станет в разы лучше.
 
Назад
Верх Низ