Как установить spark для поиска лагов
1. Подготовка и доступ к серверу через панель proxify.cloud
Авторизуйтесь в панели proxify.cloud.
Перейдите в раздел Услуги → Мои серверы и выберите нужный выделенный сервер (Dedicated Server).
Откройте вкладку Консоль (VNC/NoVNC) или используйте SSH-ключ, добавленный при заказе. Для работы с Ubuntu удобнее подключиться через терминал:
ssh root@<IP_ВАШЕГО_СЕРВЕРА>IP-адрес указан в деталях услуги в панели proxify.cloud.
Обновите пакеты и установите необходимые утилиты:
apt update && apt upgrade -y apt install -y wget curl screen htop openjdk-21-jre-headlessSpark требует Java 17 или 21. На современных версиях Paper/Purpur/Folia используйте Java 21.
2. Определение пути к серверу и пользователя
На выделенных серверах proxify.cloud файлы обычно размещаются в домашней директории пользователя или в /opt. Стандартная практика — запуск от отдельного пользователя minecraft для безопасности.
Проверьте, существует ли пользователь:
id minecraft &>/dev/null || useradd -m -s /bin/bash minecraftОпределите рабочую директорию сервера. Типичные пути:
/home/minecraft/server/opt/minecraft/server/var/lib/minecraft/server
Перейдите в неё (пример для
/home/minecraft/server):cd /home/minecraft/server # Если директории нет, создайте и назначьте права: mkdir -p /home/minecraft/server chown -R minecraft:minecraft /home/minecraft/server
3. Установка Spark как мода/плагина
Способ установки зависит от типа ядра сервера.
Вариант А: Paper / Purpur / Airplane / Folia (Плагин)
Это самый частый сценарий на хостинге proxify.cloud.
Переключитесь на пользователя minecraft:
su - minecraft cd /home/minecraft/serverСкачайте последнюю версию Spark для вашей версии ядра (API Paper). Используйте официальный API или прямой 링к с GitHub/CurseForge. Пример для последней стабильной версии (замените версию при необходимости):
wget -O plugins/spark.jar "https://spark.lucko.me/versions/latest/download?platform=paper"Проверьте версию ядра командой
java -jar paper-*.jar --versionперед скачиванием, чтобы совпадали мажорные версии (1.20.x, 1.21.x).Убедитесь, что файл скачался корректно:
ls -lh plugins/spark.jar
Вариант Б: Forge / Fabric / NeoForge (Мод)
Если сервер работает на модлоадере.
- Определите папку
mods(обычно рядом сserver.jar). - Скачайте мод Spark под соответствующий модлоадер и версию Minecraft:
Лучше скачать конкретную версию через браузер на ПК и загрузить через SFTP (FileZilla/WinSCP), используя учетные данные root или minecraft панели proxify.cloud, чтобы не ошибиться с версией.# Пример для Fabric 1.20.1 (замените URL на актуальный с https://modrinth.com/mod/spark/versions) wget -O mods/spark.jar "https://cdn.modrinth.com/data/.../spark-<version>.jar"
Вариант В: Vanilla / Spigot (Без поддержки плагинов/модов)
Spark не работает на чистом Vanilla или старом Spigot без поддержки Paper API. Мигрируйте на Paper/Purpur.
4. Базовая конфигурация (config.yml)
После первого запуска сервера с плагином/модом сгенерируется конфиг.
Запустите сервер один раз (в screen/tmux), чтобы создались файлы, затем остановите командой
stop.screen -S mc java -Xms4G -Xmx4G -jar paper-*.jar nogui # Ждите "Done!", вводите stop, нажимаете Enter.Откройте конфиг:
nano plugins/spark/config.yml(Для модов:
mods/spark/config.ymlилиconfig/spark.cfgв зависимости от версии).Ключевые параметры для правки:
# Включить веб-интерфейс (рекомендуется) web: enabled: true address: "0.0.0.0" # Слушает все интерфейсы port: 8123 # Порт веб-UI # ВАЖНО: На выделенном сервере proxify.cloud настройте фаервол (см. шаг 6) # Сбор данных (профилирование) profiler: # Автоматически начинать профилирование при высокой нагрузке (TPS < 18) enabled: true trigger: enabled: true threshold: 18.0 duration: 300 # секунд (5 минут) # Ограничение доступа к командам (только OP) command-permission: "spark.command"Сохраните (
Ctrl+O,Enter,Ctrl+X).
5. Настройка Systemd для автозапуска (Рекомендуется на Ubuntu)
Вместо screen вручную используйте systemd-сервис. Это стандарт для выделенных серверов proxify.cloud.
Выйдите из пользователя minecraft (
exitилиCtrl+D), вернитесь к root.Создайте юнит-файл:
nano /etc/systemd/system/minecraft.serviceВставьте конфигурацию (подправьте пути, версию Java, объем RAM):
[Unit] Description=Minecraft Server (Paper) with Spark After=network.target Wants=network.target [Service] WorkingDirectory=/home/minecraft/server User=minecraft Group=minecraft # Путь к Java 21 (проверьте: readlink -f $(which java)) Environment="JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64" ExecStart=/usr/lib/jvm/java-21-openjdk-amd64/bin/java \ -Xms4G -Xmx4G \ -XX:+UseG1GC -XX:+ParallelRefProcEnabled \ -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \ -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \ -jar paper-1.21.1-*.jar nogui # Перезапуск при краше Restart=on-failure RestartSec=10 StartLimitInterval=60 StartLimitBurst=3 # Логи в journald StandardOutput=journal StandardError=journal SyslogIdentifier=minecraft [Install] WantedBy=multi-user.targetЗамените
paper-1.21.1-*.jarна точное имя вашего файла ядра (ls /home/minecraft/server).Перезагрузите демон, включите автозапуск и стартуйте:
systemctl daemon-reload systemctl enable minecraft systemctl start minecraftПроверьте статус и логи:
systemctl status minecraft journalctl -u minecraft -f -n 100
6. Настройка сетевого доступа (Фаервол UFW)
Панель proxify.cloud не блокирует порты на уровне гипервизора (Proxmox) для выделенных серверов, управление ОС полностью за вами. По умолчанию Ubuntu может иметь закрытый UFW.
- Проверьте статус:
ufw status - Откройте порт игры (по умолчанию 25565) и порт веб-интерфейса Spark (8123):
Если у вас стоит iptables/nftables напрямую — добавьте правила туда. Для Cloudflare Tunnel или Nginx Proxy Manager откройте 8123 только для localhost (127.0.0.1) и настройте реверс-прокси.ufw allow 25565/tcp comment "Minecraft Game Port" ufw allow 8123/tcp comment "Spark Web UI" # Если используете SSH на нестандартном порту — откройте его тоже! ufw allow 22/tcp comment "SSH" ufw enable
7. Использование Spark: поиск лагов
После запуска сервера (systemctl start minecraft) и входа в игру.
Через команды в консоли/игре (требует OP/permission spark.command)
Быстрый профиль (10 сек):
/spark profiler start --timeout 10Открыть отчет в браузере: После завершения в чате/консоли появится ссылка вида:
[Spark] View the report at: https://spark.lucko.me/report/xxxxxxxxПерейдите по ней. Никаких дополнительных портов открывать не нужно — отчет загружается на официальный сайт Spark.
Профилирование Tick'а (для зависаний):
/spark profiler tickАнализирует один игровой тик детально.
Просмотр текущей нагрузки (CPU/Heap/Threads):
/spark health /spark memory /spark threads
Через Веб-интерфейс (Local Web UI)
Если включен web.enabled: true и порт 8123 открыт в UFW:
- Откройте браузер:
http://<IP_ВАШЕГО_СЕРВЕРА_PROXIFY>:8123 - Интерфейс показывает:
- Dashboard: TPS, CPU, RAM, GC графики в реальном времени.
- Profiler: Кнопка "Start Profiler" (запуск профилирования на 1-5 минут).
- Reports: История сохраненных отчетов (хранятся в
plugins/spark/reports). - Threads: Дампы потоков (Thread Dumps) для поиска зависаний (deadlocks).
8. Анализ отчета (Что искать)
Откройте отчет (веб-ссылка или Local UI). Ключевые вкладки:
- Call Graph (Flame Graph): Визуализация стека вызовов.
- Широкие плашки сверху = код, занимающий больше всего CPU времени.
- Ищите плагины/моды с большими блоками:
com.example.plugin...,net.minecraft....
- Timings (Timings Viewer): Классическое дерево.timings.
- Сравнивайте
Total TimeиCount.
- Сравнивайте
Комментарии (0)