如何用VSTS 2008 對 SQL Server 進行壓測

摘要:如何用VSTS 2008 對 SQL Server 進行壓測

情況是…

要產生 500 個壓力去執行 SQL 語法來測試 SQL Server 能不能承受

以前要產生大量壓力,應該只有自已寫「多執行緒」才有辦法達到。 ( 要動個參數就要改寫程式碼 )

而且現就幸運多啦!可以直接用 VSTS 中的 Load Test 對 Unit Test 指定產生壓力

於是寫了一個 Unit Test 去執行,然後再用 VSTS 的 Load Test (負載測試) 去產生指定的數量

測試一下UT ,ok 都綠燈

接下來就是 Load Test 的設定要參考的項目

  1. 設定測試混合模型請選擇「按使用者人數」
    才會依實際的情況去「同步執行」
    image
  2. 計數器集合中請加入遠端 SQL Server 的IP 或 Name ,並勾選 SQL 計數器
    請務必要確認您該台電腦上是否有足夠的權限可以監控
    image

這樣子就可以去監控 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 好處就是可以讓產生大量壓力的部分都用 工具來執行,而且可以動態調整其各種不同的情節和擴充設備