#2703 Дикие лаги во время загрузки файлов, используя IDM
-
Rejected
Шаги воспроизведения:
Установить Internet Download Manager (IDM) - у него собственный WFP-драйвер
Активировать его расширение в браузере
Скачиваем файл и двигаем мышью
Я в своём тесте скачивал обновление: http://download.windowsupdate.com/d/msdownload/update/software/updt/2020/09/windows10.0-kb4571744-x64_f061609c66d8e1b969c606252c02be121ed97b71.msu
Актуальный результат:
Курсор мыши сильно дёргается, если его двигать во время загрузки файла. Наблюдаются непонятные лаги.
Если приостановить продукт, то сразу всё идеально.
Если приостановить продукт и запустить заново, то проблема так же пропадает. Что несколько странно, кстати.
В архиве трейсы + xperf-трейсы.
Ожидаемый результат:
Курсор мыши не будет дёргаться, как при бешеной нагрузке на ПК. Не будет непонятных лагов.
System Settings
Operating system: Win 10, x64
System: Intel Core i5-2500K, 8GB RAM, HD 3000
Product: KTS
Product Version: 21.2.7.373
Language: ru-RU
Product Logs: https://cloud.qainfo.ru/s/yGxxCpRrTmGhCtP
-
-
@dmitriy-pisarets получилось поставить фирменный драйвер. Вроде стало получше. 4 очереди недоступно, но 2 поставил.
Давайте пока прикроем, до воспроизведения. ;-)
-
@dmitriy-pisarets фирменный драйвер от Intel не ставится, т.к. он старее по дате, чем от Microsoft.
-
@dmitriy-pisarets добрый день! Я же говоря - драйвер установлен, последняя версия, новее нет. На скринах у меня видно, что RSS включён, но это не влияет, лаги по-прежнему на месте.
-
"Чип 82579V поддерживает RSS. Попробуйте установить фирменный драйвер от Intelhttps://downloadcenter.intel.com/product/52963/Intel-82579V-Gigabit-Ethernet-PHY"
добрый день, попробуете?
-
Драйвер итак установлен:
Настройка итак уже включена:
> рекомедуется установить 2 или 4 очереди RSS
Такой настройки нет у меня.
Вывод команды netsh int tcp show rscstats:
-
@r3l4x, сможете повторить с инструкциями?
Так как вся обработка висит на CPU0 - можно предположить, что у сетевого адаптера отключен RSS. Убедиться в этом можно с помощью PowerShell cmdlet а:Get-NetAdapterRssзаодно выполните команду ( чтобы убедится что IDM не ставит WFP драйверов, которые отключают RSC )netsh int tcp show rscstatsKTS 21.2.7.373 - должен нормально поддерживать RSS. Это позволит обрабатывать трафик на нескольких процессорах, возможно, это разгрузит очередь DPC на CPU0. Для этого нужно установить фирменный драйвер Intel для карты Intel(R) 82579V Gigabit Network Connection и сконфигурировать RSS как написано тут: https://www.intel.com/content/www/us/en/support/articles/000005593/network-and-i-o/ethernet-products.htmlрекомедуется установить 2 или 4 очереди RSS ( соответственно, обработка траифка на 2 или 4 CPU )После включения RSS, обязательно снимите xperf лог и пришлите для анализа. Также необходим вывод команды netsh int tcp show rscstats -
@dmitriy-pisarets сделал. Новые логи: https://cloud.qainfo.ru/s/wdfXEtn9qg2zQAp
-
-
@dmitriy-pisarets всё понял, сегодня сделаю ещё раз нормально.
P.S. да, там в инструкции архив XPerf, его надо бы обновить, я оттуда брал. Теперь переделаю с системным SDK.
-
сможете еще раз? разработчики говорят, что ваша программа устарела
"Символов нет, потому что трейсы собирались на Win10 20H1 очень старой версией xperf - еще до 6.2.9200. Если это в каких-то общих тулзах или инструкциях, их стоит обновить.
В собранные трейсы можно добавить привязку к символам для интересных модулей, но это хлопотно. Если есть возможность, трейсы лучше переснять при помощи свежих WPR/Xperf для одного и того же сценария с продуктом и без (деинсталлировать, выгрузки недостаточно). Командные строки в данном случае нужны такие:
Вариант с Xperf:
вкл.: xperf -on base+interrupt+dpc -stackwalk profile -start user_session -on Microsoft-Windows-TCPIP
выкл.: xperf -stop user_session -stop -d trace.etl
Вариант с WPR:
вкл.: wpr -start GeneralProfile.Light -filemode -start Network -filemode
выкл.: wpr -stop trace.etl"
-
@r3l4x спасибо за оперативность
-
-
@r3l4x, добрый день!
Можете воспроизвести с новыми трейсами ?
комментарий от разработчика:
"у меня WPA не может подгрузить символы. скорее всего, процедура сбора логов была неправильно остановлена.
Напоминаю: останавливать логирование надо командой:xperf stop -d trace.etl ( название файла - любое ).Если это по какой то причине не сделано, нужно присылать все файлы ( их должно быть минимум два: trace.etl и kernel.etl )."