TRAnE | Дата: Воскресенье, 28.02.2010, 16:47 | Сообщение # 1 |
Это имеет место быть
Группа: Администраторы
Сообщений: 1126
Репутация: 121
Статус:
| Название статьи: " CS без лага". Взято с: http://www.pif-paf.ru Автор: kingpin Отредактировал и дополнил: Biker Перевод: Gh0St Я не могу обещать наверняка, но этастатья все же лучше чем ничего. В CS есть такие специальные команды,которые определяют, сколько данных вы посылаете и сколько принимаете сHL сервера. Итак, поехали. "Рейты (Rates)" Многие люди часто спрашивают что такое рейты, какие значенияиспользовать и т.п Я думаю написание руководства, объясняющего что всеэто значит, поможет многим людям. Чтобы потом люди не говорили какиезначения использовать, не понимая что они означают на самом деле. Определение. Начнем с определений: rate (Рейт) - это максимальный предел байт в секунду который сервер может послать клиенту. cl_rate- определяет максимальный предел байт в секунду который клиент можетпослать на сервер. (Вам не нужно беспокоится об этом параметре) cl_cmdrate - число раз в секунду которое клиент информирует сервер о своих действиях. cl_updaterate - это сколько раз в секунду сервер говорит клиенту что происходит на карте. sv_maxrate(параметр для серверов) - если вы не администратор сервера, а клиент(игрок на сервере) то на этот параметр можете даже не обращатьвнимание. Этот параметр аналогичен с клиентским rate и определяетмаксимально-допустимый предел передачи/приёма байт в секунду междуклиентом и сервером. Я предполагаю, что большинство людей использует ADSL или кабель издесь я буду рассматривать ADSL в качестве примера и исходя из этого япредполагаю, что скорость входящего потока у всех 512кб\с и скоростьисходящего 256кб\с, но вы можете сделать все приведенные здесь расчетыи для кабеля, и для соединений на более низких скоростях (простонеобходимо вычислить разницу). Теперь выставляйте значения rate,cl_updaterate и cl_cmdrate чем выше тем лучше, потому что это позволяетвам играть в более быструю игру и что более важно это позволяет вашимпулям попадать в противника с большей вероятностью. Сейчас я объяснювам почему. rate В теории соединение ADSL должно с легкостью поддерживать рейт в 25000. Это проверяется следующим образом: берем значение рейта, которое измеряется в байтах в секунду и переводим его в килобайты в секунду. 25000 /1024 = 24.4140625кБ/с В теории ваше соединение работает на скорости 512 килобит в секунду(в реальности оно работает на более низкой скорости). Я перевожу этозначение в килобайты в секунду: 512 / 8 = 64кБ/с Теперь вы можете видеть что через ваше соединение могут играть 2.62 человека с рейтом в 25000 (64 / 24.414 = 2.62) . Можно использовать такое же вычисление для cl_rate, но этого делать не стоит, значения по умолчанию 9999 более чем достаточно. cl_updaterate Далее вы хотите изменить значения команд cl_updaterate и cl_cmdrate.updaterate определяет как много обновлений в секунду вы можете получитьот сервера. Ясно что нужно получать как можно больше обновлений, таккак это дает вам более точную картину того где кто находится и кудалетят их пули. Однако, если у вас будет высокий updaterate и низкийrate вы не сможете послать достаточное количество данных за обновлениеи любая выгода от высокого updaterate будет сведена к минимуму. Длятого чтобы стало понятно, я сейчас все объясню. Если я ставлю cl_updaterate в 100 и мой рейт равен 25000 в теории каждое обновление может содержать до 250 байт данных (25000 / 100 = 250).Повторюсь чем больше данных вы сможете получить за обновление, темболее четко вы будете видеть игровой мир (это не означает что игровоймир будет более четким, а означает то, что ваши пули будут более четкопопадать в цель). В версии 1.3 было вычислено, что когда у вас наэкране происходит много действий, вы можете использовать 175 байт наобновление. Таким образом если у вас высокий updaterate, вам нуженсоответствующий ему высокий рейт. Используя данные из 1.3 если у вас updaterate равен 100, ваш рейтдолжен быть равен по крайней мере 17500, но лучше иметь небольшойзапас. Я рекомендую значение 20000 как минимум (чтобы определить какоезначение выбрать для вашего рейта возьмите ваш cl_updaterate и умножьтеего на 175, а затем прибавьте к полученному значению еще хотя бы 2000для страховки). cl_cmdrate cl_cmdrate работает так же как и cl_updaterate. Эта командаопределяет сколько обновлений в секунду вы посылаете на сервер. И сноваее значение нужно ставить как можно выше. Чем больше обновлений выпошлете на сервер, тем больше информации он будет иметь о вашихдействиях и о том куда летят ваши пули. На мой взгляд эта команда болееважная чем cl_updaterate. Как и с cl_updaterate и с rate вы можете вычислить максимальноеколичество данных которое может содержать каждое обновление. Отсюда,если у вас cl_cmdrate равен 100 и ваш cl_rate равен 9999, каждоеобновление может содержать 99.99байт данных (9999 / 100 = 99.99). Этого должно хватить для ваших нужд, так как вы посылаете меньше данных на сервер, чем он посылает вам. sv_maxrate Это особый параметр. Он пригодиться только администраторам КС-серверов.Если вы не администратор сервера, а клиент (тоесть игрок на сервере) тона этот параметр можете даже не обращать внимание. Этот параметраналогичен с клиентским rate и определяет максимально-допустимый пределпередачи/приёма байт в секунду между клиентом и сервером. Онпрописуеться в серверном конфиге или в консоли сервера. По умолчаниюsv_maxrate стоит на значении 0. Тоесть ограничение в траффике поотношению к каждому клиенту не задествовано. Но в настройках для Интернет серверов я бы рекомендовал быприменять значение максимум sv_maxrate 25000. А в случае, если у вассервер начинает лагать или перегружен или перегружен весь Интернетканал, я бы рекомендовал прописывать параметр поменьше, напримерsv_maxrate 10000 , 3500 или 3000 (в зависимости от того, как он у васлагает). Помехи (choke) и потеря (loss) Теперь мы будем смотреть на помехи и потерю. Помехи (choke) показываютвам число обновлений которые не были посланы в оба направления из заперегрузки соединения. Потеря (loss) показывает число обновленийкоторые были посланы, но не достигли другой стороны. Помехи более важнычем потери, потому что ими вы засоряете соединение и оно не справляетсясо всеми этими данными. Это означает что вам нужно понизить значениярейтов. Потеря не так важна и если у вас большая потеря это говорит отом что у вас с сервером плохое соединение. Появление как помех (choke)так и потери (loss) является следствием того, что значения рейтовкоторые вы используете, либо слишком низкие, либо слишком высокие. Я рекомендую попробовать использовать эти значения: rate 20000 cl_updaterate 100 cl_cmdrate 100 Если эти значения приводят к помехам или потерям, пробуйте понижать значения. Я бы попробовал так: rate 14000 cl_updaterate 70 cl_cmdrate 70 Вы можете проверить помехи и потери при помощи команды net_graph 3.Все сервера отличаются друг от друга и если вы сильно беспокоитесь насчет помех и потерь включите net_graph и подстройте ваши рейты, если неодин из выше перечисленных вам не подошел. Найдите соединение которое наиболее близко к вашему и попытайтесь применить к нему одни из приведенных ниже рейтов. для 576k и 1mb ADSL я бы использовал: rate 20000 cl_updaterate 90 cl_cmdrate 101 для 600k и 1mb Cable я бы использовал: rate 25000 cl_updaterate 80 cl_cmdrate 101 ПРИМЕЧАНИЕ - Ваша скоростьотправки (upload) не зависит от скорости приема (download). Вашcl_updaterate - это количество данных которое вы посылаете.Следовательно ваш cl_updaterate не должен быть таким же высоким какcl_cmdrate. Помехи (сhoke) случаются когда сервер собирается послать данныеклиенту, но не может потому что клиент еще не готов принять эти данные(основывается это на настройках клиентского рейта (rate) илисерверовского sv_maxrate). Некоторые вещи, такие как клиентский рейтслишком низкий для данного числа игроков на сервере, само собойприводят к потере. Другие вещи не всегда, но тоже могут привести кпотере, такие как когда клиент поднимает значение cl_updaterate слишкомвысоко. По схожей причине, админы LAN серверов могут не опасаться этого, так как для LAN серверов ( sv_lan = 1)настройки клиентского рейта а так же sv_min/maxrate абсолютноигнорируются и значение 9999 используется как рейт для всех клиентов.Оно будет увеличено до максимально разрешенного рейта в 20000, вследующем релизе, так что не стоит об этом забывать. сообщил Леон Хартвиг ( Leon Hartwig) - VALVe
|
|
| |