性能测试报告

最近更新时间:2019-08-14 16:38:16

测试工具

本文性能测试使用的是 HammerDB 内置的 TPC-C 基准测试负载。TPC-C 是一种典型的 OLTP 工作负载,其模拟了拥有多个仓库的商品批发销售公司为大量客户发货商品的场景,其中仓库数的调整在测试中能够体现数据库所能够支持的数据规模能力。

测试环境和参数

实例所在物理机
具有80核心、767GB内存、30TB存储的高性能物理机。

测试实例规格
测试版本覆盖2008企业版、2012企业版、2016企业版和2017企业版。规格几乎覆盖当前售卖的所有规格,包括1核2GB、1核4GB、1核8GB、2核16GB、 4核32GB、8核64GB、12核96GB、16核128GB、32核256GB。

负载生成环境
安装 HammerDB 的机器,与数据库实例型号一致,能保证充分压测出 SQL Server 实例性能。

TPCC 基准参数

  • Number of Warehouses = 100:设置仓库个数为100,将生成测试数据库大小约55GB。
  • Minutes of Rampup Time = 2:设置测试前预热时间为2分钟。
  • Minutes Test Duration = 5:设置测试时间为5分钟。

虚拟用户数
虚拟用户数即并发连接数,本文分别在不同规格的实例上,测试了不同的并发连接数。

并发连接数 2 4 8 16 32 64 128 256 512 1024
1核2GB - -
1核4GB - -
1核8GB - -
2核16GB -
4核32GB -
8核64GB -
12核96GB
16核128GB
32核256GB

测试方法

  1. 准备 TPC-C 工作负载。
    • Number of Warehouses:仓库个数,将影响生成测试库的大小。
    • Virtual Users to Build Schema:生成负载数据时的并发连接数(不能超过仓库个数),大小将影响负载数据生成效率,建议与生成负载设备 CPU 核心数保持一致。
  2. 设置测试脚本。
    • Total Transactions per User:每个用户的总事务数。建议设置较高的值保证在压测时,User 不会因为事务运行完而退出。
    • Minutes of Rampup Time:压测预热时间。
    • Minutes for Test Duration:压测运行时间。
  3. 设置自动化测试脚本。
    • Minutes per Test in Virtual User Sequence:自动化测试的间隔时间,在这个时间内程序要完成创建虚拟用户、预热、运行测试、停止测试等工作。设置时间需比 Minutes of Rampup Time + Minutes for Test Duration 长。
    • Active Virtual User Sequence (Space Separated):自动化测试每一次迭代产生的虚拟用户数,虚拟用户数可以理解为并发连接数。
  4. 在左侧选择【Autopilot】>【Autopilot】开始测试。
  5. 测试结果输出在 hammerdb.log 文件中。

测试结果

说明:

HammerDB 中的 TPM 通过 SQL Server 性能计数器 batch requests/sec 获得,因此 TPM 实际上是指 batch requests per minute。

  • SQL Server 2008 企业版
实例规格 存储空间 数据集 并发连接数 TPM
1核2GB 300GB 55GB 256 279798
1核4GB 300GB 55GB 256 284680
1核8GB 300GB 55GB 256 269039
2核16GB 800GB 55GB 256 368366
4核32GB 800GB 55GB 256 657641
8核64GB 1500GB 55GB 256 1164062
12核96GB 1500GB 55GB 1024 1348121
16核128GB 2000GB 55GB 1024 1357678
32核256GB 3000GB 55GB 1024 1401600
  • SQL Server 2012 企业版
实例规格 存储空间 数据集 并发连接数 TPM
1核2GB 300GB 55GB 256 229854
1核4GB 300GB 55GB 256 234401
1核8GB 300GB 55GB 256 236773
2核16GB 800GB 55GB 256 333797
4核32GB 800GB 55GB 256 608801
8核64GB 1500GB 55GB 256 1020500
12核96GB 1500GB 55GB 1024 1266868
16核128GB 2000GB 55GB 1024 1385158
32核256GB 3000GB 55GB 1024 1526762
  • SQL Server 2016 企业版
实例规格 存储空间 数据集 并发连接数 TPM
1核2GB 300GB 55GB 256 219142
1核4GB 300GB 55GB 256 222796
1核8GB 300GB 55GB 256 219676
2核16GB 800GB 55GB 256 336843
4核32GB 800GB 55GB 256 665065
8核64GB 1500GB 55GB 256 1070826
12核96GB 1500GB 55GB 1024 1337473
16核128GB 2000GB 55GB 1024 1705660
32核256GB 3000GB 55GB 1024 2280252
  • SQL Server 2017 企业版
实例规格 存储空间 数据集 并发连接数 TPM
1核2GB 300GB 55GB 256 201851
1核4GB 300GB 55GB 256 202510
1核8GB 300GB 55GB 256 208685
2核16GB 800GB 55GB 256 331650
4核32GB 800GB 55GB 256 625370
8核64GB 1500GB 55GB 256 1102296
12核96GB 1500GB 55GB 1024 1325010
16核128GB 2000GB 55GB 1024 1716818
32核256GB 3000GB 55GB 1024 2520856