Зниження мережевий пропускної здатності vista при відтворенні мультимедіа.

На різних форумах одноголосно заговорили про зниження мережевої пропускної здатності на Vista-комп`ютерах при відтворенні мультимедіа-контенту. Масло у вогонь додало і Slashdot і Едріан Кінгслі-Хьюджс (Adrian Kingsley-Hughes) з Zdnet.


Багато з користувачів, які написали про існування проблеми, чітко помітили, що зниження мережевої пропускної здатності при відтворенні мультимедіа безпосередньо пов`язано з механізмами, використовуваними Multimedia Class Scheduler Service (MMCSS) - абсолютно новим для Windows компонентом, який докладно висвітлено в серії публікацій в TechNet Magazine про зміни в ядрі Windows Vista. Відтворення мультимедіа вимагає постійного рівня потоку, а при його відсутності відтворення може відбуватися паралельно з ривками і завмираннями. служба MMCSS запускає в рамках процесу Svchost.exe, де автоматично проводиться розподіл пріоритетів для відтворення аудіо / відео з метою запобігти перерозподіл ресурсів CPU на інші процеси:



Коли додаток починає відтворення, різні мультимедійні API, використовувані даним додатком, звертатись до служби MMCSS з метою підвищити пріоритетність потоку до рівня реального часу, в який входять пріоритети з індексами від 16 до 31, і це повторюється кожні 8мсек в залежності від того, скільки ресурсів потрібно потоку. Оскільки інші потоки працюють в динамічному діапазоні пріоритетів з індексами нижче 15, будь-яке - навіть вимогливе до ресурсів процесора - додаток жодним чином не впливає на відтворення.

Відео: Korda Masterclass Vol. 4 Chapter 1: Lake Exclusive (13 LANGUAGES)

Можна бачити стрибок поточного індексу пріоритету при відтворенні аудіо чи відео в Windows Media Player (WMP), якщо запустити Reliability and Performance Monitor (Start-> Run-> Perfmon), вибрати Performance Monitor і додати значення Priority Current для всіх потоків Wmplayer в об`єкті Thread. Встановіть масштаб шкали на 31 (максимальне значення пріоритету в Windows) і ви не зможете не помітити потік, показаний на нижеприведенном скріншоті з пріоритетом 21:



На додаток до інших потокам, відтворення мультимедіа може страждати від мережевої активності. Коли система приймає мережевий пакет, відбувається звернення до процесора, а драйвер пристрою, який приймає пакет, виробляє переривання шляхом запуску Interrupt Service Routine (ISR). Переривання, що виконуються іншими пристроями, блокуються запущеної процедури ISR, яка виконує досить тривалу передачу даних на або з пристрою через звернення Deferred Procedure Call (DPC), що запускається з активованим перериванням. Коли виконується DPC з активованим перериванням, воно отримує перевагу над іншими потоками незалежно від пріоритету, що може стати на заваді потокам, що відтворює мультимедіа.

DPC-обробка отриманих мережевих пакетів - це найдорожча в сенсі ресурсів процесора процедура, оскільки має на увазі передачу пакетів TCP / IP-драйверу, що на ділі виливається в досить тривалі обчислення. TCP / IP-драйвер вивіряє кожен пакет, визначає пакетний протокол, оновлює стан з`єднання, знаходить приймаюча прикладна і копіює отримані дані в буфер програми. Наведений нижче скріншот Process Explorer ілюструє, наскільки істотно зростає використання ресурсів CPU для DPC при копіюванні великого файлу з іншого комп`ютера:


Тести MMCSS в ході розробки Vista показали, що навіть при активованому розподілі пріоритетів великі обсяги мережевого трафіку можуть стає причиною невідповідності потоків відтворення вимогам, що може викликати завмирання в відтворенні. Використані в MMCSS механізми, що перешкоджають переривання відтворення, були доопрацьовані з метою запобігання переривань мережевою активністю. Була додана команда, яка надсилається NDIS-драйверу, який передає пакети для обробки TCP / IP-драйвером в кількості, що дорівнює 10 пакетам в мілісекунди (10000 пакетів в секунду).

Оскільки стандартний розмір Ethernet-фрейми дорівнює 1500 байт, межа в 10000 пакетів в секунду еквівалентний пропускної здатності в 15МБ / с. 100Мб-ні мережі мають пропускну здатність в 12Мб / с, тому якщо ви працюєте в мережі 100 Мбіт, то ви не помітите падіння пропускної здатності. Однак, якщо ви включені в 1Гб-ву мережу, і обидва - відправник і одержувач пакетів - використовують 1Гб-ні адаптери, то ви зіткнетеся з 15% зниженням пропускної здатності мережі.

Більш того, в коді NDIS допущена злощасна помилка, що посилює проблему при використанні декількох NIC-карт. Якщо, наприклад, у вашій системі присутні і дротової і бездротової адаптери, NDIS зможе обробляти не більше 8000 пакетів в секунду, а три адаптера скоротять цю цифру до 6000 пакетів в секунду. 6000 пакетів в секунду еквіваленти пропускної здатності в 9МБ / с, тому при такій схемі падіння продуктивності буде помітно і в 100Мб-ної мережі.

Відео: Рассел Фостер: Чому ми спимо?

Зверніть увагу на ілюстрацію падіння мережевої продуктивності на ноутбуці з трьома мережевими адаптерами, яке було викликано шляхом копіювання об`ємного файлу з іншого комп`ютера мережі з подальшим запуском WMP і відтворенням аудіотрека. Наведений нижче скріншот наочно показує, як використовуються 20% пропускної здатності мережі падають до позначки в 6% після початку відтворення музичного трека:

Можна проконтролювати число пакетів, оброблених NDIS, шляхом додавання лічильника "кількість пакетів, отриманих за одну секунду / packets recieved per second "в об`єкті Network в Performance Monitor. Нижче ви можете бачити істотну зміну числа прийнятих пакетів після запуску експерименту. Кількість пакетів, оброблених NDIS, не досягає теоретичного максимуму в 6000.

Відео: Роль комунікації в ІГІЛ (атака в розчленованому строю розбурхає Європу)

Незважаючи на подібний рівень переривання, Інтернет-трафік - навіть при високошвидкісному з`єднанні - жодним чином не постраждає. Це все завдяки численності проміжних з`єднань між вашою системою і іншими комп`ютерами мережі, що скорочує шлях пакета і, як наслідок, скорочує швидкість, з якою система передає інформацію.Запрограммірованний ліміт був непередбачливим кроком з нашого боку з надією на сучасні комп`ютери з швидкими процесорами з декількома ядрами і гігабітними мережевими адаптерами. Але сьогодні в додаток до робіт по усуненню істотного падіння пропускної здатності на комп`ютерах з декількома адаптерами, команда мережевих розробників Microsoft активно співпрацює з командою MMCSS з метою знизити вплив служби на мережевий трафік, при цьому зберігши стійкість до завмирань.

Поділися в соц мережах:
Cхоже

Увага, тільки СЬОГОДНІ!