熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows優化 >> 正文

專家釋疑Vista播放多媒體減慢網速原因

2013-11-12 16:45:44  來源: Windows優化 

  著名Windows專家《Windows Internals》一書作者Mark Russinovich近日在其Blog上對近幾天一些論壇上提出的Windows Vista在播放多媒體文件時導致網絡速度嚴重減慢提出了解釋他在博客中提到

  很多人正確地指出了導致媒體播放時網絡性能下降問題的根源在於多媒體類計劃程序(MMCSS)一項曾在Technet雜志上連續三期介紹的Vista內核新改變多媒體播放需要媒體流具有一個穩定的速率否則當要求達不到時播放就會出現的現象MMCSS服務運行於服務宿主Svchostexe 中它自動提升音視頻播放的優先級以防止其他軟件過分占用播放軟件應得到的CPU時間

  

  當一個多媒體應用程序開始播放多媒體API自動請求MMCSS服務在每毫秒中的最多毫秒時間將其播放線程的優先級提升至級別的最高級 (Realtime)而這決定於播放線程需要多少CPU時間由於其它線程運行在動態優先級以下就算是CPU占用相當大的應用程序都不會影響播放

  你能夠通過在WMP中播放一段音視頻剪輯來看到這一變化在播放時運行可靠性與性能監視器(perfmonexe)選中性能監視器在Thread對 象中對所有WMPlayerexe的線程加入Priority Current選項將圖像范圍調整至(Windows中最高優先級)你就能夠輕易看到被提升的線程在這裡是優先級

  點擊查看原大圖片

  點擊查看原大圖片

  不僅是其他線程的活動媒體播放也能受到網絡活動的影響當一個數據包到達系統觸發一個CPU中斷將會使網絡設備的驅動程序執行一個中斷服務程序 (ISR)其它設備的中斷請求在ISR運行時將被阻止因此ISR通常用於執行一些設備記錄並且在一個DPC(Deferred Procedure Call)中進行一些在一個更長的數據傳輸當DPC在中斷啟用的狀態被執行它們將無視優先級而優先於任何線程因此可能對媒體播放線程造成沖擊

  而網絡DPC的處理要求幾乎是最高的因為它將把數據包傳送至TCP/IP驅動這需要長時間的計算才能完成TCP/IP驅動校驗每個數據包確定每個 包使用的協議更新連接狀態尋找接收應用程序並將接收到的數據復制到應用程序的緩沖區內這一個Process Explorer截圖顯示了當我將一個大文件復制到其它系統時DPC的CPU占用率的上升

  

  在Vista開發時對MMCSS的測試中發現即使增加線程優先級大規模的網絡傳輸也會使長時間運行的DPC影響到播放線程因此MMCSS將會發送一條消息至NDIS驅動使其每毫秒僅傳輸個數據包(每秒萬個)

  標准以太網的幀大小大約為字節萬個包每秒的限制使得速度被限制在兆每秒左右這對於百兆網絡沒有影響但將會使千兆網絡的性能下降到最大值的%

  同時在NDIS的這段限制代碼中一個BUG將使得這種限制在多網卡的系統中放大比如如果你有一台同時擁有有線和無線網卡的機器這個限制將擴大到包/秒而三塊網卡時則進一步擴大到包/秒這個限制此時在百兆網絡上也顯而易見

  我在我的網卡筆記本上也發現了這一限制在我向另一台機器復制文件的同時我打開WMP播放音樂任務管理器顯示千兆網絡的使用率從%降低至%

  

  你能通過在性能監視器視圖的Network對象中添加每秒接收數據包來監視NDIS的數據包接收情況下面你能看到我在實驗中接收數據率的變化NDIS處理的數據包數沒有達到理論最大值可能是因為與對方機器進行的連接准備有關

  點擊查看原大圖片

  就算限制如此之大Internet傳輸也不會受影響因為多次中轉遠遠降低了數據包的傳輸率

  Vista的這個限制來自在百兆網絡上高傳輸率的同時達到低延遲流暢播放的實驗結果這個硬編碼的限制是短視的它忽略了今日多處理器系統和千兆網絡普及的現狀現在Windows的網絡開發組正和MMCSS組共同努力開發一個補丁來應對此問題

  (譯者評論不是一個BUG是一個功能難道為了那該死的多媒體組件就要犧牲網絡性能?那些超高端的視頻編輯系統通過千兆網編輯文件服務器 上那些碼率上百Mbps的低壓縮率高清視頻素材這樣一來不就到死了嗎?再進一步說如果Windows Server 正式版上這個MMCSS服務還是默認啟用的那麼攻擊者就有了一種新的DoS服務器的方法只要他有服務器的一般用戶權限上去一放歌 外面瘋狂DDoSCC服務器的當機還會遠嗎?)

  在評論中有人提出了解決方案

  修改注冊表

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Audiosrv\DependOnService

  將Windows Audio服務的依存服務選項中的MMCSS服務去掉

  再禁止MMCSS服務就能破解掉這一限制


From:http://tw.wingwit.com/Article/os/youhua/201311/10834.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.