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

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к навигации Перейти к поиску
Исправлены опасные шаги (потеря доступа или данных) — проверка вики 13.11.2026
Починка разметки: ссылки и жирный шрифт из Markdown, лишние обратные косые черты в коде, заголовки — проверка вики 13.11.2026
 
Строка 7: Строка 7:
== Системные требования ==
== Системные требования ==


* **ОС:** Ubuntu 24.04 LTS
* '''ОС:''' Ubuntu 24.04 LTS
* **RAM:** Минимум 4 ГБ (рекомендуется 8+ ГБ)
* '''RAM:''' Минимум 4 ГБ (рекомендуется 8+ ГБ)
* **CPU:** 4+ ядра (рекомендуется 6+ ядер)
* '''CPU:''' 4+ ядра (рекомендуется 6+ ядер)
* **Диск:** SSD накопитель
* '''Диск:''' SSD накопитель
* **Сеть:** Высокоскоростное интернет-соединение
* '''Сеть:''' Высокоскоростное интернет-соединение


== 1. Оптимизация системы ==
== 1. Оптимизация системы ==
Строка 362: Строка 362:
Вы всегда можете установить оптимизированный CS сервер на нашем хостинге! Мы предоставляем:
Вы всегда можете установить оптимизированный CS сервер на нашем хостинге! Мы предоставляем:


* **VDS/VPS серверы:** https://ark-hoster.ru/vpsgame/
* '''VDS/VPS серверы:''' https://ark-hoster.ru/vpsgame/
* **Выделенные серверы:** https://ark-hoster.ru/dedicated/
* '''Выделенные серверы:''' https://ark-hoster.ru/dedicated/


Наши серверы уже оптимизированы для игровых серверов и обеспечивают максимальную производительность.
Наши серверы уже оптимизированы для игровых серверов и обеспечивают максимальную производительность.

Текущая версия от 08:12, 14 ноября 2026

Оптимизация производительности CS сервера на Ubuntu 24.04

Введение

Оптимизация производительности CS сервера — критически важная задача для обеспечения стабильной работы и низкого пинга. В данной статье рассмотрим различные методы оптимизации CS сервера на Ubuntu 24.04.

Системные требования

  • ОС: Ubuntu 24.04 LTS
  • RAM: Минимум 4 ГБ (рекомендуется 8+ ГБ)
  • CPU: 4+ ядра (рекомендуется 6+ ядер)
  • Диск: SSD накопитель
  • Сеть: Высокоскоростное интернет-соединение

1. Оптимизация системы

Настройка параметров ядра

sudo nano /etc/sysctl.conf

Добавьте следующие параметры:

# Оптимизация сети
net.core.rmem_max = 33554432
net.core.wmem_max = 33554432
net.ipv4.tcp_rmem = 4096 65536 33554432
net.ipv4.tcp_wmem = 4096 65536 33554432
net.core.netdev_max_backlog = 10000
net.ipv4.tcp_congestion_control = bbr

# Оптимизация памяти
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5
vm.vfs_cache_pressure = 50

# Оптимизация файловой системы
fs.file-max = 2097152
fs.nr_open = 2097152

Применение настроек

sudo sysctl -p

Настройка лимитов системы

sudo nano /etc/security/limits.conf

Добавьте следующие строки:

# Лимиты для игрового сервера
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

2. Оптимизация CPU

Настройка CPU губернатора

sudo apt install -y cpufrequtils
echo 'GOVERNOR="performance"' | sudo tee /etc/default/cpufrequtils
sudo systemctl enable cpufrequtils
sudo systemctl start cpufrequtils

Отключение энергосбережения

sudo nano /etc/default/grub

Измените строку:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1 processor.max_cstate=1"
sudo update-grub
sudo reboot

Настройка приоритета процессов

sudo nano /etc/systemd/system/csgo.service
[Unit]
Description=CS:GO Server
After=network.target

[Service]
Type=simple
User=csgo
WorkingDirectory=/home/csgo/csgo-server
ExecStart=/home/csgo/start-csgo.sh
Restart=always
RestartSec=10
Nice=-10
IOSchedulingClass=1
IOSchedulingPriority=4

[Install]
WantedBy=multi-user.target

3. Оптимизация памяти

Настройка swap

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Настройка параметров памяти

sudo nano /etc/sysctl.conf
# Оптимизация памяти
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5
vm.vfs_cache_pressure = 50
vm.overcommit_memory = 1

4. Оптимизация сети

Настройка TCP параметров

sudo nano /etc/sysctl.conf
# TCP оптимизация
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_rmem = 4096 65536 33554432
net.ipv4.tcp_wmem = 4096 65536 33554432
net.core.rmem_max = 33554432
net.core.wmem_max = 33554432

Настройка сетевых интерфейсов

Файл netplan для этого менять не нужно. Ключей rx и tx в netplan нет: файл с ними не применится, а ошибка в настройках сети может оставить сервер без связи после перезагрузки.

Текущие размеры буферов сетевой карты можно посмотреть так (имя интерфейса возьмите из вывода ip a; на виртуальных сетевых картах VDS эти размеры обычно не меняются):

ethtool -g eth0

5. Оптимизация сервера CS

Настройка параметров запуска

nano /home/csgo/start-csgo.sh
#!/bin/bash
cd /home/csgo/csgo-server

# Оптимизация для производительности
export MALLOC_CHECK_=0
export MALLOC_PERTURB_=0

./srcds_run -game csgo -console -usercon \
    +fps_max 300 \
    -tickrate 128 \
    +game_type 0 \
    +game_mode 1 \
    +mapgroup mg_active \
    +map de_dust2 \
    +sv_setsteamaccount YOUR_STEAM_TOKEN \
    -net_port_try 1 \
    +sv_lan 0 \
    +sv_region 255 \
    +sv_steamgroup "" \
    +sv_steamgroup_exclusive 0 \
    +sv_consistency 1 \
    +sv_pure 1 \
    +sv_cheats 0 \
    +sv_parallel_sendsnapshot 1 \
    +sv_parallel_packentities 1 \
    +sv_forcepreload 1

Настройка server.cfg

nano /home/csgo/csgo-server/csgo/cfg/server.cfg
# Оптимизация производительности
sv_parallel_sendsnapshot 1
sv_parallel_packentities 1
sv_forcepreload 1
sv_optimize_players 1
sv_optimize_entities 1

# Настройки сети
sv_maxrate 0
sv_minrate 100000
sv_maxupdaterate 128
sv_minupdaterate 64
sv_maxcmdrate 128
sv_mincmdrate 64

# Настройки тика
sv_tickrate 128
sv_clockcorrection_msecs 30

# Настройки FPS
fps_max 300
fps_max_menu 300

6. Мониторинг производительности

Установка инструментов мониторинга

sudo apt install -y htop iotop nethogs

Создание скрипта мониторинга

nano /home/csgo/monitor.sh
#!/bin/bash
echo "=== CPU Usage ==="
top -bn1 | grep "Cpu(s)"
echo ""
echo "=== Memory Usage ==="
free -h
echo ""
echo "=== Disk Usage ==="
df -h
echo ""
echo "=== Network Usage ==="
cat /proc/net/dev
echo ""
echo "=== CS:GO Process ==="
ps aux | grep srcds
chmod +x /home/csgo/monitor.sh

Настройка автоматического мониторинга

crontab -e

Добавьте строку для мониторинга каждые 5 минут:

*/5 * * * * /home/csgo/monitor.sh >> /home/csgo/monitor.log

7. Оптимизация диска

Настройка SSD

Внимание: не добавляйте в /etc/fstab новую строку для корневого раздела: вторая строка для «/» или неверный UUID не дадут серверу загрузиться. Меняйте только параметры в уже существующей строке.

sudo nano /etc/fstab

В существующей строке корневого раздела допишите noatime к параметрам монтирования, остальное не трогайте. Например, было:

UUID=... / ext4 defaults 0 1

стало:

UUID=... / ext4 defaults,noatime 0 1

Проверьте файл и примените изменение без перезагрузки:

sudo findmnt --verify
sudo mount -o remount /

Параметр discard не нужен: в Ubuntu освобождённые блоки SSD раз в неделю очищает таймер fstrim.timer, он включён по умолчанию.

Настройка I/O планировщика

echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler

Очистка логов

sudo nano /etc/logrotate.d/csgo
/home/csgo/csgo-server/csgo/logs/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 644 csgo csgo
}

8. Оптимизация SourceMod

Настройка плагинов

nano addons/sourcemod/configs/core.cfg
# Оптимизация SourceMod
sm_plugins_version "1.12.0"
sm_plugins_autoreload "0"
sm_plugins_autoreload_time "0"
sm_logging_level "0"

Отключение ненужных плагинов

sm plugins unload plugin_name

Настройка базы данных

nano addons/sourcemod/configs/databases.cfg
"Databases"
{
    "default"
    {
        "driver"    "mysql"
        "host"      "localhost"
        "database"  "sourcemod"
        "user"      "sourcemod"
        "pass"      "your_password"
        "port"      "3306"
        "timeout"   "10"
        "charset"   "utf8"
    }
}

9. Настройка файрвола

Оптимизация iptables

Откройте порты сервера через UFW:

sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp

Внимание: не загружайте правила командой iptables-restore на сервере, где включён UFW: она заменяет все действующие правила, в том числе правила UFW, и сервер остаётся без файрвола.

10. Резервное копирование

Создание скрипта бэкапа

nano /home/csgo/backup-optimized.sh
#!/bin/bash
BACKUP_DIR="/home/csgo/backups"
SERVER_DIR="/home/csgo/csgo-server"
DATE=$(date +%Y%m%d_%H%M%S)

mkdir -p $BACKUP_DIR

# Создание бэкапа с оптимизацией
tar --exclude='logs/*' --exclude='*.log' -czf $BACKUP_DIR/csgo_optimized_backup_$DATE.tar.gz -C $SERVER_DIR .

# Удаление старых бэкапов (старше 7 дней)
find $BACKUP_DIR -name "csgo_optimized_backup_*.tar.gz" -mtime +7 -delete
chmod +x /home/csgo/backup-optimized.sh

Заключение

Оптимизация CS сервера на Ubuntu 24.04 завершена. Теперь ваш сервер:

  • Работает с максимальной производительностью
  • Имеет низкий пинг
  • Стабильно обрабатывает игроков
  • Эффективно использует ресурсы

Хостинг

Вы всегда можете установить оптимизированный CS сервер на нашем хостинге! Мы предоставляем:

Наши серверы уже оптимизированы для игровых серверов и обеспечивают максимальную производительность.