如何做SQL Server性能测试?

  1. 云栖社区>
  2. 博客>
  3. 正文

如何做SQL Server性能测试?

技术小甜 2017-11-15 15:30:00 浏览847
展开阅读全文

对于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

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/













本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1903823 ,如需转载请自行联系原作者




网友评论

登录后评论
0/500
评论
技术小甜
+ 关注