Smooth Streaming 如何壓力測試
上個月從章老師接了一個新課題, Smooth Streaming 應該要如何進行壓力測試?
經過兩天的洗禮,總算了解背後的運作機制和驗證是否其可行性
首先還是先說明一下 Smooth Streaming 是怎麼運作的
Smooth Streaming 是 Host 在 IIS ( 7 以上 ) 並搭配 IIS Media Pack 可以提供視訊串流服務
而其中串流則是每兩秒分別向 Server 用 Http Request 要了 Video 和 Audio
也因為用了 HTTP 所以在架構上也支援 HTTP Proxy ( 如下圖 )
可以大幅減少 Server 的負擔
進一步的文件請參考 http://learn.iis.net/page.aspx/684/smooth-streaming-transport-protocol/
而怎麼驗證文件中是真的呢?可以去看 IIS Log
%SystemDrive%\inetpub\logs\LogFiles (請到此路徑就可以看到)
即然大致上知道 Server 背後的機制後,現在的問題就是要看看在 Silverlight 播放的視訊是否能抓得到
馬上就帶著忐忑不安的心情,用 VS 2010 進行驗證吧!
喔耶!太棒了!即使在 Silverlight 中一樣也可以抓得到背後的 HTTP Request !讚啦!
而且連不同的品質的也可以在 Url 中指定,這對於之後要進行壓力測試特別有幫助
馬上重新跑一次 Web Test 發現, 2 分鐘的影片怎麼在 20 秒內就整個跑完了?
喔!原來 Web Test 都沒有等個 2 秒再發下一次的要求
所以,在 Web Test 中要特別調整 「思考時間」,剛剛也有特別提到 Video 和 Audio 是分開的 Request
在設定考慮時間是一定要特別注意一下。
重新再跑一次 Test ,的確時間看起來正常很多。
為了驗證「自動化測試」是不是真的都依 2 秒 向 Server 要求服務
馬上再開啟 IIS Log 進行查證,剛剛的測試動作
Good!果然很準時每 2 秒就有一次的記錄!
這些都驗證過後就可以安心地執行壓力測試了
可以看到多人同時連線 Server 也可以很穩定地提供服務,提供的數量增加了 CPU 還減少
剩下的就是要規劃那些情節來模擬以便進行壓力測試