Вторник, 14.05.2024, 12:56

География
Радио
Погода
Мини-чат
Главная » 2011 » Декабрь » 13 » Возможная причина лагов в игре
Возможная причина лагов в игре
09:41
Возможная причина лагов в игре.


Ужас системного администратора

Итак, ноги растут из особенностей TCP/IP фичи винды, называемой Nagle Algorithm. Задача Nagle Algorithm балансировать нагрузку инет соединения, т.е. он пытается равномерно "размазывать" трафик. Поэтому когда идёт замес в игре, как следствие увеличивается кол-во информации, бегающее между сервером и вами, Nagle Algorithm старается сгладить этот пик нагрузки, задерживая пакеты и пытаясь распределить их более равномерно по времени. Последствием работы данного алгоритма могут быть задержки в передаче пакетов до 200мс. Отсюда и может возникать тормознутось в реакции на ваши действия.
Проделав изменения, описанные здесь, мы просто отключаем этот механизм. Пакет отправляется сразу же, как его генерирует клиент.
Теперь все это применительно к скорости и качеству вашего инет соединения. Положительный эффект может быть получен только на хороших и стабильных подключениях. Считать что данные изменения улучшат качество вашего канала крайне не верно. Более того возможен даже обратный эффект, потому как Nagle Algorithm хоть как-то да следить за тем, сколько же информации реально можно протолкнуть. Когда Nagle Algorithm отключен, пакеты начнут уходить моментально, скапливаться где-то в очереди и возможно "дохнуть" по таймауту в той же очереди, например на роутере провайдера.
Собственно ничего не мешает попробовать. В случае отсутствия эффекта или же даже обратного нежелательного эффекта, можно проделать эти три шага в обратном порядке и вернуть всё как было. Т.е. удалить созданные ключи из реестра, убрать галочку с Message Queuing в списке компонентов, тем самым деинстлировав его.
Итак, что бы избавиться от отеческой заботы дяди Била о вашем канале, пользователям Windows XP SP2 и выше необходимо проделать следующие действия:
1.

 Убедитесь что у вас установлен Message Queuing. В русской версии этот компонент называется Очередь сообщений. Сделать это можно через Пуск->Панель управления-> Установка/Удаление программ->Установка компонентов Windows найти там Message Queuing.

2Нажмите кнопку Состав и убедитесь что стоят все галочки кроме Active Directory. Жмём кнопку ОК и Далее>, тут скорее всего потребуется диск с дистрибутивом Windows. Вставить диск, система сама всё найдёт на диске и установит куда надо.
запускаем regedit и топаем в ветку HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<Adapter ID>\, где <Adapter ID> это 32-х символьный идентификатор адаптера нужный <Adapter ID> определяется настройками IP адреса, которые будут отображаться с правой стороны (на рисунке поле 2 или 3). Т.е. перебираете все разделы, которые есть в ...Interfaces\, если справа увидите свои настройки IP, значит это именно тот адаптер, который вам нужен. Добавляем туда ключ TcpAckFrequency типа DWord. Для этого щёлкаем правой кнопкой мыши на нужном нам <Adapter ID> и далее как показано на рисунке, поле 4. Устанавливаем значением созданого ключа 1. Для этого два раза щёлкаем мышкой на созданном нами ключе и в поле Значение пишем 1. 
После этого топаем в ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\ и добавляем там ключ TcpNoDelay типа DWord, значение так же устанавливаем 1. Как создать ключ и установить его значение описано выше.
3. Перезапускаем сервис Message Queuing (Очередь сообщений для русской версии) или просто рестартим комп.

Для пользователей Vista и Windows 7 последовательность действий та же самая, за тем лишь исключением, что первый шаг будет выглядеть не так как на картинке.
Для "счастливых" обладателей Windows XP Home, можно ограничится установкой в реестре только ключа TcpAckFrequency. Пусть и не полный, но эффект должен быть. Более продвинутые пользователи могут набрать в гугле Install Microsoft Message Queue (MSMQ) on XP Home и заполучить инструкцию по установке Message Queue на свою винду. После этого они смогут проделать все шаги, описанные здесь и полностью отключить Nagle Algorithm.

После всего этого наблюдаем изменилось ли поведение игры. Эффект должен быть сильно заметен в серьёзных замесах, когда идёт активный обмен трафиком между клиентом и сервером.

Данная информация была взята с сайта http://forum.fragoria.ru
Просмотров: 6035 | Добавил: Морячoк
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Календарь новостей
«  Декабрь 2011  »
ПнВтСрЧтПтСбВс
   1234
567891011
12131415161718
19202122232425
262728293031
Поиск
Друзья сайта
  • BloodyWorld
  • Общество ночи
  • Покровители удачи
  • Статистика
    Copyright MyCorp © 2024
    Конструктор сайтов - uCoz