Сетевые настройки сервера/клиента [CS:Source]

Обсуждаем все, что относится к выделенным серверам *NIX (Unix, Linux) и Windows
Сообщение
Автор
Аватара пользователя
Sammit92
Лейтенант
Лейтенант
Сообщения: 188
Зарегистрирован: 14.04.2010
Откуда: Ukraine
Благодарил (а): 48 раз
Поблагодарили: 2 раза
Контактная информация:

#1 Сообщение 29.02.2012, 14:42

Тема в мануалах и руководствах давно устарела, а подобной подробной и полной темы об этих параметрах нет.

Итак, хотелось бы во всех тонкостях разобраться, какие сетевые параметры сервера/клиента существуют и как эффективнее и качественнее всего их настроить, чтобы у игроков да и у самого сервера жизнь была бы хороша:)

Примечание: устанавливая на сервере максимальное и минимальное значение одного параметра одинаковыми, мы таким образом принудительно выставляем игрокам такое же значение соответствующего клиентского параметра.
  • Из серверных я знаю пока только эти(они у меня так и прописаны):

    sv_maxrate 0 - если ограничивать, то в net_graph будет расти choke, но... если 0, то у игроков может стоять всё, что угодно и у них тогда всё равно будет высокий choke, поэтому может быть лучше выставить sv_maxrate 100000 sv_minrate 100000 и тогда у всех игроков принудительно выставится rate 100000 и никаких chok'ов?

    sv_minrate 0

    sv_maxupdaterate 66 - нужно ли ставить здесь больше? Ведь cl_interp=cl_interp_ratio/cl_updterate=1(2)/66=0.0152(0.03), командой sv_competitive_minspec можно выставлять принудительно cl_interp 0.0152 или cl_interp 0.03 т.е. изменив updaterate мы не получим один из этих двух cl_interp

    sv_minupdaterate 66

    sv_maxcmdrate 66 - должно быть такое же как и sv_maxupdaterate

    sv_mincmdrate 66

    sv_client_max_interp_ratio 1 - тут непонятно что лучше выбирать. можно выбрать 1, тогда cl_interp=cl_interp_ratio/cl_updterate= 1/66=0.0152 и нужно ставить sv_competitive_minspec 1, а можно выбрать 2, тогда cl_interp=cl_interp_ratio/cl_updterate= 2/66=0.03 и нужно ставить sv_competitive_minspec 0

    sv_client_min_interp_ratio 1

    sv_competitive_minspec 1 - зависит от выбора sv_maxupdaterate и sv_client_max_interp_ratio


    У клиента знаю эти:

    rate 100000 - чем больше, тем лучше?
    cl_cmdrate 66 - а может лучше 101?
    cl_updaterate 66 - а может лучше 101?
    cl_interp_ratio 1 - или 2? или x?
    cl_interp 0.0152 - или x?
    lerp - менять нельзя, но каким он должен быть?
Все они могут быть принудительно выставлены сервером, так что не важно что пропишет клиент, значит дело остаётся в правильном решениии администратора сервера, какими прописать серверные параметры.

Огромная просьба: я знаю, это не все сетевые параметры сервера и клиента, пишите сюда, какие знаете ещё, и что знаете о них. Будем вместе разгребать.

kadet89
Майор
Майор
Сообщения: 557
Зарегистрирован: 26.12.2006

#2 Сообщение 29.02.2012, 16:30

Рекомендую sv_minrate и sv_maxrate поставить побольше если растет чек, а канал позволяет передавать трафик с большей скоростью.
Остальные параметры трогать не рекомендую. У вальвы настроено так, как надо, оптимальным образом. И лучше, наверно, не стоит разгребать все сетевые параметры. Сейчас слетятся на тему всякие, поначитают всякого, и "настроят" так, что на их серваках у одних игроков будет всё идеально, а другие играть не смогут.
Повторюсь, у вальвы параметры взяты не с неба, а подобраны оптимальным образом для любых условий.

Аватара пользователя
Sammit92
Лейтенант
Лейтенант
Сообщения: 188
Зарегистрирован: 14.04.2010
Откуда: Ukraine
Благодарил (а): 48 раз
Поблагодарили: 2 раза
Контактная информация:

#3 Сообщение 29.02.2012, 16:40

То есть ты предлагаешь администратору сервера менять лишь:
sv_maxrate
sv_minrate

и всё?

kadet89
Майор
Майор
Сообщения: 557
Зарегистрирован: 26.12.2006

#4 Сообщение 29.02.2012, 17:13

Да, я так и написал. И то в случаях когда сервак генерит трафик, который выходит за рейт (чек становится больше нуля), а канал еще позволяет его передавать. Это обычно на серваках за 30 игроков.

Аватара пользователя
Sammit92
Лейтенант
Лейтенант
Сообщения: 188
Зарегистрирован: 14.04.2010
Откуда: Ukraine
Благодарил (а): 48 раз
Поблагодарили: 2 раза
Контактная информация:

#5 Сообщение 29.02.2012, 21:37

А я так не думаю. У клиента по дефолту вообще мрачные параметры стоят, что cl_updaterate, что cl_cmdrate, да тот же самый cl_interp. Плюс ещё малоопытные серверные админы игрокам понапрописывают всякую срань. Тут однозначно нужно с серверной(со своей) стороны выставлять игрокам всё правильно. Вот если вы все не останетесь равнодушными и ленивыми что-то написать, эта тема поможет админам прописать правильные параметры и игроки избавятся от лагов.

Аватара пользователя
Overseer618
Overseer
Overseer
Сообщения: 272
Зарегистрирован: 06.05.2010
Откуда: Екатеринбург
Контактная информация:

#6 Сообщение 01.03.2012, 10:00

Размышляя над этой темой я подумал и вот что надумал:
1) На сурсмоде есть команда SendConVarValue, как я понимаю она позволяет установить одному клиенту любое значение серверной переменной помеченной как replicated без изменения значения этой переменной.
2) Используя эту команду мы можем узнать Choke клиента и посылать ему соответствующие параметры sv_maxrate, sv_maxcmdrate и sv_maxupdaterate пока choke не будет равен 0, так же мы можем поступить в зависимости от задержки клиента и значения Loss.
3) Если я все верно понял - осталось написать плагин и у вас будет универсальный настройщик рейтов.
Изображение
Изображение

hosse
Лейтенант
Лейтенант
Сообщения: 247
Зарегистрирован: 15.09.2011
Поблагодарили: 5 раз
Контактная информация:

#7 Сообщение 01.03.2012, 14:08

А какие мне рейты сервера ставить?
40 слотов CSS V70, когда сервер полный прыгает choke до 50...
Процессор 2xXeon X5660
Изображение

kadet89
Майор
Майор
Сообщения: 557
Зарегистрирован: 26.12.2006

#8 Сообщение 01.03.2012, 15:59

Overseer618, еслиб всё было так просто, вальва бы так и сделала.
Плюс ещё малоопытные серверные админы игрокам понапрописывают всякую срань.
Вы сами повторили мой ответ, ваша тема сейчас спровоцирует малоопытных админов именно так и поступить. )
Вон hosse уже спрашивает, не понимая и не стараясь понять сути choke, с полной уверенностью что этот параметр надо корректировать отталкиваясь чисто от количества слотов.
Товарищь hosse, всё не так просто, если перегнете палку, choke станет 0, но loss станет больше нуля. А это еще хуже, т.к. loss непредсказуемые потери, в отличае от choke. И их компенсация вызовет больше интерполяционных "неточностей" и процессорного времени вцелом.

hosse
Лейтенант
Лейтенант
Сообщения: 247
Зарегистрирован: 15.09.2011
Поблагодарили: 5 раз
Контактная информация:

#9 Сообщение 01.03.2012, 17:04

Потери бывают только на каналах интернета...
Еще бы rate не падали до 40, было бы найс, но при 40 слотах когда все полное не избежать
Изображение

kadet89
Майор
Майор
Сообщения: 557
Зарегистрирован: 26.12.2006

#10 Сообщение 01.03.2012, 18:15

Ну вот видите, яж говорил что hosse не осознает принцип работы сетевого движка...
hosse, не важно где бывают потери (они бывают не только "на каналах интернета"), а важно почему они бывают. В данном случае ключ rate служит для отсечения пакетов, которые не умещаются в канал (на которые не хватает пропускной способности). Вальва ежегодно проводит опрос и вычисляет среднюю скорость инетрнета у держателей серверов.
Ограничивая отправку части пакетов rate'ом, вы создаете искусственные потери, которые на другой стороне предсказуемы и легко поправимы. Но rate со стороны вальвы фиксирован на определенную скорость инета, и в этом состоит вся проблема. Если у вас сервак генерит пакетов по трафику больше rate, то choke становится не нулевым и начинает показывать количество отсеченных пакетов. При этом если есть запас по скорости - можно поднять рейт, чтобы он не отсекал пакеты, т.к. они в таком случае проскочат, а не будут потеряны. Но если нет запаса по скорости - с увеличением рейта чек будет уменьшатся, а лосс (потери невлезших пакетов) пропорционально увеличиваться.
Лосс - это непредсказуемые потери и соответственно обработка таких потерь гораздо сложнее.
Поэтому rate я рекомендую настраивать в случае ненулевых значений loss/choke так, чтобы loss был всегда нулевым, а choke как можно ближе или равен нулю.
А остальные параметры трогать не рекомендую. Как я сказал, они настроены идеально.

hosse
Лейтенант
Лейтенант
Сообщения: 247
Зарегистрирован: 15.09.2011
Поблагодарили: 5 раз
Контактная информация:

#11 Сообщение 01.03.2012, 18:40

Ну если я не понимаю, ты я японский летчик...
если rate падает пусть падает, ибо на мясе 40 слотов это не так заметно =)
интернет 100мбит
Изображение

kadet89
Майор
Майор
Сообщения: 557
Зарегистрирован: 26.12.2006

#12 Сообщение 02.03.2012, 00:13

hosse, да rate не может падать, он фиксирован. Падать может fps сервера и вместе с ним тикрейт.
Выб хотябы определение rate в консоли посмотрели, прежде чем глупости писать по нескольку раз:
bandwidth rate allowed on server
Или на русском:
разрешенный на сервере уровень полосы пропускания
Еще раз, rate фиксирует скорость отдачи. Если скорость генерируемых пакетов выше - часть пакетов не отправляются, а отправляются пометки что они не отправлены. На своей стороне клиент сразу знает какие пакеты нужно предсказать, а на сервере копятся важные пакеты, которые терять нельзя.
Это нужно для того, чтобы не было потерь пакетов, которые предсказать гораздо сложнее, и последствия которых поправить иногда не возможно, т.к. протокол UDP не гарантирует доставку пакета и не известно какие до клиента дошли, а какие нет.
Например меню сорсмода - при loss больше нуля часто хождение по нему будет обрываться. При choke больше нуля такого происходить не будет.

Аватара пользователя
Sammit92
Лейтенант
Лейтенант
Сообщения: 188
Зарегистрирован: 14.04.2010
Откуда: Ukraine
Благодарил (а): 48 раз
Поблагодарили: 2 раза
Контактная информация:

#13 Сообщение 02.03.2012, 11:02

Вы отклонились от темы ребята:)
Давайте для начала назовём все сетевые переменные сервера, дадим им определение, а затем уже будем разбираться какие их значения наиболее оптимальны.

Аватара пользователя
PhO3n1X
Сержант
Сержант
Сообщения: 96
Зарегистрирован: 01.01.2006
Откуда: Latvia
Поблагодарили: 1 раз
Контактная информация:

#14 Сообщение 02.03.2012, 12:21

GunGame.LV - Pro Gamers Portal | CS:S GG & DM Servers
Изображение

Изображение Изображение

kadet89
Майор
Майор
Сообщения: 557
Зарегистрирован: 26.12.2006

#15 Сообщение 02.03.2012, 15:44

Да, вот ссылка, всё расписано и даже со скринами, эту тему можно закрывать...

Ответить