Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Ванилла ест 50 Мб оперативки на каждого игрока

Метки:
Теги Теги
forge sponge vanilla

Bars

Старожил
Девелопер
Пользователь
Баллы
173
Есть ли патчи или модификации для исправления этого? Баккит к примеру фиксированную память на игроков не резервирует, а игрок отнимает от силы 5 Мб оперативки.

Хочу поставить Sponge, но он ставится как мод на ванильный (от Mojang) сервер с Форджем
 
Вообщем-то сначала на ванильный сервер майнкрафт нужно фордж поставить, а далее губку как мод поставить
 
Вообщем-то сначала на ванильный сервер майнкрафт нужно фордж поставить, а далее губку как мод поставить
Хочу поставить Sponge, но он ставится как мод на ванильный (от Mojang) сервер с Форджем
Он так и говорит, вопрос в потреблении ресурсов стоит.
 
Потребление памяти упирается, главным образом, в количество загруженных чанков
Массив биомов: 256 баит
HeightMAP: 1024*2=2048 баит
Массив обновлений освещения: 256 баит
Прочие поля: 128 баит (+-16 баит)
= 2688баит

Чанк делится на секции по 16 блоков в высоту. Всего их может быть до 16 штук
Skylight: 2048 баит
Blocklight: 2048 баит
Палитра блоков: 4 баита + 4 баита * КУБ
Массив блоков: КУБ<=16 ? 2048 баит : КУБ<=256 ? 4096 баит : 8192 баита
Прочее: ~64 баита
= КУБ<=16 ? от 6216 до 6276 баит : КУБ<=256 ? от 8264 до 8264 баит : от 12360 баит
P.S: КУБ - количество уникальных блоков в секции

Среднестатистический чанк содержит 6-10 секций, тогда считаем жор
2688+6276*8=52896 баит

Зачастую, в два раза больше

Причина большого жора ванильного сервера - чанки либо совсем не отгружаются, либо отгружаются с огромной задержкой. Вот так, получается, игрок зашел на сервер, чанки вокруг загрузились, походил немного вокруг и сервер свои 50мб чанками хапнул

Но это еще не все. Чанки же еще отправляются игрокам и сохраняются на диск. Это создает еще лишние кратковременные издержки на созданиях массивов. Под высокой нагрузкой GC не будет успевать выбрасывать хлам.

Что касаемо игроков. На одного игрока объектов создается, не больше, чем 8-16кб. Но траблируют проверки коллизий.... При большом онлайне GC еще не справляется с потоком инстансов AxisAlignedBB и Vec3d
 
Последнее редактирование:
Так а есть фиксы этого в виде модов/coreмодов? Плагинов для Sponge
 
Так а есть фиксы этого в виде модов/coreмодов? Плагинов для Sponge
Гугл для чего существует? Тыж вроде не глупый, даже имеешь статус "Девелопер". Заходишь на сайт curseforge и сам ищешь в нужных категориях нужный мод. Да, на это уйдет не один час, а то и день.
Foamfix, и это только часть фиксов.
 
Так ты проверил уже? Может оно и фиксит, кто его знает.
Я не знаю как проверять. Оперативка - она же скачет всегда. Надо снимать значения и выбирать среднее. Просто лень. Лучше спросить знатоков

Гугл для чего существует? Тыж вроде не глупый, даже имеешь статус "Девелопер". Заходишь на сайт curseforge и сам ищешь в нужных категориях нужный мод. Да, на это уйдет не один час, а то и день.
Foamfix, и это только часть фиксов.
Потому что не знаю, как сформулировать запрос для поиска. А статус Девелопера тут не при чём. Читается твой месседж так: "Ты что, не умеешь искать в гугле? Тыж программист" (девелопер).

- У меня в компьютере что-то гудит. Поможешь?
- Не, в этом я не разбираюсь
- Ну ты ж программист!

Известный баян. Так вот тут о том же. Это как обвинить повара, что он не слесарь) У них разная деятельность.

За Foamfix благодарность, пойду смотреть.
Прошу все обсуждения по теме губки вести тут: https://spongeapi.com/
Вы не модератор и создаёте отток пользователей с данного форума на сторонний ресурс, что модераторам делать запрещено. Модераторская работа наоборот заключается в верности проекту, на котором им даны полномочия, и им такие сообщения непозволительны. Этот раздел посвящён Sponge, а значит все вольны тут создавать темы, иначе зачем он
 
Потому что не знаю, как сформулировать запрос для поиска.
Зачем формулировать запрос для поиска? В curseforge модификации ищутся ВРУЧНУЮ, искать через поиск там бесполезно. Берешь, и перебираешь каждый мод из вкладки серверных утилит под 1.12.2. Там их не так много.
 
А статус Девелопера тут не при чём. Читается твой месседж так: "Ты что, не умеешь искать в гугле? Тыж программист" (девелопер).

- У меня в компьютере что-то гудит. Поможешь?
- Не, в этом я не разбираюсь
- Ну ты ж программист!

Известный баян. Так вот тут о том же. Это как обвинить повара, что он не слесарь) У них разная деятельность.
"Программист", который не умеет искать информацию в Гугле и читать? И который не знает англ. языка? Которому лень банально почитать инфу по первой ссылке в Гугле? Я вообще удивляюсь, как ты до программирования дошел.
В чем же тут баян? По твоей логике что, должна быть отдельная профессия, под названием - "it специалист по гуглированию"?
Любой хороший IT специалист ДОЛЖЕН уметь искать нужную информацию, анализировать и самосовершенствоваться. А не ждать, пока ему в ротик положат готовое.
 
Не будь мудаком
Не переходите на личности. Оскорбления вместо конструктива) Все на что способны пользователи форумов, извечная проблема

И который не знает англ. языка?
Вот это логика... Если я не искал в принципе, как это блин может означать, что я не знаю английского, если он мне как второй родной? А все потому что тут нет логики. Вы накручиваете у себя в голове свою картину происходящего, а потом из нее делаете выводы. "Не поискал, значит не знает английского". Шш.. то?)

А не ждать, пока ему в ротик положат готовое
Я кстати говоря после нескольких сообщений тут погуглил.
"minecraft vanilla server ram per player usage 50 Mb"
"minecraft server ram optimization"
Там обсуждались совершенно другие вопросы. Не буду вспоминать из каких разрядов, важно что на мой вопрос не было ответа
 
Не переходите на личности. Оскорбления вместо конструктива) Все на что способны пользователи форумов, извечная проблема


Вот это логика... Если я не искал в принципе, как это блин может означать, что я не знаю английского, если он мне как второй родной? А все потому что тут нет логики. Вы накручиваете у себя в голове свою картину происходящего, а потом из нее делаете выводы. "Не поискал, значит не знает английского". Шш.. то?)


Я кстати говоря после нескольких сообщений тут погуглил.
"minecraft vanilla server ram per player usage 50 Mb"
"minecraft server ram optimization"
Там обсуждались совершенно другие вопросы. Не буду вспоминать из каких разрядов, важно что на мой вопрос не было ответа
Слушай, ты сам ставил и проверял SpongeForge на ванильном майне? Третий раз уже спрашиваю, поскольку его работа состоит не только в предоставлении Sponge API. Попробовать то не судьба? Загони туда человек 5, проверь.
 
Я тебе русским языком говорю, что rubukkit - не форум по обсуждению sponge. Смысл у раздела этого чисто декоративный. Прошу перенести обсуждение на форум, который целиком посвящен sponge
Нормальная часть, соглашаюсь

И тут резко
но ты продолжаешь быть мудаком
Я не в обиде, но хорошо что мы в интернете и кому-то можно говорить про других гадости так безопасно

spongeapi мне показался пока сырым, еще маленькое там сообщество. Мало тем. Поэтому не возникло желания зарегистрироваться. Но ок, если что, буду писать не сюда, а туда. Будем это количество тем и активность повышать :cool:
 
Слушай, ты сам ставил и проверял SpongeForge на ванильном майне? Третий раз уже спрашиваю, поскольку его работа состоит не только в предоставлении Sponge API. Попробовать то не судьба? Загони туда человек 5, проверь.
Да, у меня SpongeForge на ванильном майне. Сервер на 50% готов, портирую свой мод, дописываю недостающий функционал плагинов, еще некоторые моменты сделаю - и будет на все 100%. Уже во многом разобрался

Но проблема, по которой и создана данная тема, до сих пор так и не решилась. Поставил foamfix на сервер, но при нулевом онлайне консоль заспамлена тем, что все равно сервер перегружен:
6aIVr72OxJw.jpg

На Калдроне (читать как Баккит) этого нет.

Остальные фиксы которые нашел - только для стороны клиента. Поставил их, Майн стал летать. Но важен сервер
 
Последнее редактирование:
Потребление памяти упирается, главным образом, в количество загруженных чанков
Массив биомов: 256 баит
HeightMAP: 1024*2=2048 баит
Массив обновлений освещения: 256 баит
Прочие поля: 128 баит (+-16 баит)
= 2688баит

Чанк делится на секции по 16 блоков в высоту. Всего их может быть до 16 штук
Skylight: 2048 баит
Blocklight: 2048 баит
Палитра блоков: 4 баита + 4 баита * КУБ
Массив блоков: КУБ<=16 ? 2048 баит : КУБ<=256 ? 4096 баит : 8192 баита
Прочее: ~64 баита
= КУБ<=16 ? от 6216 до 6276 баит : КУБ<=256 ? от 8264 до 8264 баит : от 12360 баит
P.S: КУБ - количество уникальных блоков в секции

Среднестатистический чанк содержит 6-10 секций, тогда считаем жор
2688+6276*8=52896 баит

Зачастую, в два раза больше

Причина большого жора ванильного сервера - чанки либо совсем не отгружаются, либо отгружаются с огромной задержкой. Вот так, получается, игрок зашел на сервер, чанки вокруг загрузились, походил немного вокруг и сервер свои 50мб чанками хапнул

Но это еще не все. Чанки же еще отправляются игрокам и сохраняются на диск. Это создает еще лишние кратковременные издержки на созданиях массивов. Под высокой нагрузкой GC не будет успевать выбрасывать хлам.

Что касаемо игроков. На одного игрока объектов создается, не больше, чем 8-16кб. Но траблируют проверки коллизий.... При большом онлайне GC еще не справляется с потоком инстансов AxisAlignedBB и Vec3d
Самый адекватный ответ. Остальное мусор.
 
Это сразу стало понятно. Но это теоретическая часть, а на практике как уменьшить потребление памяти этими чанками?
Это фигня все. Мне всегда хватало 4-6 гб на сотку онлайна. А дальше оно уже не в озу упрется, а в cpu. А конкретно в тикентити.
Он злоупотребления прогрузкой ставится античит от спидхака. Ну и отключение якорей в модах, которые любят удерживать чанки.
Да и на дворе уже 2к18. Оперативка давно не проблема.
Лучше подумать о реальных проблемах, оптимизации плагинов и модов. Что действительно приходится делать. А еще есть мода дудосить пакетами, пришлось пилить свой пакетлимитер. Ибо у спонжа еще и с модами с этим проблемы.
 
Последнее редактирование:
Это сразу стало понятно. Но это теоретическая часть, а на практике как уменьшить потребление памяти этими чанками?
Переписать/пропатчить сервер.....например, отгружать чанк сразу же/в течение 10 секунд, если в определенном радиусе нет игроков

Радикальные меры:
1. Отказ от системы освещения на сервере
Для Sky(Block) Light всех секций использовать один и тот же NibbleArray, заполненный нулями, в который запретить писать любые данные. Освещение придется просчитывать в клиенте в момент загрузки чанка с кучей костылей. А на сервере появится ряд багов)
Результат: -4096 баит на каждую секцию
+ еще можно отказаться от updateSkylightColumns. Еще -256 баит на чанк
2. blockBiomeArray - заменить на одинарный баит. Пострадает плавность перехода биомов, но -255 баит на каждый чанк
3. Можно попытаться поработать с HeightMap'ами, но тут уже профилировать надо и уменьшать использование по максимуму. Смысл такой, чтобы их генерировать при надобности на небольшие промежутки времени и затем удалять. В итоге: -2048 баит на чанк
4. Сжимать данные секций, но из-за того, что кол-во обращений в секунду к этим данным колоссально, то нагрузка на CPU вырастет во много раз. так что, не рационально

Даже с реализацией первого пункта жор понизится чуть ли не в три раза для большинства секций
 
Последнее редактирование:

Поделиться этой страницей

Назад
Верх