Настройка рейтов сервера cs 1.6

#1 2013.12.14 18:51:21

0

loss - количество потерянных пакетов из последних 100. Теряются пакеты из-за перегрузки канала (роутеров) между сервером и клиентом, либо из-за неудовлетворительного состояния линии связи между сервером и клиентом. Проблема "железная" и зачастую трудно устранимая.

choke - количество пакетов, отправка которых была задержана сервером, чтобы не превысить лимит полосы, устанавливаемый rate, sv_minrate и sv_maxrate (сервер генерирует слишком много трафика). Проблема в настройках HLDS, решается установкой высокого значения переменной sv_minrate (100000 например) и перезапуском сервера.

choke - это количество пакетов из последних 100, которые были задержаны для конкретного клиента (не для всех), чтобы не превысить скорость передачи, которая у этого клиента задана в переменной rate. На клиентское значение rateсервер накладывает свои ограничения: клиентский rate не может быть больше sv_maxrate и не может быть меньше sv_minrate, именно в такой последовательности, сначала на "не больше", потом на "не меньше". На sv_minrate и sv_maxrate в свою очередь тоже накладываются ограничения: sv_maxrate не может быть больше 20000 (тут надо понимать, что в переменную вы можете поставить сколько угодно, но при расчетах значения выше 20000 будут игнорироваться), sv_minrate не может быть меньше 1000.

Значения sv_maxrate выше 20000 бессмысленны, это верно. А вот эффект от sv_minrate "100000" будет. Иначе говоря, если на сервере поставить sv_maxrate 20000 и sv_minrate "100000", то сервер будет пытаться "завернуть" трафик в канал ~100кбайт/сек для каждого клиента.

Оптимальных настроек на все случаи жизни скорее всего нет. Если мы говорим о LAN'е (sv_lan "1"), то в этом режиме клиентский rate (а также sv_minrate и sv_maxrate) не учитывается вообще, вместо него для всех клиентов используется значение sv_lan_rate.

Оптимальность настройки рэйтов определяется по наличию choke. Есть choke -> повышаем sv_minrate (в случае с sv_lan "0") или sv_lan_rate (в случае с sv_lan "1").

Если смотреть на цифры, то:
20000 байт/сек должно хватать для классических серверов.
50000 байт/сек - для мяса типа ЗМ.
Можно поставить 100000 и вообще не париться насчет choke.

Про sv_minupdaterate и sv_maxupdaterate (если кто забыл - это минимальная/максимальная частота отсылки пакетов-обновлений от сервера к клиенту):

sv_minupdaterate 30-60. 30 -"разумный минимум чтобы не лагало". Больше 60 ставить не стоит, потому что некоторые играют на 60 FPS. Отсылать им лишние обновления незачем.

sv_maxupdaterate 50-101. 101 - для классических серверов, где важна стрельба. 50 - для мяса. Кстати, низкий updaterate заметно снижает нагрузку на процессор (по моим опытам, при поднятии апдейтрэйта у всех игроков с 30 до101, загрузка ядра, на котором висел HLDS, выросла с 40% до 60%)

Лучше чтобы между значениями sv_minupdaterate и sv_maxupdaterate был интервал, чтобы дать клиенту свободу выбора. И не надо менять клиентский cl_updaterate вручную с помощью плагинов - не всем игрокам это нравится.

Для мяса:

sv_minrate "100000"
sv_minupdaterate "30"
sv_maxupdaterate "60"


Для классики:
sv_minrate "100000"
sv_minupdaterate "30"
sv_maxupdaterate "101"
Отредактировано: Panda 2022.08.08 10:46:56