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

оптимизированная строка запуска

Тема в разделе "[Архив] Помощь", создана пользователем InterVi, 2 май 2014.

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

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

    Баллы:
    173
    Ищу и не могу найти внятных описаний. Как выглядит самая оптимизированная строка запуска? У меня есть такой вариант:
    Код:
    java -Dfile.encoding=utf-8 -Xincgc -server -Xmx2G -Xms256M -XX:MaxPermSize=128M -XX:+UseBiasedLocking -XX:+AggressiveOpts -XX:UseSSE=4 -XX:+UseFastAccessorMethods -jar spigot.jar
    Но половина параметров не понятна. Опишите если не сложно.
     
  2. MaksGruw

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

    Баллы:
    103
    Объясняю что в вашем варианте:
    Java - Запуск программой Java.
    -Dfile.encoding=utf-8 - Кодировка в формате UTF-8.
    -Xincgc - Высвобождает из памяти неиспользуемые объекты.
    -server - Запуск в формате серверной оболочки Java (Требуется для параметров с префиксом -XX).
    -Xmx2G - Дает серверу 2 ГБ оперативки максимум.
    -Xms256M - Дает серверу 1/4 ГБ оперативки минимум.
    -XX:MaxPermSize=128M - Дает своеобразному "мусорщику" 1/8 ГБ оперативки максимум (Особенно помогает при большом количестве модов).
    -XX:+UseBiasedLocking - Включает некую предвзятую блокировку.
    -XX:+AggressiveOpts - Изменяет 5 параметров виртуальной машины в сторону производительности.
    -XX:UseSSE=4 - Не особо мне известно, однако тоже помогает в производительности.
    -XX:+UseFastAccessorMethods - Использует более скоростные методы, дабы опять же увеличить производительность.
    -jar spigot.jar - Открывает упомянутый файл.

    Всю информацию можно было найти, просто поискав в поисковике.
    Кстати, рекомендую посмотреть список различных аргументов Java, там много чего интересного.
     
    Последнее редактирование: 8 май 2014
    MrXamster, unlimited, GrigoriK и ещё 1-му нравится это.
  3. Gamer3455

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

    Баллы:
    103
    Гоняю сервера с такой строкой -
    Код:
    java -jar -server -Xmx16385M -Xms4096M -XX\:MaxPermSize\=256m -Xincgc -Dcom.sun.management.jmxremote.port\=3334 -Dcom.sun.management.jmxremote.ssl\=false -Dcom.sun.management.jmxremote.authenticate\=false -Djline.terminal\=jline.UnsupportedTerminal -Dfml.ignoreInvalidMinecraftCertificates\=true -Dfml.ignorePatchDiscrepancies\=true mcpc-plus-1.6.4-R2.1-forge965-B251.jar --nojline
    Всё летает.
    Параметры
    Код:
    Dcom.sun.management.jmxremote.port\=3334 -Dcom.sun.management.jmxremote.ssl\=false -Dcom.sun.management.jmxremote.authenticate\=false
    можете выкинуть
     
  4. MaksGruw

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

    Баллы:
    103
    Однако не у многих такой мощный ПК или же хостинг.
    Свыше 16 ГБ оперативки не у каждого есть.
    Кстати, тут мало параметров, все держится чисто на количестве оперативной памяти.
    А также параметр для игнорирования изменений ядра Minecraft попросту не нужен. Это сервер, а не клиент.
     
  5. Gamer3455

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

    Баллы:
    103
    Ну и то верно.. Не у всех 64 гб на хостинге... :D
     
  6. Автор темы
    InterVi

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

    Баллы:
    173
    MaksGruw, отлично расписал, спасибо
    я гуглил, но в основном все было на английском, который я плохо перевожу
     
  7. HoShiMin

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

    Баллы:
    173
    А я вот такие параметры использую (память по выбору):
    JVMParams: string =
    '-server ' +
    '-D64 ' +
    '-XX:MaxPermSize=512m ' +
    '-XX:+UnlockCommercialFeatures ' +
    '-XX:+UseLargePages ' +
    '-XX:+AggressiveOpts ' +
    '-XX:+UseAdaptiveSizePolicy ' +
    '-XX:+UnlockExperimentalVMOptions ' +
    '-XX:+UseG1GC ' +
    '-XX:UseSSE=4 ' +
    '-XX:+DisableExplicitGC ' +
    '-XX:MaxGCPauseMillis=100 ' +
    '-XX:parallelGCThreads=8 ' +
    '-DJINTEGRA_NATIVE_MODE ' +
    '-DJINTEGRA_COINIT_VALUE=0 ' +
    '-Dsun.io.useCanonCaches=false ' +
    '-Djline.terminal=jline.UnsupportedTerminal ' +
    '-XX:ThreadPriorityPolicy=42 ' +
    '-XX:CompileThreshold=1500 ' +
    '-XX:+TieredCompilation ' +
    '-XX:TargetSurvivorRatio=90 ' +
    '-XX:MaxTenuringThreshold=15 ' +
    '-XX:+UnlockExperimentalVMOptions ' +
    '-XX:+UseAdaptiveGCBoundary ' +
    '-XX:permSize=1024M ' +
    '-XX:+UseGCOverheadLimit ' +
    '-XX:+UseBiasedLocking ' +
    '-Xnoclassgc ' +
    '-Xverify:none ' +
    '-XX:+UseThreadPriorities ' +
    '-Djava.net.preferIPv4Stack=true ' +
    '-XX:+UseStringCache ' +
    '-XX:+OptimizeStringConcat ' +
    '-XX:+UseFastAccessorMethods ' +
    '-Xrs ' +
    '-XX:+UseCompressedOops ';

    Вместо смайликов ": Р" без пробела
     
    InterVi нравится это.
  8. Автор темы
    InterVi

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

    Баллы:
    173
    -XX:+UnlockCommercialFeatures
    -XX:+UseAdaptiveSizePolicy
    Djline.terminal=jline.UnsupportedTerminal
    С этими не запускался. Но все равно осталось ошибка, хотя и работает:
    OpenJDK 64-Bit Server VM warning: Failed to reserve shared memory (errno = 22)

    Но оставил свой вариант, по визуальной быстроте старта и объему отжираемой памяти он остается более производительным. Еще к ней вот это добавил, стало лучше:
    Код:
    -XX:+UseConcMarkSweepGC
     
    Последнее редактирование: 4 май 2014
  9. MaksGruw

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

    Баллы:
    103
    Проверил все данные варианты - Они все пожирают намного больше оперативки, нежели запуская обычным (Без всех этих параметров) способом.
    И проведя "полевые испытания", я разработал вот эту строку запуска:
    Код:
    java -server -Xincgc -Xmx1G -Dfile.encoding=UTF-8 -XX:UseSSE=4 -XX:+UseLargePages -XX:+OptimizeStringConcat -XX:+OptimizeFill -XX:+AggressiveOpts -jar Core.jar
    Ваши строки запуска потребляли аж свыше 500 тысяч. А эта меньше 200 тысяч.
    Про оптимизацию (Лаги и т.п.) я не проверял, но проверял потребление памяти. Возможно с этой строкой и лагов будет меньше.
    P.S. Проверял на Libigot 1.5.2.
     
    InterVi нравится это.
  10. Автор темы
    InterVi

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

    Баллы:
    173
    MaksGruw, проверил, у меня жрет памяти больше и стартует медленнее. Ну это что я могу сказать по запуску, на нагрузке не могу протестировать. Ядро спигот. Наверно от ядра тоже зависит как строку оптимизировать.
    а как это все сказывается на загрузке процессора? кто-нибудь проверял?
     
  11. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Код:
    java -server -jar *.jar
    '-Xmx%M' для выделения бОльшего кол-ва памяти.
    Хотите чтобы всё летало? Переписывайте сервер на многопоточность.
     
  12. Автор темы
    InterVi

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

    Баллы:
    173
    не совсем понял про это, хоть все и говорят.. судя по htop у джавы куча процессов и она распределяет нагрузку между ядрами
     
  13. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    Нагрузка распределяется, но всё обрабатывается в одной очереди, а не паралельно.
     
    ПриветОтЛайки, Denscore, xDiP и ещё 1-му нравится это.
  14. komiss

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

    Баллы:
    103
    Имя в Minecraft:
    komiss77

    Вопрос на засыпку: Самый свежий spigot 1.7.9, на сервере 40 чел. Занимает от 5 до 9 Гб памяти. Это норма? 1.7.2 был поскромнее...
     
    Лайка2 нравится это.
  15. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    30к чанков в памяти занимают не больше 3 гб. Так что у тебя хрень какая то, не может он столько жрать на 40 игроках.
     
    Лайка2 и mahimamax нравится это.
  16. komiss

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

    Баллы:
    103
    Имя в Minecraft:
    komiss77
    Вот сегодня- шло нормально, потом бац-подвисание, и занято уже более 6Гб, при том, что вся папка сервера на диске занимает 4Гб... Часть плагинов уже поубирал, при том, что проблемм особых и не высвечивалось
    http://aikar.co/timings.php?url=3c06bad924a751e341b32b9a2c1c60cf
    ядро вот это http://ci.md-5.net/job/Spigot/1484/
    плагины Снимок экрана от 2014-05-30 12:44:38.png
    Есть идеи, куда копать? (похоже, надо создавать отдельную тему)
     

    Вложения:

    Лайка2 и mahimamax нравится это.
  17. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Память тут непричём, просто у тебя есть пачка плагинов которые сильно тормозят на присоединении игрока.
     
    Лайка2 и mahimamax нравится это.
  18. Автор темы
    InterVi

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

    Баллы:
    173
    У меня при онлайне в 50 даже до 1.5Гб не доходит. Какая строка запуска?
     
    Лайка2 и mahimamax нравится это.
  19. komiss

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

    Баллы:
    103
    Имя в Minecraft:
    komiss77
    java -server -Dfile.encoding=UTF-8 -Xmx12G -XX:MaxPermSize=256m -jar midgard.jar
    сейчас занялся наблюдением. Минут 10-15 работает нормально, памяти 1-2 Гб использовано, потом подвисание, и съедает всё, что выделено, начинаются дикие зависания, даже на 20 игроках.
     
    Лайка2, mahimamax и Лайка нравится это.
  20. MaksGruw

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

    Баллы:
    103
    Тут на самом деле проблема уже не в строке запуска, а плагинах. У тебя стоит множество плагинов, которые формируют некую "пожирающую память систему". Лучше сократи список плагинов до технического миниума, оставь только самое лучше. Ну можно конечно иначе, разделив нагрузку на несколько серверов...
     
    Лайка2, mahimamax и Лайка нравится это.

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