Denis Yuriev

Записки бездельника

Главная » Linux » Игровые сервера » Counter-Strike 1.6 » Сервер CS1.6 — Оптимизация сервера. Часть 1.

Сервер CS1.6 — Оптимизация сервера. Часть 1.

В этой статье поговорим об оптимизации сервера Counter-Strike 1.6
Часть вопросов рассмотрена практически в любой статье о создании своего сервера.
А о других аспектах никто и не упоминает. Скорее всего это вызвано отсутствием понимания слабых мест в системе.
Вопросы о пересборке ядра Linux оставим для второй части. Сейчас лишь о параметрах, кварах и немного теории слабых мест.

Классические методы оптимизации сервера CS 1.6

В этой части статьи будет идти речь о том, что рекомендует любой мануал.
Польза от этих пунктов, несомненно есть.

  1. Использование PingBoost

    В варианте сервера HLDS для ОС Linux есть серверная переменная pingboost.
    Если вкратце, то она определяет как сервер просчитывает события в игровом мире.
    По умолчанию pingboost равен нулю. Данный режим минимально загружает процессор и события обрабатываются по мере необходимости.
    При значениях pingboost 1 или 2 события обрабатываются с определенной периодичностью, даже если их отсылать некому.
    При значениях pingboost 3 события обрабатываются регулярно при каких либо изменениях в игровом мире.
    Логика проста — чем значение больше, тем задержки ответа сервера меньше, но нагрузка на процессор Выше.
    Для лучшего результата необходимо добавить -pingboost 3 к строке запуска сервера:

    ./hlds_run -game cstrike +ip 0.0.0.0 +maxplayers 20 +map de_dust2 -pingboost 3

    Помимо этого есть переменная sys_ticrate, которая задает максимальное количество обработок игрового мира в секунду.
    Бытует мнение, что надо устанавливать значение 1100. Однако практика показывает, что значение 500 более чем достаточно для паблик-серверов.

    $ nano ~/hlds/cstrike/server.cfg

    И добавим в конец файла

    sys_ticrate 500

  2. Настройка рейтов сервера

    Так как данный пункт настройки сервера рассматривается повсеместно — не буду лить воду, ибо я сам не до конца понял. Просто порекомендую почитать здесь.
    Если же читать Вам лень, то для паблик сервера:

    $ nano ~/hlds/cstrike/server.cfg

    И вновь в конец файла добавим

    sv_minrate 100000
    sv_maxrate 25000
    sv_minupdaterate 20
    sv_maxupdaterate 70

Дополнительные методы оптимизации сервера CS1.6

Здесь ж пойдет речь о манипуляции переменными, о которых мало кто говорит.

  1. Отключаем Debug в AMXModX

    Люди месяцами мучаются с лагами на сервере с кучей AMXX-плагинов, пытаясь найти слабые места.
    Однако тот факт, что по умолчанию в AMXModX включена отладка всех плагинов, мало кто замечает.
    Отключается элементарно:

    $ nano ~/hlds/cstrike/addons/amxmodx/configs/amxx.cfg

    ищем параметр amx_debug и отключаем его:

    amx_debug 0
  2. Отключаем логи

    Да-да, вам не показалось. Отключение логов нам необходимо.
    Вся печаль кроется в том, что в большинстве случаев самое слабое место в сервере — дисковая подсистема. Запись в файл — самая затратная операция по времени. Именно в эти моменты происходят так называемые просадки FPS сервера.
    Конечно, если у Вас сервер запущен на системе с аппаратным RAID0-массивом с SSD-дисками, то, возможно, результат не столь Вас обрадует. Но точно не хуже сделаете.

    Итак, сначала логи AMXModX

    $ nano ~/hlds/cstrike/addons/amxmodx/configs/core.ini

    Здесь отключаем параметр amxx_logging

    ; Logging mode
    ; 0 - no logging
    ; 1 - one logfile / day
    ; 2 - one logfile / map
    ; 3 - HL Logs
    amxx_logging    0

    И заодно логи DProto

    $ nano ~/hlds/cstrike/dproto.cfg

    здесь нам надо отключить параметры LoggingMode и ThreatsLoggingMode

    # LoggingMode:
    #   0 = None
    #   1 = Console
    #   2 = Log Files
    #   3 = Both
    LoggingMode = 0
    
    # ThreatsLoggingMode
    # Enable logging of threats details.
    #   Default is 0 (OFF).
    ThreatsLoggingMode = 0

На этом пока всё. Если что еще вспомню — обязательно дополню статью.

Сделай приятное автору - поделись статьей в социальной сети.

6 Комментариев

  1. Здравствуйте Денис!
    2 Часть в планах или забили? ) Очень интересует оптимизация ядра linux, и есть ли смысл заморачиваться этим на xen-VDS?

  2. Здравствуйте,debian 7, hlds6132, memvds.ru hard 3(1800 МГц 2GB RAM), в среднем при 20 игроках 66-70 нагрузка на процессор, но бывают моменты когда подскакует до 100 и на сервере подвисают игроки на пару сек.Как это можно исправить ?Мне допутить МГц или можно как то отпимизировать влияния сервер на проц програмно или хз, может нужно ядро пересобирать ?

  3. Денис Юрьев

    2 часть Вроде и в планах, а вроде и отрабатывать информацию негде.
    Xen-VDS как то сразу мимо меня прошел. Подсознательно этот метод визуализации мне не по нраву.
    Использую сейчас VDS по тарифу Lite от majordomo. Тоже не фонтан, фпс скачет, но не виснет.
    И рассматривайте VDS с двумя ядрами. Чтобы сервер на одном трудился, а система свои дела на другом творила.

    По поводу просадок — опять таки если VDS с одним ядром. То возможно проблема в каком то другом процессе. WEB-сервер, MySQL и так далее.
    Если на двух ядрах — если сервер не привязан к одному ядру, то он скорее всего скачет между ними, а в эти моменты опять дополнительные просадки.

  4. Даёшь вторую часть про оптимизацию сервера!

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

Оставьте комментарий

Войти с помощью: 
Denis Yuriev DMOZ Индекс цитирования

© 2017