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

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск

Содержание

Оптимизация производительности 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

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

sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
      dhcp6: false
      parameters:
        rx: 4096
        tx: 4096
sudo netplan apply

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

sudo nano /etc/fstab

Добавьте параметры для SSD:

UUID=your-ssd-uuid / ext4 defaults,noatime,discard 0 1

Настройка 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

sudo nano /etc/iptables/rules.v4
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 27015 -j ACCEPT
-A INPUT -p udp --dport 27015 -j ACCEPT
-A INPUT -p tcp --dport 27005 -j ACCEPT
-A INPUT -p udp --dport 27005 -j ACCEPT
COMMIT
sudo iptables-restore < /etc/iptables/rules.v4

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 сервер на нашем хостинге! Мы предоставляем:

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