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

Помогите Возможно ли очищать RAM без перезапуска?

Тема в разделе "Помощь", создана пользователем H41L, 17 мар 2017.

  1. Автор темы
    H41L

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

    Баллы:
    66
    Имя в Minecraft:
    H41L
    Всем привет. Нагружается оперативная память очень быстро. Объясняю, есть плагин, допустим, который создает карту, когда игрок этого захочет. При этом накидывается где-то 50мб RAM. После выхода игрока с этой карты - карта удаляется. И так может сделать любой игрок, в связи с этим оперативка быстро нагружается.
    Вообще возможно чистить оперативную память, не перезапуская сервер? Может есть какие-то плагины для этого и так далее.
     
  2. InterVi

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

    Баллы:
    173
    Главное чтобы плагин за собой чистил. Что имеется ввиду под картой - отдельный мир или что? Если мир, то он должен быть корректно отгружен. Тогда память освободится. По htop этого не будет видно, потому что java её назад не отдаёт. Она будет выделена, но не использована, можно глянуть на сервере через /lag.

    Всё, что можно сделать без перезапуска - сбросить кэш и вызвать сборщик мусора.
    Код:
    sync; echo 1 > /proc/sys/vm/drop_caches
    из под рута
    Код:
    /lagg gc
    это в ClearLag, может ещё где есть, должно вызываться вот это
    Код:
    Runtime.getRuntime().gc();
     
  3. alexandrage

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

    Баллы:
    173
    Столько костылей, вместо рабочего решения save-all flush ? Ну бывает.
     
  4. Автор темы
    H41L

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

    Баллы:
    66
    Имя в Minecraft:
    H41L
    Странно, после использования /lagg gc вообще перестала оперативка подниматься, наверное это хорошо, но странно:D.. Про уборщика забыл совсем, спасибо
     
  5. InterVi

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

    Баллы:
    173
    и что он такого магического делает? у него наверняка ASW стоит
     
  6. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    При нехватке свободной памяти сборщик мусора должен отрабатывать автоматически, поэтому можно особо не беспокоиться по этому поводу. Хотя я не уверен, что в этом /lagg gc исключительно вызов коллектора. Может ещё какие-то сверхсложные манипуляции с серверными объектами и памятью, но это вряд ли
     
  7. alexandrage

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

    Баллы:
    173
    Полностью выгружает чанки на диск.
     
  8. Автор темы
    H41L

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

    Баллы:
    66
    Имя в Minecraft:
    H41L
    Я ошибся, это было временное явление. Все так и жрется оператива, а сделать не знаю что
     
  9. InterVi

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

    Баллы:
    173
    ну я предполагаю что у него есть авто-сохранение
    ведь есть же, да? и не раз в час?
     
  10. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    ClearLag настрой на детектирование загруженности памяти и поочередное выполнение команд. Допустим
    1. asw save
    2. lagg unloadchunks <----Осторожнее выгружает нпсов citizens(добавить после нее citizens reload)
    3. lagg gc
    И да то что джава скушала обратно уже не отдаст. Сколько памяти занято на активные операции можно глянуть командой /lag
    Опционально в список команд можно еще добавить убийство мобов и чистку мусора.
     
  11. Автор темы
    H41L

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

    Баллы:
    66
    Имя в Minecraft:
    H41L
    А как должен работать ASW? Как мы его поставили, тайминги по дефолту стоят
     
  12. InterVi

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

    Баллы:
    173
    Ну я не помню сколько там по умолчанию автосохранение. Надо секунд 300. Если не поможет, придётся утечку в плагинах искать. Есть что-нибудь тяжёлое? Вот динмап жрёт память беспощадно.
     
  13. Автор темы
    H41L

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

    Баллы:
    66
    Имя в Minecraft:
    H41L
    у меня есть плагин,про который я писал в шапке. Его мало кто тут знает, он отвечает за данжи(подземелья с мобами). Он работает так: Я создаю с помощью него карту, в которой все строю и делаю настройки. После этого карта сохраняется в папку плагина. Потом каждый игрок может собирать группу или играть один на этой карте. Игрок входит в данж, создается новая карта, после того как он умер или прошел, карта закрывается (удаляется). Вот на это все уходит много памяти походу
     
  14. InterVi

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

    Баллы:
    173
    Странно. После отгрузки память должна освободится. Но если помогал lagg gc, тут что-то не так с мусорщиком. Что в аргументах запуска? У меня вот такие
    Код:
    -Dfile.encoding=utf-8 -server -Xmx2656M -Xms256M -XX:+DisableExplicitGC -XX:+UseG1GC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+DoEscapeAnalysis -XX:+OptimizeFill -XX:+EliminateLocks -XX:+OptimizeStringConcat -XX:MaxGCPauseMillis=500
    а конкретно это нужно
    Код:
    -XX:+UseG1GC
     
  15. Автор темы
    H41L

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

    Баллы:
    66
    Имя в Minecraft:
    H41L
    Уборщик не помогал, мне показалось, что он остановил нагрузку, но это было не так. Где эти параметры посмотреть?
     
  16. InterVi

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

    Баллы:
    173
    где джарник сервера запускается
     
  17. Автор темы
    H41L

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

    Баллы:
    66
    Имя в Minecraft:
    H41L
    Сервер на хосте запускается. Где точно должен находиться этот файл?
     
  18. InterVi

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

    Баллы:
    173
    Тогда это жопа. Там всем панель управляет, а у обычных юзеров вряд ли есть такой доступ, чтобы свои аргументы вставлять. Ну ставь тогда lagg gc в интервал, через asw можно сделать.
     
  19. Автор темы
    H41L

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

    Баллы:
    66
    Имя в Minecraft:
    H41L
    Можете подсказать, как должно выглядеть это в конфиге? Если не сложно конечно
     
  20. InterVi

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

    Баллы:
    173
    Код:
      intervalmode:
        enabled: true
        intervals:
          '360':
          - lagg gc
     

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