Оптимизация производительности Bedrock сервера: различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к навигации Перейти к поиску
Новая страница: «= Оптимизация производительности Bedrock сервера = == 1. Подготовка системы == * Войдите в сист…»
 
Починка разметки: ссылки и жирный шрифт из Markdown, лишние обратные косые черты в коде, заголовки — проверка вики 13.11.2026
 
(не показана 1 промежуточная версия этого же участника)
Строка 51: Строка 51:


2. Установите оптимальное значение:
2. Установите оптимальное значение:
<pre>\# Для серверов с 4-8GB RAM
<pre># Для серверов с 4-8GB RAM
view-distance=24
view-distance=24


\# Для серверов с 8-16GB RAM
# Для серверов с 8-16GB RAM
view-distance=32
view-distance=32


\# Для серверов с 16GB+ RAM
# Для серверов с 16GB+ RAM
view-distance=48</pre>
view-distance=48</pre>


3. Пример для низкопроизводительного сервера:
3. Пример для низкопроизводительного сервера:
<pre>view-distance=16
<pre>view-distance=16
\# Уменьшает использование памяти и CPU</pre>
# Уменьшает использование памяти и 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>
# Уменьшает обработку чанков, повышает производительность</pre>


=== Настройка max-threads ===
=== Настройка max-threads ===


1. Установите оптимальное количество потоков:
1. Установите оптимальное количество потоков:
<pre>\# Для 2 ядер CPU
<pre># Для 2 ядер CPU
max-threads=2
max-threads=2


\# Для 4 ядер CPU
# Для 4 ядер CPU
max-threads=4
max-threads=4


\# Для 8 ядер CPU
# Для 8 ядер CPU
max-threads=6
max-threads=6
\# Оставьте 2 ядра для системы</pre>
# Оставьте 2 ядра для системы</pre>


2. Проверьте количество ядер:
2. Проверьте количество ядер:
Строка 100: Строка 100:


1. Оптимизируйте compression-threshold:
1. Оптимизируйте compression-threshold:
<pre>\# Сжатие всех пакетов (больше CPU, меньше трафика)
<pre># Сжатие всех пакетов (больше CPU, меньше трафика)
compression-threshold=1
compression-threshold=1


\# Баланс
# Баланс
compression-threshold=256
compression-threshold=256


\# Меньше сжатия (меньше CPU, больше трафика)
# Меньше сжатия (меньше CPU, больше трафика)
compression-threshold=512</pre>
compression-threshold=512</pre>


2. Пример для высоконагруженного сервера:
2. Пример для высоконагруженного сервера:
<pre>compression-threshold=512
<pre>compression-threshold=512
\# Снижает нагрузку на CPU</pre>
# Снижает нагрузку на 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
# Оптимизация 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
# Отключение медленного старта 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
Строка 175: Строка 175:
<pre>mount | grep /opt/bedrock</pre>
<pre>mount | grep /opt/bedrock</pre>


2. Отредактируйте /etc/fstab:
'''Внимание:''' не добавляйте в <code>/etc/fstab</code> новую строку для <code>/opt</code>. На VDS каталог <code>/opt</code> обычно лежит на корневом разделе, отдельного раздела под него нет: строка вида <code>/dev/sda1 /opt …</code> смонтирует поверх каталога другой раздел и скроет файлы сервера либо не даст системе загрузиться.
<pre>sudo nano /etc/fstab</pre>


3. Добавьте оптимизации для ext4:
2. Узнайте, на каком разделе лежит каталог сервера:
<pre>/dev/sda1 /opt ext4 defaults,noatime,nodiratime,commit=60 0 2</pre>
<pre>findmnt -T /opt/bedrock</pre>


4. Пример для XFS:
3. Откройте /etc/fstab и в уже существующей строке этого раздела (обычно это корень «/») допишите <code>noatime</code> к параметрам монтирования. Остальное в строке не меняйте:
<pre>/dev/sda1 /opt xfs defaults,noatime,nodiratime 0 2</pre>
<pre>sudo nano /etc/fstab</pre>


5. Примените изменения:
4. Проверьте файл и примените изменение (в команде укажите точку монтирования из шага 2):
<pre>sudo mount -o remount /opt</pre>
<pre>sudo findmnt --verify
sudo mount -o remount /</pre>


=== Оптимизация дискового кэша ===
=== Оптимизация дискового кэша ===
Строка 205: Строка 205:


2. Добавьте оптимизации UDP (для Bedrock):
2. Добавьте оптимизации UDP (для Bedrock):
<pre>\# Увеличение буферов UDP
<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
IOSchedulingClass=realtime
IOSchedulingPriority=0
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=50
LimitNOFILE=65536
LimitNOFILE=65536
LimitNPROC=32768
LimitNPROC=32768


\# Привязка к конкретным ядрам CPU (опционально)
# Привязка к конкретным ядрам CPU (опционально)
CPUAffinity=0-3
CPUAffinity=0-3


\# Оптимизация памяти
# Оптимизация памяти
MemoryMax=8G
MemoryMax=8G
MemoryHigh=6G
MemoryHigh=6G
Строка 301: Строка 297:
4. Настройте swappiness:
4. Настройте swappiness:
<pre>sudo sysctl -w vm.swappiness=10
<pre>sudo sysctl -w vm.swappiness=10
\# Меньшее значение = меньше использование swap</pre>
# Меньшее значение = меньше использование swap</pre>


=== Мониторинг памяти ===
=== Мониторинг памяти ===
Строка 309: Строка 305:


2. Добавьте содержимое:
2. Добавьте содержимое:
<pre>\#!/bin/bash
<pre>#!/bin/bash


PID=$(pgrep bedrock_server)
PID=$(pgrep bedrock_server)
Строка 321: Строка 317:
echo "Bedrock Server Memory: ${MEMORY_GB}GB"
echo "Bedrock Server Memory: ${MEMORY_GB}GB"


\# Предупреждение при использовании > 6GB
# Предупреждение при использовании > 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
Строка 340: Строка 336:


3. Добавьте содержимое:
3. Добавьте содержимое:
<pre>\#!/bin/bash
<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 (высокий приоритет)
# Создание класса для 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
# Фильтр для порта 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>
Строка 374: Строка 370:
=== Оптимизация для SSD ===
=== Оптимизация для SSD ===


1. Отключите индексирование для директории Bedrock:
1. Не ставьте на каталог миров атрибут <code>chattr +i</code>: он делает каталог неизменяемым, и сервер не сможет создавать и сохранять миры. Если атрибут уже установлен, снимите его:
<pre>sudo chattr +i /opt/bedrock/worlds/</pre>
<pre>sudo chattr -i /opt/bedrock/worlds/</pre>


2. Используйте noatime в fstab:
2. Используйте параметр <code>noatime</code> — как его добавить, описано в разделе 5.
<pre>/dev/sda1 /opt ext4 defaults,noatime,nodiratime 0 2</pre>


== 11. Оптимизация конфигурации мира ==
== 11. Оптимизация конфигурации мира ==
Строка 386: Строка 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>
# В server.properties</pre>


=== Оптимизация генерации чанков ===
=== Оптимизация генерации чанков ===


1. Предзагрузите нужные чанки:
1. Предзагрузите нужные чанки:
<pre>\# Используйте команды для предзагрузки важных областей
<pre># Используйте команды для предзагрузки важных областей
\# Это уменьшит лаги при первом посещении</pre>
# Это уменьшит лаги при первом посещении</pre>


== 12. Мониторинг производительности ==
== 12. Мониторинг производительности ==
Строка 407: Строка 402:


2. Добавьте содержимое:
2. Добавьте содержимое:
<pre>\#!/bin/bash
<pre>#!/bin/bash


LOG_FILE="/var/log/bedrock-performance.log"
LOG_FILE="/var/log/bedrock-performance.log"
Строка 418: Строка 413:
fi
fi


\# CPU использование
# 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
Строка 448: Строка 443:


5. Добавьте задачу:
5. Добавьте задачу:
<pre>\# Мониторинг каждые 5 минут
<pre># Мониторинг каждые 5 минут
*/5 * * * * /usr/local/bin/bedrock-performance-monitor.sh</pre>
*/5 * * * * /usr/local/bin/bedrock-performance-monitor.sh</pre>


Строка 460: Строка 455:
2. Проверьте FPS тики (через консоль сервера):
2. Проверьте FPS тики (через консоль сервера):
<pre>screen -r minecraft-bedrock
<pre>screen -r minecraft-bedrock
\# Наблюдайте за TPS в логах</pre>
# Наблюдайте за TPS в логах</pre>


=== Бенчмарк после оптимизации ===
=== Бенчмарк после оптимизации ===
Строка 501: Строка 496:


2. Уменьшите настройки:
2. Уменьшите настройки:
* `view-distance` → уменьшите до 24
* <code>view-distance</code> → уменьшите до 24
* `tick-distance` → уменьшите до 4
* <code>tick-distance</code> → уменьшите до 4
* `max-threads` → установите в 2-4
* <code>max-threads</code> → установите в 2-4


=== Высокое использование памяти ===
=== Высокое использование памяти ===
Строка 511: Строка 506:


2. Оптимизируйте:
2. Оптимизируйте:
* Уменьшите `view-distance`
* Уменьшите <code>view-distance</code>
* Уменьшите количество игроков
* Уменьшите количество игроков
* Регулярно перезагружайте сервер
* Регулярно перезагружайте сервер
Строка 529: Строка 524:
Оптимизация производительности Bedrock сервера включает настройку конфигурационных файлов, операционной системы, сетевых параметров и мониторинг ресурсов. Правильная оптимизация значительно улучшит производительность и стабильность сервера.
Оптимизация производительности Bedrock сервера включает настройку конфигурационных файлов, операционной системы, сетевых параметров и мониторинг ресурсов. Правильная оптимизация значительно улучшит производительность и стабильность сервера.


'''Для размещения ваших оптимизированных Bedrock серверов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):'''
'''Для размещения ваших оптимизированных Bedrock серверов на надежном хостинге рекомендуем воспользоваться услугами [https://ark-hoster.ru ARK-HOSTER.RU]:'''


* '''[Выделенные серверы](https://ark-hoster.ru/dedicated/)''' - для высоконагруженных Bedrock серверов
* '''[https://ark-hoster.ru/dedicated/ Выделенные серверы]''' - для высоконагруженных Bedrock серверов
* '''[VPS/VDS серверы](https://ark-hoster.ru/vpsgame/)''' - для небольших и средних серверов
* '''[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 → уменьшите до 24
  • tick-distance → уменьшите до 4
  • max-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 серверов и настройкой производительности!