Thinking. 1. Analyze the Request:
* Topic: How to optimize a Paper server.
* Hosting/Settings: proxify.cloud, Proxmox panel, dedicated server with Ubuntu.
* Language: Russian.
* Format:
* Title: # (matching the topic).
* Markdown: ## for headers, numbered steps, code blocks.
* Mention "proxify.cloud" where appropriate.
* Specific commands, file paths, examples.
* Length: 800-1500 words.
* Style: Practical, no fluff.
* Final section: "Возможные проблемы и решения".
* No HTML tags.
* Structure:
1. Title (# Как оптимизировать сервер Paper)
2. Introduction (brief context, management via proxify.cloud).
3. Preparation / Initial Setup via proxify.cloud Panel.
4. JVM Arguments & Aikar's Flags.
5. Server Properties (server.properties).
6. Paper Configuration (paper-global.yml, paper-world-defaults.yml).
7. Spigot Configuration (spigot.yml).
8. Bukkit Configuration (bukkit.yml).
9. Redstone & Entity Optimization.
10. Plugins for Performance.
11. Operating System Level Tuning.
12. Возможные проблемы и решения.
13. Conclusion.
* **Drafting the Content:**
**# Как оптимизировать сервер Paper**
В этой инструкции мы подробно разберем оптимизацию сервера Paper под управлением Ubuntu на выделенном сервере в панели **proxify.cloud**. Оптимизация позволит снизить нагрузку на процессор и память, уменьшить лаги и повысить TPS (тики в секунду).
**## 1. Выбор шаблона и начальная настройка через панель proxify.cloud**
При создании сервера в панели **proxify.cloud** рекомендуется выбирать версию Ubuntu 22.04 LTS (или 24.04 LTS). Выделите достаточно ядер CPU и RAM, исходя из планируемого онлайна (например, 4 vCPU и 8GB RAM для старта).
После создания контейнера или виртуальной машины, подключитесь по SSH:
```bash
ssh root@IP_вашего_сервера
```
Обновите систему:
```bash
apt update && apt upgrade -y
```
**## 2. Установка Java**
Paper требует Java 21. Установим OpenJDK 21:
```bash
apt install openjdk-21-jdk -y
```
Проверьте версию:
```bash
java -version
```
**## 3. Загрузка и запуск Paper**
Создайте директорию для сервера и скачайте последнюю сборку Paper:
```bash
mkdir /home/minecraft && cd /home/minecraft
wget https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/latest/downloads/paper-1.21.4-latest.jar -O paper.jar
```
*Примечание: Актуальную ссылку можно взять на [papermc.io/downloads](https://papermc.io/downloads).*
Запустите сервер первый раз для генерации файлов:
```bash
java -jar paper.jar --nogui
```
Примите EULA:
```bash
echo "eula=true" > eula.txt
```
**## 4. Ключевой этап: Правильные флаги запуска (Aikar's Flags)**
Это самый важный шаг для производительности. Создайте скрипт запуска `start.sh`:
```bash
nano start.sh
```
Пример флагов для сервера с 8GB RAM:
```bash
#!/bin/bash
java -Xms6G -Xmx6G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-Daikars.new.flags=true \
-jar paper.jar --nogui
```
*Важно:* `-Xms` (стартовый размер) и `-Xmx` (максимальный размер) лучше выставлять одинаковыми, чтобы избежать колебаний производительности. Оставьте 1-2 GB для системы (ОС и дисковый кэш). Для 8GB ставьте `6G`, для 16GB ставьте `10G-12G`.
Сделайте скрипт исполняемым и запускайте сервер через него:
```bash
chmod +x start.sh
./start.sh
```
**## 5. Оптимизация server.properties**
Остановите сервер (`/stop`) и отредактируйте основные настройки:
```bash
nano server.properties
```
| Параметр | Рекомендация | Пояснение |
|---|---|---|
| `network-compression-threshold` | `256` | Снижает нагрузку на CPU при сжатии пакетов. |
| `max-player` | Реальный онлайн + 20% | Не ставьте 100, если у вас 10 игроков. |
| `view-distance` | `4-6` | Самая ресурсоёмкая настройка. Чем ниже, тем меньше чанков загружается. |
| `simulation-distance` | `4-5` | Аналогично view-distance, но для логики (мобы, редстоун). |
| `entity-activation-range` | Базовая | Не трогаем, настраивается в `spigot.yml`. |
| `max-world-size` | `5000` (или меньше) | Ограничивает мир, заставляя генерировать новые чанки в радиусе, а не бесконечно. |
| `sync-chunk-writes` | `false` | Чуть быстрее сохранение мира. |
**## 6. Настройка paper-global.yml**
Это главный конфигурационный файл производительности Paper.
```bash
nano /home/minecraft/config/paper-global.yml
```
**Важные секции:**
* **Chunk System:**
```yaml
chunk-loading:
autoconfig-send-distance: 2
entity-activation-range:
animals: 16
monsters: 24
misc: 8
```
* **Entity Activation Range (EAR):** Включает/выключает ИИ мобов в зависимости от расстояния до игрока.
```yaml
entities:
activation-range:
animals: 8
monsters: 24
raiders: 24
misc: 8
water: 8
tick-rates:
# Задержка тиков для разных сущностей
sensor-ticks: 20
behavior-ticks: 4
```
* **Falling Blocks:**
```yaml
falling-blocks:
maximum-entities-per-chunk: 8
* **Redstone:**
```yaml
redstone:
# Отключает обновление соседних блоков при установке факела/повторителя
disable-rail-dup-patch: false # оставляем false
current-per-limit: # можно не трогать
```
* **Chunk Loading:**
```yaml
chunk-loading:
load-time: 5000 # Микросекунды на загрузку чанка за тик
```
* **Player Idle Timer:**
```yaml
players:
auto-save: 6000 # Тики (5 минут)
idle-timeout: 30 # Минут
```
* **Collisions:**
```yaml
collision:
max-entity-collisions: 2
```
Это резко снижает лаги от толпящихся сущностей (например, на фермах мобов).
**## 7. Настройка spigot.yml**
```bash
nano /home/minecraft/spigot.yml
```
* **Mob Spawner:**
```yaml
mob-spawner:
tick-rate: 3 # Было 1, увеличиваем до 2-3 для снижения нагрузки
* **Entity Activation Range: (дублирует Paper, но для совместимости)**
```yaml
entity-activation-range:
animals: 16
monsters: 24
misc: 8
water: 8
villagers: 16
flying-monsters: 24
* **Merge Radius (Слияние предметов):** Очень важная настройка для борьбы с лагами от выброшенных предметов.
```yaml
merge-radius:
item: 4.0 # Чем выше, тем быстрее предметы будут сливаться в стопки
exp: 6.0
```
* **Ticks per:**
```yaml
ticks-per:
hopper-transfer: 8 # Замедляет скорость перемещения предметов в воронках. Было 8, можно 12
hopper-check: 8
```
**## 8. Настройка bukkit.yml**
```bash
nano /home/minecraft/bukkit.yml
```
* **Chunks:**
```yaml
chunks:
# Количество чанков, сохраняемых за тик
per-tick: 650
# Максимальное количество чанков в очереди на загрузку/выгрузку
load-threads: 4 # Количество потоков для загрузки чанков (по числу ядер)
```
* **Database:**
```yaml
database:
type: sqlite
driver: org.sqlite.JDBC
```
**## 9. Настройка на уровне ОС (Ubuntu)**
В панели **proxify.cloud** у вас есть root-доступ, что позволяет провести тонкую настройку системы.
**Отключение HugeTLB (если используется не они):**
(Обычно Paper сам лучше работает с Transparent Huge Pages, но лучше их отключить)
```bash
echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
```
Чтобы сделать это постоянно, добавьте в `/etc/rc.local` или создайте systemd unit.
**Настройка параметров ядра (sysctl):**
```bash
nano /etc/sysctl.d/minecraft.conf
```
Добавьте:
```
# Уменьшение задержки сетевого стека
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq
net.ipv4.tcp_slow_start_after_idle = 0
# Оптимизация под нагрузку (уменьшение swappiness)
vm.swappiness = 10
# Уменьшение dirty ratio для быстрой записи
vm.dirty_ratio = 30
vm.dirty_background_ratio = 5
```
Примените настройки:
```bash
sysctl --system
```
**## 10. Оптимизация сети в панели proxify.cloud**
В веб-интерфейсе **proxify.cloud** для вашей виртуальной машины можно настроить аппаратную привязку CPU (CPU pinning) и выделить отдельное ядро для системных процессов. Это даст прирост производительности на выделенном сервере.
**## 11. Рекомендуемые плагины для оптимизации**
1. **Spark
Комментарии (0)