摘要:如何用VSTS 2008 對 SQL Server 進行壓測
情況是…
要產生 500 個壓力去執行 SQL 語法來測試 SQL Server 能不能承受
以前要產生大量壓力,應該只有自已寫「多執行緒」才有辦法達到。 ( 要動個參數就要改寫程式碼 )
而且現就幸運多啦!可以直接用 VSTS 中的 Load Test 對 Unit Test 指定產生壓力
於是寫了一個 Unit Test 去執行,然後再用 VSTS 的 Load Test (負載測試) 去產生指定的數量
測試一下UT ,ok 都綠燈
接下來就是 Load Test 的設定要參考的項目
- 設定測試混合模型請選擇「按使用者人數」
才會依實際的情況去「同步執行」 - 計數器集合中請加入遠端 SQL Server 的IP 或 Name ,並勾選 SQL 計數器
請務必要確認您該台電腦上是否有足夠的權限可以監控
這樣子就可以去監控 SQL 的 User Connection 是否有增加,還有 CPU 以及 Memory 的使用情況
另外若是您的 SQL 執行的非常有效率的話!就會看到圖形是不連貫的 ( 呈現點狀 )
所以,記得做點小手腳用 sleep ( 5000) 的方式吧! ( 這是偷吃步
這時候應該會發現 User Load 明明已經到達 500 個人了!為什麼 SQL 的 User Connection 還是只有 100 個?
是因為 ADO.NET 會內建 Connection Pooling ( 好物!),所以請再將 Connection String 的最後加上 pooling=False ( 預設是 Ture)
這樣子 SQL 的 User Connection 就會跟著 User Load 一起成長了!
( 再搭配 之前寫的如何利用 Load 去查執行過的 SQL 語法 效果更棒 )
另外,若是產生壓測的機器不夠力的話!那麼就會發現 User Load 有上去,但 User Connection 會上上下下 而且會有中斷的圖形
因此,要另外再加 Agent 才能反應現況。
利用 VSTS 的 Load Test 好處就是可以讓產生大量壓力的部分都用 工具來執行,而且可以動態調整其各種不同的情節和擴充設備