如何做SQL Server效能測試?

2021-09-21 20:48:27 字數 1646 閱讀 7029

對於dba來講,我們都會做新伺服器的效能測試。我會從tpc的基準測試入手,使用hammerdb做整體效能評估(前身是hammerora),跟廠商資料對比。再使用diskspd針對性的測試磁碟io效能指標(前身是sqlio),再到sqliosim測試儲存的完整性,再到ostress併發壓力測試,對於資料庫伺服器遷移,我們還會收集和回放profiler trace,並收集期間關鍵效能計數器做對比。

下面我著重談談使用hammerdb的tpc-c來做sql server基準測試。

自己寫負載測試**很困難

為了模擬資料庫的負載,你想要有多個應用程式使用者和混合資料讀寫的語句。你不想總是對單一行更新相同的值,或者只是重複插入假的值。

自己動手使用powershell、c#等語言寫負載測試指令碼也不是不可能,只是太消耗時間,你需要建立或者恢復資料庫,並做對應的測試。

免費而簡單的壓測sql server:使用hammerdb模擬oltp資料庫負載

hammerdb是乙個免費、開源的工具,允許你針對sql server、oracle、mysql和postgresql等執行tpc-c和tpc-h基準測試。你可以使用hammerdb來針對乙個資料庫生成指令碼並匯入測試。hammerdb也允許你配置乙個測試執行的長度,定義暖機階段,對於每個執行的虛擬使用者的數量。

首先,hammerdb有乙個自動化佇列,讓你將多個執行在不同級別的虛擬使用者整合到乙個佇列--你可以以此獲得在什麼級別下虛擬使用者效能平穩的結果曲線。你也可以用它來模擬用於示範或研究目的的不同負載。

用於sql server上的hammerdb的優缺點

hammerdb是乙個免費工具,它也極易訪問和快速的啟動基準測試和模擬負載的方法。它的自動程式特性也是的執行工作負載相當自動。

主要缺點是它有乙個學習曲線。使用者介面不是很直觀,需要花費時間去習慣。再你使用這個工具一段時間之後,將會更加容易。

hammerdb也不是執行每乙個基準測試。它不執行tpc-e基準,例如,sql server更熱衷於當前更具發展的oltp基準tpc-e。如果你用hammerdb執行乙個tpc-c基準,你應該理解它不能直接與**商提供的tpc-c基準結果相比較。但是,它是免費的、快速的、易用的。

基準測試使用案例

基準測試負載不能精確模擬你的應用程式的特點。每個負載是唯一的,在不同的系統有不同的瓶頸。對於很多使用案例,使用預定義的基準測試仍然是非常有效的,包括以下效能的比較:

當然,對乙個資料庫伺服器執行基準測試可以影響其他sql server資料庫或者相同主機上其他虛擬機器的效能,在生產環境你確保有完善的測試計畫。

對於自學和研究來說,有預配置的負載非常棒。

開始使用基準測試

你可以從閱讀hammerdb官方文件的「sql server oltp load testing guide」開始。

深入閱讀:

hammerdb

diskspd

sqliosim

ostress

free tools for testing sql sever

如何做效能測試?

一提到效能測試,大家首先想到的就是測試工具,很多人認為效能測試就是使用測試工具,會使用測試工具就是會效能測試,我認為這種思想是不對的。什麼叫效能測試呢?效能測試是通過自動化的測試工具模擬多種正常 峰值以及異常負載條件來對系統的各項效能指標進行測試。測試工具只是用於模擬某些特定的情況的,模擬出某些情況...

如何做效能測試?

一 什麼是效能測試 是不斷的通過不同場景的系統表現去 系統設計與資源消耗之間的平衡。我們可以認為效能測試是 通過在測試環境下對系統或構件的效能進行探測,用以驗證在生產環境下系統效能是否達到預估的效能 需求,發現系統可能存在的效能瓶頸,進而改善優化並系統的效能,提高系統的可擴充套件性 穩定性。從上面的...

Golang如何做效能分析?

答案 採用go內建的runtime pprof包,和go tool pprof。分三個步驟 1.在main函式中,增加效能分析 f,err os.create cpuprofile if err nil pprof.startcpuprofile f defer pprof.stopcpuprofi...