對於DBA來說,咱們都會作新服務器的性能測試。我會從TPC的基準測試入手,使用HammerDB作總體性能評估(前身是HammerOra),跟廠商數據對比。再使用DiskSpd針對性的測試磁盤IO性能指標(前身是SQLIO),再到SQLIOSIM測試存儲的完整性,再到ostress併發壓力測試,對於數據庫服務器遷移,咱們還會收集和回放Profiler Trace,並收集期間關鍵性能計數器作對比。html
下面我着重談談使用HammerDB的TPC-C來作SQL Server基準測試。ios
本身寫負載測試代碼很困難sql
爲了模擬數據庫的負載,你想要有多個應用程序用戶和混合數據讀寫的語句。你不想老是對單一行更新相同的值,或者只是重複插入假的值。shell
本身動手使用Powershell、C#等語言寫負載測試腳本也不是不可能,只是太消耗時間,你須要建立或者恢復數據庫,並作對應的測試。數據庫
免費而簡單的壓測SQL Server:使用HammerDB模擬OLTP數據庫負載服務器
HammerDB是一個免費、開源的工具,容許你針對SQL Server、Oracle、MySQL和PostgreSQL等運行TPC-C和TPC-H基準測試。你可使用HammerDB來針對一個數據庫生成腳本並導入測試。HammerDB也容許你配置一個測試運行的長度,定義暖機階段,對於每一個運行的虛擬用戶的數量。併發
首先,HammerDB有一個自動化隊列,讓你將多個運行在不一樣級別的虛擬用戶整合到一個隊列--你能夠以此得到在什麼級別下虛擬用戶性能平穩的結果曲線。你也能夠用它來模擬用於示範或研究目的的不一樣負載。ide
用於SQL Server上的HammerDB的優缺點工具
HammerDB是一個免費工具,它也極易訪問和快速的啓動基準測試和模擬負載的方法。它的自動程序特性也是的運行工做負載至關自動。sqlserver
主要缺點是它有一個學習曲線。用戶界面不是很直觀,須要花費時間去習慣。再你使用這個工具一段時間以後,將會更加容易。
HammerDB也不是運行每個基準測試。它不運行TPC-E基準,例如,SQL Server更熱衷於當前更具發展的OLTP基準TPC-E。若是你用HammerDB運行一個TPC-C基準,你應該理解它不能直接與供應商提供的TPC-C基準結果相比較。可是,它是免費的、快速的、易用的。
基準測試使用案例
基準測試負載不能精確模擬你的應用程序的特色。每一個負載是惟一的,在不一樣的系統有不一樣的瓶頸。對於不少使用案例,使用預約義的基準測試仍然是很是有效的,包括如下性能的比較:
多個環境(例如:舊的物理服務器,新的虛擬環境)
使用各類因素的不一樣及時點(例如:使用共享存儲和共享主機資源的虛擬機的性能)
在配置改變先後的點
固然,對一個數據庫服務器運行基準測試能夠影響其餘SQL Server數據庫或者相同主機上其餘虛擬機的性能,在生產環境你確保有完善的測試計劃。
對於自學和研究來講,有預配置的負載很是棒。
開始使用基準測試
你能夠從閱讀HammerDB官方文檔的「SQL Server OLTP Load Testing Guide」開始。
深刻閱讀:
HammerDB
http://www.hammerdb.com/document.html
DiskSpd
https://gallery.technet.microsoft.com/DiskSpd-a-robust-storage-6cd2f223
SQLIOSIM
https://www.simple-talk.com/sql/database-administration/the-sql-server-sqliosim-utility/
ostress
https://msdn.microsoft.com/zh-cn/library/dn511655.aspx
Free Tools for Testing SQL Sever
http://sqlserverio.com/2012/08/16/free-tools-for-testing-sql-sever/