1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Sponge", создана пользователем Bars, 26 июн 2018.

Метки:
  1. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

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

    Хочу поставить Sponge, но он ставится как мод на ванильный (от Mojang) сервер с Форджем
     
  2. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Какое заявление?
     
  3. MiDest

    MiDest Активный участник Пользователь

    Баллы:
    66
    Вообщем-то сначала на ванильный сервер майнкрафт нужно фордж поставить, а далее губку как мод поставить
     
  4. InterWall

    InterWall Старожил Пользователь

    Баллы:
    173
    Он так и говорит, вопрос в потреблении ресурсов стоит.
     
  5. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    Потребление памяти упирается, главным образом, в количество загруженных чанков
    Массив биомов: 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
     
    Последнее редактирование: 28 июн 2018
  6. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Так а есть фиксы этого в виде модов/coreмодов? Плагинов для Sponge
     
  7. InterWall

    InterWall Старожил Пользователь

    Баллы:
    173
    Так ты проверил уже? Может оно и фиксит, кто его знает.
     
  8. Will Orion Z

    Will Orion Z Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    willorion
    Гугл для чего существует? Тыж вроде не глупый, даже имеешь статус "Девелопер". Заходишь на сайт curseforge и сам ищешь в нужных категориях нужный мод. Да, на это уйдет не один час, а то и день.
    Foamfix, и это только часть фиксов.
     
  9. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Я не знаю как проверять. Оперативка - она же скачет всегда. Надо снимать значения и выбирать среднее. Просто лень. Лучше спросить знатоков

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

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

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

    За Foamfix благодарность, пойду смотреть.
    Вы не модератор и создаёте отток пользователей с данного форума на сторонний ресурс, что модераторам делать запрещено. Модераторская работа наоборот заключается в верности проекту, на котором им даны полномочия, и им такие сообщения непозволительны. Этот раздел посвящён Sponge, а значит все вольны тут создавать темы, иначе зачем он
     
  10. Will Orion Z

    Will Orion Z Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    willorion
    Зачем формулировать запрос для поиска? В curseforge модификации ищутся ВРУЧНУЮ, искать через поиск там бесполезно. Берешь, и перебираешь каждый мод из вкладки серверных утилит под 1.12.2. Там их не так много.
     
  11. Will Orion Z

    Will Orion Z Активный участник Пользователь

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

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Не переходите на личности. Оскорбления вместо конструктива) Все на что способны пользователи форумов, извечная проблема

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

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

    InterWall Старожил Пользователь

    Баллы:
    173
    Слушай, ты сам ставил и проверял SpongeForge на ванильном майне? Третий раз уже спрашиваю, поскольку его работа состоит не только в предоставлении Sponge API. Попробовать то не судьба? Загони туда человек 5, проверь.
     
  14. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Нормальная часть, соглашаюсь

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

    spongeapi мне показался пока сырым, еще маленькое там сообщество. Мало тем. Поэтому не возникло желания зарегистрироваться. Но ок, если что, буду писать не сюда, а туда. Будем это количество тем и активность повышать :cool:
     
  15. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Да, у меня SpongeForge на ванильном майне. Сервер на 50% готов, портирую свой мод, дописываю недостающий функционал плагинов, еще некоторые моменты сделаю - и будет на все 100%. Уже во многом разобрался

    Но проблема, по которой и создана данная тема, до сих пор так и не решилась. Поставил foamfix на сервер, но при нулевом онлайне консоль заспамлена тем, что все равно сервер перегружен:
    [​IMG]
    На Калдроне (читать как Баккит) этого нет.

    Остальные фиксы которые нашел - только для стороны клиента. Поставил их, Майн стал летать. Но важен сервер
     
    Последнее редактирование: 2 июл 2018
  16. Roots

    Roots Активный участник Пользователь

    Баллы:
    76
    Ха а я думал что на игрока уходит около 100mb Оперативной памяти =)
     
  17. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Самый адекватный ответ. Остальное мусор.
     
  18. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Это сразу стало понятно. Но это теоретическая часть, а на практике как уменьшить потребление памяти этими чанками?
     
  19. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Это фигня все. Мне всегда хватало 4-6 гб на сотку онлайна. А дальше оно уже не в озу упрется, а в cpu. А конкретно в тикентити.
    Он злоупотребления прогрузкой ставится античит от спидхака. Ну и отключение якорей в модах, которые любят удерживать чанки.
    Да и на дворе уже 2к18. Оперативка давно не проблема.
    Лучше подумать о реальных проблемах, оптимизации плагинов и модов. Что действительно приходится делать. А еще есть мода дудосить пакетами, пришлось пилить свой пакетлимитер. Ибо у спонжа еще и с модами с этим проблемы.
     
    Последнее редактирование: 2 июл 2018
  20. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    Переписать/пропатчить сервер.....например, отгружать чанк сразу же/в течение 10 секунд, если в определенном радиусе нет игроков

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

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

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