px: (Default)
px ([personal profile] px) wrote2010-03-07 04:58 pm
Entry tags:

Лаги в онлайн-играх под Windows 7

Проблема появилась у одного из игроков в CS на сервере, установка свежих драйверов, изменение настроек видео/игры, проверка конфига не помогли. Пришлось лезть в Гугл, где и обнаружилось, что на неё напоролась куча пользователей и в других играх.
Если кратко, причина в очередной инкарнации механизма QoS для мультимедия-трафика (интересно, что некоторые игры в MS не считаются почему-то мультимедиа :D), он появился ещё в Vista, а в 7-ке его настройки подкрутили в "нужную" сторону, и часть пользователей столкнулась с неожиданными лагами.
Как исправить:
1) Запускаем regedit
2) Идём в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
3) Изменяем значение параметра NetworkThrottlingIndex с a на FFFFFFFF
4) Перезагружаемся
Для ленивых сделал простой reg-файл
Описание механизма на сайте MS - How to use the throttling mechanism to control network performance in Windows Vista
UPD: Добавляю ещё ссылок по теме, взятых с форума www.sevenforums.com
http://courtneymalone.com/2007/08/28/a-note-on-vista-network-speed/
http://blogs.msdn.com/larryosterman/archive/2007/08/28/windows-vista-sound-causes-network-throughput-slowdowns.aspx
http://msdn.microsoft.com/en-us/library/ms684247(VS.85).aspx
http://blogs.technet.com/markrussinovich/archive/2007/08/27/1833290.aspx
http://en.wikipedia.org/wiki/Multimedia_Class_Scheduler_Service

[identity profile] last-sardaukar.livejournal.com 2010-03-07 04:42 pm (UTC)(link)
Ура, наконец-то я поиграю в Tiberian Sun по инету!!!)

[identity profile] w00dy.livejournal.com 2010-03-07 05:26 pm (UTC)(link)
всё равно не понимаю как она ограничивает трафик, тем более в случае с cs. Тротлинг заметен только на гигабитных каналах, на которых он ограничивает скорость до 100mbps. Кстати, в статье так и написано: 10000 pps, что при mtu 1500 даёт 15MB/s или 120Mbps.

[identity profile] px-x64.livejournal.com 2010-03-07 06:07 pm (UTC)(link)
Вот тут главное
"Because multimedia programs require more resources, the Windows networking stack implements a throttling mechanism to restrict the processing of non-multimedia network traffic to 10 packets per millisecond."
У CS же даже на диалапе было 30 пакетов в мс на приём, 20 на отдачу, а текущие рейты 101/101, вот и получаем задержки как на картинках
http://img13.imageshack.us/img13/9569/csmasterfield0002.jpg
http://img4.imageshack.us/img4/3599/detrain0001o.jpg

[identity profile] w00dy.livejournal.com 2010-03-07 07:14 pm (UTC)(link)
> У CS же даже на диалапе было 30 пакетов в мс на приём, 20 на отдачу, а текущие рейты 101/101, вот и получаем задержки как на картинках

ох тыж бох мой.

30пакетов в ms, это 30k pps, что при 56k даёт чуть меньше двух бит на пакет. Тебе самому не смешно? В общем не неси чепуху. L4D первый залочен вообще на 30pps, tf2 у меня отдавал 100pps. И ваши 101 в cs это именно pps, а не ppms.

[identity profile] px-x64.livejournal.com 2010-03-07 08:26 pm (UTC)(link)
Да, торможу :), реальный трафик CS выглядит так
   packets  errs      bytes    packets  errs      bytes colls
       338     0      24463        243     0      18640     0
       346     0      24782        251     0      18770     0
       342     0      25315        250     0      18983     0
       345     0      24712        250     0      18714     0

Тем не менее, факт остаётся фактом - после отключения тротлинга у человека пропали лаги :)

[identity profile] px-x64.livejournal.com 2010-03-08 03:58 pm (UTC)(link)
Добавил ссылок по теме, в заметке Руссиновича есть такое замечание
Further, there’s an unfortunate bug in the NDIS throttling code that magnifies throttling if you have multiple NICs. If you have a system with both wireless and wired adapters, for instance, NDIS will process at most 8000 packets per second, and with three adapters it will process a maximum of 6000 packets per second. 6000 packets per second equals 9MB/s, a limit that’s visible even on 100Mb networks.

Указанные цифры, тем не менее, всё равно превышают потребности CS, однако возможно поведение троттлера становится непредсказуемым ещё при каком-то сочетании сетевых условий. "Проблемный" игрок инет получает по pptp, т.е. кроме того, что у него в системе получаются 2 сетевых интерфейса, могут возникать ещё какие-то накладки из-за которых троттлер создаёт лаги в игре :)

(Anonymous) 2010-05-16 02:29 pm (UTC)(link)
px_x64 Я все делал как ты сказал в своей первой записи а изменил на F... нифига не пашит

[identity profile] px-x64.livejournal.com 2010-05-16 07:17 pm (UTC)(link)
А должно? :)

(Anonymous) 2010-05-17 04:56 am (UTC)(link)
не знаю должно или нет! но чтоб убрать лаги в кс! есть один выход, сносить 7ю винду. и ставить хр

[identity profile] px-x64.livejournal.com 2010-05-17 07:21 am (UTC)(link)
Ну так надо сначала узнать, в чём именно причина лагов, а потом уже исправлять
Описанный тут совет касается всего одной специфичной ситуации

(Anonymous) 2010-06-05 09:16 am (UTC)(link)
у меня тажа трабла ( поси установки вин 7 онлайн игра стала жутко лагать очень медленно грузицо окружающий мир
пробавал ВАШ рег-файл поси перезагрузки компа все осталося по прежнему(
буду искать дальше в чем же кроется сикрет лагов

(Anonymous) 2010-09-13 08:13 pm (UTC)(link)
дааааааааа.....................)помогло я уже и не надеялся.лагов в кс больше нет!огромное спасибо автору!

[identity profile] samurik.livejournal.com 2011-01-04 08:58 am (UTC)(link)
А может ли эта проблема распространяться на игры типа Battlefield? У меня на Vista и Seven лагает, а на XP норма.. Лаги выражаются в подергиваниях при беге (на Vista были даже замерзания каждые 2 сек). Или к примеру пытаюсь поменять оружие - меняет и через ~200мс обратно. менят на 2-3 попытке. Такие-же осечки и при нажатии кнопки действия или ближнего боя или перезарядки оружия. Канал ADSL [16 Mbit - down], [1 Mbit - up]. Переустанавливал систему, обновлял дрова, даунгрейдил дрова. Пинги до сервов в игре показывает 40-45мс. У друга тоже Вин7, но у него без проблем с симметричным каналом 512х512 Mbit/s. Вобщем я в шоке, друзья, уже не знаю что пробовать... Кстати странное поведение наблюдается и в игре Need for Speed World Online http://www.youtube.com/watch?v=cluNRHOqkwk

[identity profile] px-x64.livejournal.com 2011-01-04 09:39 am (UTC)(link)
Модем бриджом или роутером? Если второе, то маловероятно что проблема в сетевом тротлинге, если первое, то в теории может быть
Проблема точно только в сетевой части? Процессор/видеокарта не перегреваются, fps в норме?

(Anonymous) 2011-01-04 12:16 pm (UTC)(link)
Модем бриджом. У друга также, и на работе тоже. Там подобное не наблюдается. fps ~30 причем причем что на макс. что на мин. детализации разница не ощущается(?) (незнаю почему). фпс стабильная, это именно сетевые лаги.. В тех же играх в одиночном режиме всё прекрасно.

[identity profile] px-x64.livejournal.com 2011-01-04 01:55 pm (UTC)(link)
Тогда в теории это действительно может быть тротлинг, но возможны и другие варианты, например глючащий модем, несимметричный путь трафика (к примеру, трафик с серверу идёт одним путём, за 45 мс, а обратно другим, за 100-200 мс), включенные закачки, особенно торрент с uTP
Параметры ADSL-линии, опять же, интересны

[identity profile] samurik.livejournal.com 2011-01-05 12:36 pm (UTC)(link)
<<глючащий модем>> модем уже приходилось менять
<<несимметричный путь трафика>>
<<включенные закачки, особенно торрент с uTP>> отключаю всё что может держать активные сетевые сессии (кроме системных конечно)
Ещё было подозрение на шалости "Hamachi" в сетевых настройках системы. Но после последней переустановки, я запустил игры до установки стороннего софта..
Троттлинг(если я правильно понял) - это механизм обработки траффика сервисом QoS? Но QoS у меня отключен и в параметрах подключения и в самом модеме.
Я ещё раз попробую поставить ХР и отпишусь.

[identity profile] samurik.livejournal.com 2011-01-08 10:23 pm (UTC)(link)
Теперь я в шоке! Поставил ХР и та же ерунда. Ещё заметил, что на свежепоставленной системе неплохо играется первые ~30 мин., затем начинается оно самое...

[identity profile] px-x64.livejournal.com 2011-01-09 08:20 pm (UTC)(link)
Значит надо выделить, что меняется в течение/после этих 30 минут

(Anonymous) 2011-01-18 11:54 am (UTC)(link)
Удивительно, но похоже это оказался тот самый троттлинг(в следствии перегрева)!

(Anonymous) 2011-01-18 01:20 pm (UTC)(link)
Совершенно случайно запустил DriverPack Solution, который сообщил о критической температуре проца(!при нулевой нагрузке свыше 60 градусов!). Я подумал: "Раз на рабочем столе он набирает такую температуру.., в игре ...? ёмаё!" Пошел к дяде Биосу и отрубил ему некую C.I.A.2(переведя описание понял что это что-то вроде динамического разгона). Также на всяк.случай понизил частоту системной шины и множитель CPU. FPS в игре конечно же не порадовал, но все лаги ушли.. А я и тебя и себя запутал с версиями ОСей и с какими-то там 30 минутами.. Всё оказалось проще.
Всё же спасибо за помощь.

(Anonymous) 2011-01-18 01:26 pm (UTC)(link)
Но почему-то он не ощущался при игре в автономном режиме...