Оптимизация производительности Bedrock сервера: различия между версиями
Исправлены опасные шаги (потеря доступа или данных) — проверка вики 13.11.2026 |
Починка разметки: ссылки и жирный шрифт из Markdown, лишние обратные косые черты в коде, заголовки — проверка вики 13.11.2026 |
||
| Строка 51: | Строка 51: | ||
2. Установите оптимальное значение: | 2. Установите оптимальное значение: | ||
<pre> | <pre># Для серверов с 4-8GB RAM | ||
view-distance=24 | view-distance=24 | ||
# Для серверов с 8-16GB RAM | |||
view-distance=32 | view-distance=32 | ||
# Для серверов с 16GB+ RAM | |||
view-distance=48</pre> | view-distance=48</pre> | ||
3. Пример для низкопроизводительного сервера: | 3. Пример для низкопроизводительного сервера: | ||
<pre>view-distance=16 | <pre>view-distance=16 | ||
# Уменьшает использование памяти и CPU</pre> | |||
=== Настройка tick-distance === | === Настройка tick-distance === | ||
1. Оптимизируйте дистанцию обработки: | 1. Оптимизируйте дистанцию обработки: | ||
<pre> | <pre># Минимальная нагрузка | ||
tick-distance=4 | tick-distance=4 | ||
# Баланс (рекомендуется) | |||
tick-distance=6 | tick-distance=6 | ||
# Максимальная активность | |||
tick-distance=8</pre> | tick-distance=8</pre> | ||
2. Пример для оптимизации: | 2. Пример для оптимизации: | ||
<pre>tick-distance=4 | <pre>tick-distance=4 | ||
# Уменьшает обработку чанков, повышает производительность</pre> | |||
=== Настройка max-threads === | === Настройка max-threads === | ||
1. Установите оптимальное количество потоков: | 1. Установите оптимальное количество потоков: | ||
<pre> | <pre># Для 2 ядер CPU | ||
max-threads=2 | max-threads=2 | ||
# Для 4 ядер CPU | |||
max-threads=4 | max-threads=4 | ||
# Для 8 ядер CPU | |||
max-threads=6 | max-threads=6 | ||
# Оставьте 2 ядра для системы</pre> | |||
2. Проверьте количество ядер: | 2. Проверьте количество ядер: | ||
| Строка 100: | Строка 100: | ||
1. Оптимизируйте compression-threshold: | 1. Оптимизируйте compression-threshold: | ||
<pre> | <pre># Сжатие всех пакетов (больше CPU, меньше трафика) | ||
compression-threshold=1 | compression-threshold=1 | ||
# Баланс | |||
compression-threshold=256 | compression-threshold=256 | ||
# Меньше сжатия (меньше CPU, больше трафика) | |||
compression-threshold=512</pre> | compression-threshold=512</pre> | ||
2. Пример для высоконагруженного сервера: | 2. Пример для высоконагруженного сервера: | ||
<pre>compression-threshold=512 | <pre>compression-threshold=512 | ||
# Снижает нагрузку на CPU</pre> | |||
== 4. Оптимизация операционной системы == | == 4. Оптимизация операционной системы == | ||
| Строка 121: | Строка 121: | ||
2. Добавьте оптимизации: | 2. Добавьте оптимизации: | ||
<pre> | <pre># Увеличение буферов сети | ||
net.core.rmem_max = 16777216 | net.core.rmem_max = 16777216 | ||
net.core.wmem_max = 16777216 | net.core.wmem_max = 16777216 | ||
net.core.netdev_max_backlog = 5000 | net.core.netdev_max_backlog = 5000 | ||
# Оптимизация TCP | |||
net.ipv4.tcp_rmem = 4096 87380 16777216 | net.ipv4.tcp_rmem = 4096 87380 16777216 | ||
net.ipv4.tcp_wmem = 4096 65536 16777216 | net.ipv4.tcp_wmem = 4096 65536 16777216 | ||
| Строка 132: | Строка 132: | ||
net.ipv4.tcp_keepalive_time = 300 | net.ipv4.tcp_keepalive_time = 300 | ||
# Отключение медленного старта TCP | |||
net.ipv4.tcp_slow_start_after_idle = 0 | net.ipv4.tcp_slow_start_after_idle = 0 | ||
# Оптимизация памяти | |||
vm.swappiness = 10 | vm.swappiness = 10 | ||
vm.dirty_ratio = 60 | vm.dirty_ratio = 60 | ||
| Строка 205: | Строка 205: | ||
2. Добавьте оптимизации UDP (для Bedrock): | 2. Добавьте оптимизации UDP (для Bedrock): | ||
<pre> | <pre># Увеличение буферов UDP | ||
net.core.rmem_default = 262144 | net.core.rmem_default = 262144 | ||
net.core.rmem_max = 16777216 | net.core.rmem_max = 16777216 | ||
| Строка 211: | Строка 211: | ||
net.core.wmem_max = 16777216 | net.core.wmem_max = 16777216 | ||
# Оптимизация для игровых серверов | |||
net.core.netdev_max_backlog = 5000 | net.core.netdev_max_backlog = 5000 | ||
net.ipv4.udp_mem = 262144 327680 16777216</pre> | net.ipv4.udp_mem = 262144 327680 16777216</pre> | ||
| Строка 249: | Строка 249: | ||
RestartSec=10 | RestartSec=10 | ||
# Оптимизации производительности | |||
Nice=-5 | Nice=-5 | ||
LimitNOFILE=65536 | LimitNOFILE=65536 | ||
LimitNPROC=32768 | LimitNPROC=32768 | ||
# Привязка к конкретным ядрам CPU (опционально) | |||
CPUAffinity=0-3 | CPUAffinity=0-3 | ||
# Оптимизация памяти | |||
MemoryMax=8G | MemoryMax=8G | ||
MemoryHigh=6G | MemoryHigh=6G | ||
| Строка 297: | Строка 297: | ||
4. Настройте swappiness: | 4. Настройте swappiness: | ||
<pre>sudo sysctl -w vm.swappiness=10 | <pre>sudo sysctl -w vm.swappiness=10 | ||
# Меньшее значение = меньше использование swap</pre> | |||
=== Мониторинг памяти === | === Мониторинг памяти === | ||
| Строка 305: | Строка 305: | ||
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
<pre> | <pre>#!/bin/bash | ||
PID=$(pgrep bedrock_server) | PID=$(pgrep bedrock_server) | ||
| Строка 317: | Строка 317: | ||
echo "Bedrock Server Memory: ${MEMORY_GB}GB" | echo "Bedrock Server Memory: ${MEMORY_GB}GB" | ||
# Предупреждение при использовании > 6GB | |||
if (( $(echo "$MEMORY_MB > 6144" | bc -l) )); then | if (( $(echo "$MEMORY_MB > 6144" | bc -l) )); then | ||
echo "WARNING: High memory usage!" | logger -t bedrock-monitor | echo "WARNING: High memory usage!" | logger -t bedrock-monitor | ||
| Строка 336: | Строка 336: | ||
3. Добавьте содержимое: | 3. Добавьте содержимое: | ||
<pre> | <pre>#!/bin/bash | ||
INTERFACE=$(ip route | grep default | awk '{print $5}' | head -1) | INTERFACE=$(ip route | grep default | awk '{print $5}' | head -1) | ||
# Очистка старых правил | |||
sudo tc qdisc del dev $INTERFACE root 2>/dev/null | sudo tc qdisc del dev $INTERFACE root 2>/dev/null | ||
# Создание новой очереди | |||
sudo tc qdisc add dev $INTERFACE root handle 1: htb default 30 | sudo tc qdisc add dev $INTERFACE root handle 1: htb default 30 | ||
# Создание класса для Bedrock (высокий приоритет) | |||
sudo tc class add dev $INTERFACE parent 1: classid 1:10 htb rate 1000mbit ceil 1000mbit prio 1 | sudo tc class add dev $INTERFACE parent 1: classid 1:10 htb rate 1000mbit ceil 1000mbit prio 1 | ||
# Фильтр для порта Bedrock | |||
sudo tc filter add dev $INTERFACE protocol ip parent 1:0 prio 1 u32 match ip dport 19132 0xffff flowid 1:10 | sudo tc filter add dev $INTERFACE protocol ip parent 1:0 prio 1 u32 match ip dport 19132 0xffff flowid 1:10 | ||
sudo tc filter add dev $INTERFACE protocol ip parent 1:0 prio 1 u32 match ip sport 19132 0xffff flowid 1:10</pre> | sudo tc filter add dev $INTERFACE protocol ip parent 1:0 prio 1 u32 match ip sport 19132 0xffff flowid 1:10</pre> | ||
| Строка 381: | Строка 381: | ||
1. Регулярно очищайте неиспользуемые сущности через консоль: | 1. Регулярно очищайте неиспользуемые сущности через консоль: | ||
<pre>screen -r minecraft-bedrock | <pre>screen -r minecraft-bedrock | ||
# В консоли сервера | |||
</pre> | </pre> | ||
2. Настройте автоматическую выгрузку миров: | 2. Настройте автоматическую выгрузку миров: | ||
<pre>server-world-unload-after-wait=30 | <pre>server-world-unload-after-wait=30 | ||
# В server.properties</pre> | |||
=== Оптимизация генерации чанков === | === Оптимизация генерации чанков === | ||
1. Предзагрузите нужные чанки: | 1. Предзагрузите нужные чанки: | ||
<pre> | <pre># Используйте команды для предзагрузки важных областей | ||
# Это уменьшит лаги при первом посещении</pre> | |||
== 12. Мониторинг производительности == | == 12. Мониторинг производительности == | ||
| Строка 402: | Строка 402: | ||
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
<pre> | <pre>#!/bin/bash | ||
LOG_FILE="/var/log/bedrock-performance.log" | LOG_FILE="/var/log/bedrock-performance.log" | ||
| Строка 413: | Строка 413: | ||
fi | fi | ||
# CPU использование | |||
CPU=$(ps -p $PID -o %cpu | tail -1 | tr -d ' ') | CPU=$(ps -p $PID -o %cpu | tail -1 | tr -d ' ') | ||
# Память использование | |||
MEMORY_MB=$(ps -o pid,rss -p $PID | tail -1 | awk '{print $2/1024}') | MEMORY_MB=$(ps -o pid,rss -p $PID | tail -1 | awk '{print $2/1024}') | ||
MEMORY_GB=$(echo "scale=2; $MEMORY_MB/1024" | bc) | MEMORY_GB=$(echo "scale=2; $MEMORY_MB/1024" | bc) | ||
# Сетевая активность | |||
NET_IN=$(cat /proc/net/sockstat | grep TCP_INUSE | awk '{print $3}') | NET_IN=$(cat /proc/net/sockstat | grep TCP_INUSE | awk '{print $3}') | ||
NET_OUT=$(cat /proc/net/sockstat | grep TCP_MEM | awk '{print $3}') | NET_OUT=$(cat /proc/net/sockstat | grep TCP_MEM | awk '{print $3}') | ||
# Запись в лог | |||
echo "[$DATE] CPU: ${CPU}%, Memory: ${MEMORY_GB}GB, Network IN: $NET_IN, Network OUT: $NET_OUT" >> $LOG_FILE | echo "[$DATE] CPU: ${CPU}%, Memory: ${MEMORY_GB}GB, Network IN: $NET_IN, Network OUT: $NET_OUT" >> $LOG_FILE | ||
# Предупреждения | |||
if (( $(echo "$CPU > 80" | bc -l) )); then | if (( $(echo "$CPU > 80" | bc -l) )); then | ||
echo "[$DATE] WARNING: High CPU usage: ${CPU}%" >> $LOG_FILE | echo "[$DATE] WARNING: High CPU usage: ${CPU}%" >> $LOG_FILE | ||
| Строка 443: | Строка 443: | ||
5. Добавьте задачу: | 5. Добавьте задачу: | ||
<pre> | <pre># Мониторинг каждые 5 минут | ||
*/5 * * * * /usr/local/bin/bedrock-performance-monitor.sh</pre> | */5 * * * * /usr/local/bin/bedrock-performance-monitor.sh</pre> | ||
| Строка 455: | Строка 455: | ||
2. Проверьте FPS тики (через консоль сервера): | 2. Проверьте FPS тики (через консоль сервера): | ||
<pre>screen -r minecraft-bedrock | <pre>screen -r minecraft-bedrock | ||
# Наблюдайте за TPS в логах</pre> | |||
=== Бенчмарк после оптимизации === | === Бенчмарк после оптимизации === | ||
| Строка 496: | Строка 496: | ||
2. Уменьшите настройки: | 2. Уменьшите настройки: | ||
* | * <code>view-distance</code> → уменьшите до 24 | ||
* | * <code>tick-distance</code> → уменьшите до 4 | ||
* | * <code>max-threads</code> → установите в 2-4 | ||
=== Высокое использование памяти === | === Высокое использование памяти === | ||
| Строка 506: | Строка 506: | ||
2. Оптимизируйте: | 2. Оптимизируйте: | ||
* Уменьшите | * Уменьшите <code>view-distance</code> | ||
* Уменьшите количество игроков | * Уменьшите количество игроков | ||
* Регулярно перезагружайте сервер | * Регулярно перезагружайте сервер | ||
| Строка 524: | Строка 524: | ||
Оптимизация производительности Bedrock сервера включает настройку конфигурационных файлов, операционной системы, сетевых параметров и мониторинг ресурсов. Правильная оптимизация значительно улучшит производительность и стабильность сервера. | Оптимизация производительности Bedrock сервера включает настройку конфигурационных файлов, операционной системы, сетевых параметров и мониторинг ресурсов. Правильная оптимизация значительно улучшит производительность и стабильность сервера. | ||
'''Для размещения ваших оптимизированных Bedrock серверов на надежном хостинге рекомендуем воспользоваться услугами [ | '''Для размещения ваших оптимизированных Bedrock серверов на надежном хостинге рекомендуем воспользоваться услугами [https://ark-hoster.ru ARK-HOSTER.RU]:''' | ||
* '''[ | * '''[https://ark-hoster.ru/dedicated/ Выделенные серверы]''' - для высоконагруженных Bedrock серверов | ||
* '''[ | * '''[https://ark-hoster.ru/vpsgame/ VPS/VDS серверы]''' - для небольших и средних серверов | ||
Наши специалисты помогут с оптимизацией Bedrock серверов и настройкой производительности! | Наши специалисты помогут с оптимизацией Bedrock серверов и настройкой производительности! | ||
Текущая версия от 08:12, 14 ноября 2026
Оптимизация производительности Bedrock сервера
1. Подготовка системы
- Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
- Убедитесь, что Bedrock сервер установлен и работает.
- Рекомендуется использовать Ubuntu 24.04 LTS для стабильной работы.
- Проверьте текущую производительность перед оптимизацией.
2. Анализ текущей производительности
Проверка использования ресурсов
1. Проверьте использование CPU:
top htop vmstat 1 5
2. Проверьте использование памяти:
free -h cat /proc/meminfo
3. Проверьте использование диска:
df -h iostat -x 1 5
4. Проверьте использование сети:
iftop nethogs ss -tuln
Мониторинг процесса Bedrock
1. Найдите процесс Bedrock:
ps aux | grep bedrock_server
2. Проверьте использование ресурсов процессом:
pidstat -p $(pgrep bedrock_server) 1 10
3. Проверьте сетевую активность:
netstat -anp | grep bedrock_server ss -tuln | grep 19132
3. Оптимизация server.properties
Настройка view-distance
1. Оптимизируйте дистанцию прорисовки:
cd /opt/bedrock nano server.properties
2. Установите оптимальное значение:
# Для серверов с 4-8GB RAM view-distance=24 # Для серверов с 8-16GB RAM view-distance=32 # Для серверов с 16GB+ RAM view-distance=48
3. Пример для низкопроизводительного сервера:
view-distance=16 # Уменьшает использование памяти и CPU
Настройка tick-distance
1. Оптимизируйте дистанцию обработки:
# Минимальная нагрузка tick-distance=4 # Баланс (рекомендуется) tick-distance=6 # Максимальная активность tick-distance=8
2. Пример для оптимизации:
tick-distance=4 # Уменьшает обработку чанков, повышает производительность
Настройка max-threads
1. Установите оптимальное количество потоков:
# Для 2 ядер CPU max-threads=2 # Для 4 ядер CPU max-threads=4 # Для 8 ядер CPU max-threads=6 # Оставьте 2 ядра для системы
2. Проверьте количество ядер:
nproc lscpu | grep "CPU(s)"
Настройка сжатия
1. Оптимизируйте compression-threshold:
# Сжатие всех пакетов (больше CPU, меньше трафика) compression-threshold=1 # Баланс compression-threshold=256 # Меньше сжатия (меньше CPU, больше трафика) compression-threshold=512
2. Пример для высоконагруженного сервера:
compression-threshold=512 # Снижает нагрузку на CPU
4. Оптимизация операционной системы
Настройка sysctl параметров
1. Отредактируйте конфигурацию:
sudo nano /etc/sysctl.conf
2. Добавьте оптимизации:
# Увеличение буферов сети net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.netdev_max_backlog = 5000 # Оптимизация TCP net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 300 # Отключение медленного старта TCP net.ipv4.tcp_slow_start_after_idle = 0 # Оптимизация памяти vm.swappiness = 10 vm.dirty_ratio = 60 vm.dirty_background_ratio = 2
3. Примените изменения:
sudo sysctl -p
Настройка лимитов системы
1. Отредактируйте limits.conf:
sudo nano /etc/security/limits.conf
2. Добавьте лимиты для пользователя bedrock:
bedrock soft nofile 65536 bedrock hard nofile 65536 bedrock soft nproc 32768 bedrock hard nproc 32768
3. Проверьте текущие лимиты:
ulimit -a
Настройка I/O планировщика
1. Проверьте текущий планировщик:
cat /sys/block/sda/queue/scheduler
2. Установите планировщик для SSD:
echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler
3. Для NVMe SSD:
echo none | sudo tee /sys/block/nvme0n1/queue/scheduler
5. Оптимизация файловой системы
Настройка монтирования
1. Проверьте текущие опции монтирования:
mount | grep /opt/bedrock
Внимание: не добавляйте в /etc/fstab новую строку для /opt. На VDS каталог /opt обычно лежит на корневом разделе, отдельного раздела под него нет: строка вида /dev/sda1 /opt … смонтирует поверх каталога другой раздел и скроет файлы сервера либо не даст системе загрузиться.
2. Узнайте, на каком разделе лежит каталог сервера:
findmnt -T /opt/bedrock
3. Откройте /etc/fstab и в уже существующей строке этого раздела (обычно это корень «/») допишите noatime к параметрам монтирования. Остальное в строке не меняйте:
sudo nano /etc/fstab
4. Проверьте файл и примените изменение (в команде укажите точку монтирования из шага 2):
sudo findmnt --verify sudo mount -o remount /
Оптимизация дискового кэша
1. Настройте dirty ratios:
sudo sysctl -w vm.dirty_ratio=60 sudo sysctl -w vm.dirty_background_ratio=2
2. Для быстрых SSD уменьшите значения:
sudo sysctl -w vm.dirty_ratio=20 sudo sysctl -w vm.dirty_background_ratio=1
6. Оптимизация сетевых настроек
Настройка TCP параметров
1. Отредактируйте сетевые настройки:
sudo nano /etc/sysctl.conf
2. Добавьте оптимизации UDP (для Bedrock):
# Увеличение буферов UDP net.core.rmem_default = 262144 net.core.rmem_max = 16777216 net.core.wmem_default = 262144 net.core.wmem_max = 16777216 # Оптимизация для игровых серверов net.core.netdev_max_backlog = 5000 net.ipv4.udp_mem = 262144 327680 16777216
3. Примените изменения:
sudo sysctl -p
Настройка файрвола
1. Оптимизируйте правила UFW:
sudo ufw allow 19132/udp comment 'Bedrock Server' sudo ufw allow 19133/udp comment 'Bedrock Server IPv6'
2. Проверьте производительность правил:
sudo ufw status numbered
7. Оптимизация systemd сервиса
Настройка приоритетов
1. Отредактируйте сервис:
sudo nano /etc/systemd/system/minecraft-bedrock.service
2. Добавьте оптимизации:
[Unit] Description=Minecraft Bedrock Server After=network.target [Service] Type=simple User=bedrock Group=bedrock WorkingDirectory=/opt/bedrock ExecStart=/opt/bedrock/bedrock_server ExecStop=/bin/kill -15 $MAINPID Restart=always RestartSec=10 # Оптимизации производительности Nice=-5 LimitNOFILE=65536 LimitNPROC=32768 # Привязка к конкретным ядрам CPU (опционально) CPUAffinity=0-3 # Оптимизация памяти MemoryMax=8G MemoryHigh=6G [Install] WantedBy=multi-user.target
3. Перезагрузите конфигурацию:
sudo systemctl daemon-reload sudo systemctl restart minecraft-bedrock
Привязка к ядрам CPU
1. Определите количество ядер:
lscpu | grep "CPU(s)"
2. Пример привязки к первым 4 ядрам:
CPUAffinity=0 1 2 3
3. Пример привязки к четным ядрам:
CPUAffinity=0 2 4 6
8. Оптимизация памяти
Настройка виртуальной памяти
1. Настройте swap:
sudo nano /etc/fstab
2. Добавьте swap файл (если нужно):
sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
3. Добавьте в fstab:
/swapfile none swap sw 0 0
4. Настройте swappiness:
sudo sysctl -w vm.swappiness=10 # Меньшее значение = меньше использование swap
Мониторинг памяти
1. Создайте скрипт мониторинга:
sudo nano /usr/local/bin/bedrock-memory-monitor.sh
2. Добавьте содержимое:
#!/bin/bash
PID=$(pgrep bedrock_server)
if [ -z "$PID" ]; then
exit 0
fi
MEMORY_MB=$(ps -o pid,rss,comm -p $PID | tail -1 | awk '{print $2/1024}')
MEMORY_GB=$(echo "scale=2; $MEMORY_MB/1024" | bc)
echo "Bedrock Server Memory: ${MEMORY_GB}GB"
# Предупреждение при использовании > 6GB
if (( $(echo "$MEMORY_MB > 6144" | bc -l) )); then
echo "WARNING: High memory usage!" | logger -t bedrock-monitor
fi
3. Сделайте исполняемым:
sudo chmod +x /usr/local/bin/bedrock-memory-monitor.sh
9. Оптимизация сетевой задержки
Настройка приоритета сети
1. Используйте tc для приоритизации трафика:
sudo apt install -y iproute2
2. Создайте скрипт оптимизации:
sudo nano /usr/local/bin/bedrock-network-qos.sh
3. Добавьте содержимое:
#!/bin/bash
INTERFACE=$(ip route | grep default | awk '{print $5}' | head -1)
# Очистка старых правил
sudo tc qdisc del dev $INTERFACE root 2>/dev/null
# Создание новой очереди
sudo tc qdisc add dev $INTERFACE root handle 1: htb default 30
# Создание класса для Bedrock (высокий приоритет)
sudo tc class add dev $INTERFACE parent 1: classid 1:10 htb rate 1000mbit ceil 1000mbit prio 1
# Фильтр для порта Bedrock
sudo tc filter add dev $INTERFACE protocol ip parent 1:0 prio 1 u32 match ip dport 19132 0xffff flowid 1:10
sudo tc filter add dev $INTERFACE protocol ip parent 1:0 prio 1 u32 match ip sport 19132 0xffff flowid 1:10
4. Сделайте исполняемым:
sudo chmod +x /usr/local/bin/bedrock-network-qos.sh sudo /usr/local/bin/bedrock-network-qos.sh
10. Оптимизация дискового I/O
Настройка кэширования
1. Увеличьте размер кэша страниц:
sudo sysctl -w vm.page-cluster=3
2. Настройте dirty pages:
sudo sysctl -w vm.dirty_ratio=15 sudo sysctl -w vm.dirty_background_ratio=5
Оптимизация для SSD
1. Не ставьте на каталог миров атрибут chattr +i: он делает каталог неизменяемым, и сервер не сможет создавать и сохранять миры. Если атрибут уже установлен, снимите его:
sudo chattr -i /opt/bedrock/worlds/
2. Используйте параметр noatime — как его добавить, описано в разделе 5.
11. Оптимизация конфигурации мира
Уменьшение активности сущностей
1. Регулярно очищайте неиспользуемые сущности через консоль:
screen -r minecraft-bedrock # В консоли сервера
2. Настройте автоматическую выгрузку миров:
server-world-unload-after-wait=30 # В server.properties
Оптимизация генерации чанков
1. Предзагрузите нужные чанки:
# Используйте команды для предзагрузки важных областей # Это уменьшит лаги при первом посещении
12. Мониторинг производительности
Создание скрипта мониторинга
1. Создайте скрипт:
sudo nano /usr/local/bin/bedrock-performance-monitor.sh
2. Добавьте содержимое:
#!/bin/bash
LOG_FILE="/var/log/bedrock-performance.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
PID=$(pgrep bedrock_server)
if [ -z "$PID" ]; then
echo "[$DATE] Bedrock server is not running" >> $LOG_FILE
exit 1
fi
# CPU использование
CPU=$(ps -p $PID -o %cpu | tail -1 | tr -d ' ')
# Память использование
MEMORY_MB=$(ps -o pid,rss -p $PID | tail -1 | awk '{print $2/1024}')
MEMORY_GB=$(echo "scale=2; $MEMORY_MB/1024" | bc)
# Сетевая активность
NET_IN=$(cat /proc/net/sockstat | grep TCP_INUSE | awk '{print $3}')
NET_OUT=$(cat /proc/net/sockstat | grep TCP_MEM | awk '{print $3}')
# Запись в лог
echo "[$DATE] CPU: ${CPU}%, Memory: ${MEMORY_GB}GB, Network IN: $NET_IN, Network OUT: $NET_OUT" >> $LOG_FILE
# Предупреждения
if (( $(echo "$CPU > 80" | bc -l) )); then
echo "[$DATE] WARNING: High CPU usage: ${CPU}%" >> $LOG_FILE
fi
if (( $(echo "$MEMORY_MB > 6144" | bc -l) )); then
echo "[$DATE] WARNING: High memory usage: ${MEMORY_GB}GB" >> $LOG_FILE
fi
3. Сделайте исполняемым:
sudo chmod +x /usr/local/bin/bedrock-performance-monitor.sh
4. Добавьте в crontab:
sudo crontab -e
5. Добавьте задачу:
# Мониторинг каждые 5 минут */5 * * * * /usr/local/bin/bedrock-performance-monitor.sh
13. Тестирование производительности
Бенчмарк перед оптимизацией
1. Измерьте базовые показатели:
timeout 60 top -b -n 60 -p $(pgrep bedrock_server) > /tmp/before-optimization.txt
2. Проверьте FPS тики (через консоль сервера):
screen -r minecraft-bedrock # Наблюдайте за TPS в логах
Бенчмарк после оптимизации
1. Измерьте улучшенные показатели:
timeout 60 top -b -n 60 -p $(pgrep bedrock_server) > /tmp/after-optimization.txt
2. Сравните результаты:
diff /tmp/before-optimization.txt /tmp/after-optimization.txt
14. Рекомендации по оборудованию
Минимальные требования
- CPU: 2 ядра, 2.0 GHz
- RAM: 4GB (2GB для системы, 2GB для сервера)
- Диск: 10GB свободного места (SSD рекомендуется)
- Сеть: 10 Mbps для 10 игроков
Рекомендуемые требования
- CPU: 4 ядра, 3.0 GHz
- RAM: 8GB (2GB для системы, 6GB для сервера)
- Диск: 50GB свободного места (SSD обязательно)
- Сеть: 100 Mbps для 50 игроков
Для высоконагруженных серверов
- CPU: 8+ ядер, 3.5 GHz
- RAM: 16GB+ (4GB для системы, 12GB+ для сервера)
- Диск: 100GB+ свободного места (NVMe SSD)
- Сеть: 1 Gbps для 100+ игроков
15. Устранение неполадок
Высокое использование CPU
1. Проверьте процессы:
top -p $(pgrep bedrock_server)
2. Уменьшите настройки:
view-distance→ уменьшите до 24tick-distance→ уменьшите до 4max-threads→ установите в 2-4
Высокое использование памяти
1. Проверьте использование:
ps aux | grep bedrock_server
2. Оптимизируйте:
- Уменьшите
view-distance - Уменьшите количество игроков
- Регулярно перезагружайте сервер
Сетевые задержки
1. Проверьте пинг:
ping -c 10 <server-ip>
2. Оптимизируйте:
- Проверьте настройки TCP/UDP
- Увеличьте сетевые буферы
- Используйте QoS для приоритизации
Заключение
Оптимизация производительности Bedrock сервера включает настройку конфигурационных файлов, операционной системы, сетевых параметров и мониторинг ресурсов. Правильная оптимизация значительно улучшит производительность и стабильность сервера.
Для размещения ваших оптимизированных Bedrock серверов на надежном хостинге рекомендуем воспользоваться услугами ARK-HOSTER.RU:
- Выделенные серверы - для высоконагруженных Bedrock серверов
- VPS/VDS серверы - для небольших и средних серверов
Наши специалисты помогут с оптимизацией Bedrock серверов и настройкой производительности!