Sysbench OLTP 应用程序基准测试在运行 InnoDB 存储引擎的 MySQL 数据库之上运行。 存储引擎的工作是管理从磁盘数据库到应用程序从存储引擎读取和写入数据的接口。 存储引擎反过来管理 IO 线程和日志,并在内存中保留缓存以最大限度地减少磁盘访问。 下表给出了发动机的简单概览。
由于 InnoDB 引擎保留了一个称为缓冲池的内存缓存,因此性能将直接受到工作集大小与缓冲池大小的比率的影响。 换句话说,如果缓冲池足够大以容纳工作集或工作集足够小以适合缓冲池,则大多数操作永远不会受 IO 限制。 但是,如果数据库太大而无法放入内存,那么 IO 性能将决定事务响应时间和吞吐量。 我们正在表征驱动器在这种情况下的性能,其中数据库不适合内存,这会导致来自 InnoDB 存储引擎的 IO 流量增加。
多个线程(数量取决于高性能应用程序的数据库配置,从 32 到 128 不等)以随机方式从块大小为 16 KB 的后备存储中读取数据。 这些读取与从后备存储请求数据的数据库查询有关。 在处理读取时,它们会自动缓存在缓冲池中。 当缓冲池填满时,InnoDB 使用 LRU(最近最少使用)策略驱逐旧页面以为新数据腾出空间。
数据库写入首先定向到事务日志和缓冲池。 事务日志是一个顺序写入的环形缓冲区,它会针对每个写入事务进行更新。 根据 MySQL 配置,此更新可能导致立即写入磁盘,或者它可以作为缓冲区暂时保留在 RAM 中,最终由文件系统刷新到磁盘。 此日志缓冲区的大小各不相同,但通常约为 256MB。 ACID 合规性的推荐设置要求日志写入在每次数据库提交时都写入磁盘。 这些写入的长度为 4K。
日志仅在写入先前数据和新数据之间的增量的位置进行“生理”写入。 对于原始数据,InnoDB 写入 RAM 中的缓冲池,它也必须异步排出。 将数据写回文件系统的过程是可配置的,并且发生在后台。 写入也是16K。 写入实际上是双写,其中引擎首先将数据写入称为双写缓冲区的中间位置。 然后引擎将该数据复制到其在文件系统中的最终位置。 这对于避免由于断电或其他灾难性事件导致 16KB 数据库页面部分写入磁盘的“页面撕裂”问题是必要的。
Sysbench 基准测试的起源
在与美光公司就其如何模拟真实MySQL应用环境进行SSD测试和测量进行了多次沟通后,我们将Sysbench测试平台引入了我们的实验室。美光公司发现,合成存储基准测试很少能全面反映硬盘在特定应用工作负载下的性能,因此围绕Sysbench开发了一套测试方法。Sysbench测试使美光公司能够模拟最接近标准MySQL数据库工作负载的环境,而这种工作负载在Facebook、Craigslist和Booking.com等应用中十分常见。
我们与 Moussa Ba 密切合作,他帮助共同撰写了这篇文章。 Moussa 是美光 PCIe 开发团队的一名软件工程师,他的工作包括为高性能 IO 设备优化应用程序和系统软件。
Sysbench OLTP 基准测试
Sysbench 是一个系统性能基准测试,包括在线事务处理 (OLTP) 测试配置文件。 OLTP 测试不是 OLTP 测试的近似值,而是真正的数据库支持的基准测试,它在 CentOS 环境中对 MySQL 实例进行事务查询。
设置基准的第一步是创建数据库本身,这是通过指定数据库中的表数以及每个表的行数来完成的。 在我们的测试中,我们定义了 100 个表,每个表有 10 万行,这导致数据库有 1 亿个条目。 这个数据库是 260GB。
Sysbench 有两种操作模式:读取和写入数据库的默认模式和只读模式。 默认的 R/W 模式将执行以下查询类型:5 个 SELECT 查询、2 个 UPDATE 查询、1 个 DELETE 查询和 1 个 INSERT。 查看 IO 计数,观察到的读/写比率约为 75% 的读取和 25% 的写入。
Sysbench 测试环境
我们使用独立服务器,在StorageReview 企业测试实验室中,通过 Sysbench OLTP 基准测试来测试存储解决方案。目前,我们采用戴尔的 PowerEdge R730 现货服务器,以展现其真实的性能和出色的性价比。只需更换存储适配器或网络接口,即可将 R730 连接到不同的存储产品。PowerEdge R730 已被证明与第三方设备具有极佳的兼容性,使其成为这种多样化测试环境的理想平台。此外,R730 还采用了英特尔强大的 Haswell 架构,这为我们提供了足够的计算能力,可以充分测试各种存储产品的性能,并最大限度地发挥其潜力。
第一代 Sysbench 基准环境
联想ThinkServer RD630 – SATA/SAS/PCIe测试平台
- 2594-ABU 畅销型号
- 双 Intel E5-2650 CPU(2.0GHz,8 核,20MB 缓存)
- 128GB 内存(8GB x 16 DDR3,每个 CPU 64GB)
- 100GB 美光 RealSSD P400e 固态硬盘 (通过 LSI 9207-8i)引导驱动器
- 960GB Micron M500(通过 9207-8i)预建数据库存储
- CentOS 6.3 64 位
- Percona XtraDB 5.5.30-rel30.1
- 数据库表:100
- 数据库大小:10,000,000
- 数据库线程:32
- 内存缓冲区:24GB
二代Sysbench基准测试环境
Dell PowerEdge R730 – SATA/SAS/PCIe 测试平台
- 双 Intel E5-2690 v3 CPU(2.6GHz,12 核,30MB 缓存)
- 256GB 内存(16GB x 16 DDR4,每个 CPU 128GB)
- 100GB 启动 SSD,480GB 数据库存储 SSD
- 2 个 Mellanox ConnectX-3 InfiniBand 适配器
- 2点¯x Emulex 16GB 双端口 FC HBA
- 2点¯x Emulex 10GbE 双端口网卡
- 中央操作系统 6.6 64 位
- Percona XtraDB 5.5.30-rel30.1
- 数据库表:100
- 数据库大小:10,000,000
- 数据库线程:32
- 内存缓冲区:24GB
Dell PowerEdge R730 虚拟化 Sysbench 4 节点集群
- 集群中 5 个 2690GHz 的 Intel E3-249 v2.6 CPU(每个节点两个,12GHz,30 核,XNUMXMB 缓存)
- 1TB RAM(每个节点 256GB,16GB x 16 DDR4,每个 CPU 128GB)
- SD 卡引导 (Lexar 16GB)
- 4 个 Mellanox ConnectX-3 InfiniBand 适配器(用于 vMotion 和 VM 网络的 vSwitch)
- 4点¯x Emulex 16GB 双端口 FC HBA
- 4点¯x Emulex 10GbE 双端口网卡
- VMware ESXi vSphere 6.0 / Enterprise Plus 8-CPU
该平台的主要目标是突出企业存储在实际企业环境和工作负载中的表现,而不是依赖合成或伪合成工作负载。 合成工作负载生成器非常擅长显示存储设备在连续合成 I/O 模式下的性能如何,但它们没有考虑任何其他说明设备在生产环境中实际工作方式的外部变量。 合成工作负载生成器的好处是一次又一次地显示干净的 I/O 模式,但它们永远不会复制真正的生产环境。 在存储产品之上引入应用程序性能开始显示存储与其驱动程序、本地操作系统、被测试的应用程序、网络堆栈、网络交换和外部服务器的交互效果如何。 这些是合成工作负载生成器根本无法考虑的变量,而且就执行此特定基准所需的设备而言,它们的资源和基础设施密集度也高一个数量级。
整体 Sysbench 性能结果
我们使用满足测试环境最低要求的 Sysbench OLTP 基准测试各种存储解决方案。 要获得测试资格,存储设备的可用容量必须超过 260GB,并且适合在压力大的企业条件下运行。 SAS、SATA 和 PCIe SSD 等本地连接的存储设备在具有一个 Sysbench 实例的裸机服务器上进行测试。 较新的 SAN 和超融合平台同时运行 4、8、12 或 16 个虚拟机,以显示多个工作负载同时在每个虚拟机上运行的情况。 这种测试方法有助于揭开较新的超融合系统与传统 SAN 存储阵列之间性能比较的神秘面纱。
超融合/SAN 虚拟化 Sysbench 性能结果(16 个虚拟机聚合)
| 设备 | 32 线程聚合 TPS | 平均响应时间(毫秒) | 第 99 个百分位延迟(毫秒) |
|---|---|---|---|
| X-IO 伊势 860 (4) 戴尔 R730,X-IO ISE 860 全闪存 (2) 10TB 卷 |
6625 | 80 | 418 |
超融合/SAN 虚拟化 Sysbench 性能结果(12 个虚拟机聚合)
| 设备 | 32 线程聚合 TPS | 平均响应时间(毫秒) | 第 99 个百分位延迟(毫秒) |
|---|---|---|---|
| X-IO 伊势 860 (4) 戴尔 R730,X-IO ISE 860 全闪存 (2) 10TB 卷 |
7160 | 54 | 177 |
超融合/SAN 虚拟化 Sysbench 性能结果(8 个虚拟机聚合)
| 设备 | 32 线程聚合 TPS | 平均响应时间(毫秒) | 第 99 个百分位延迟(毫秒) |
|---|---|---|---|
| X-IO 伊势 860 (4) 戴尔 R730,X-IO ISE 860 全闪存 (2) 10TB 卷 |
6568 | 39 | 83 |
| VMware VSAN (ESXi 6.0) (4) 戴尔 R730xd,80 个 1.2TB HDD,16 个 800GB SSD |
4259 | 60 | 131 |
超融合/SAN 虚拟化 Sysbench 性能结果(4 VM 聚合)
| 设备 | 32 线程聚合 TPS | 平均响应时间(毫秒) | 第 99 个百分位延迟(毫秒) | 峰值延迟(毫秒) |
|---|---|---|---|---|
| DotHill Ultra48 混合动力车 (4) 戴尔 R730,DotHill Ultra48 混合 (2) 14 个磁盘 RAID1 池、40 个 1.8TB HDD、8 个 400GB SSD |
4645 | 28 | 51 | 676 |
| X-IO 伊势 860 (4) 戴尔 R730,X-IO ISE 860 全闪存 (2) 10TB 卷 |
4424 | 29 | 57 | 983 |
| VMware VSAN (ESXi 6.0) (4) 戴尔 R730xd,80 个 1.2TB HDD,16 个 800GB SSD |
2830 | 45 | 94 | 480 |
| 努坦尼克斯 NX-8150 (ESXi 6.0) (4) NX-8150、80 个 1TB HDD、16 个 800GB SSD RAID0 x 4 虚拟磁盘数据库卷 |
2390 | 54 | 173 | 4784 |
| 努坦尼克斯 NX-8150 (ESXi 6.0) (4) NX-8150、80 个 1TB HDD、16 个 800GB SSD 默认数据库部署 |
1422 | 90 | 216 | 5508 |
PCIe 应用程序加速器/多 SSD/HDD RAID Sysbench 性能结果
| 设备 | 32 线程平均 TPS | 平均响应时间 | 第 99 个百分位延迟 |
|---|---|---|---|
| 华为ES3000 2.4TB MLC PCIe 固态硬盘 x 1 |
2734.69 | 11.7 | 19.84 |
| 华为ES3000 1.2TB MLC PCIe 固态硬盘 x 1 |
2615.12 | 12.23 | 21.80 |
| 融合 ioDrive2 双核 2.4TB MLC PCIe 固态硬盘 x 1 |
2521.06 | 12.69 | 23.92 |
| 美光 P320h 700GB SLC PCIe 固态硬盘 x 1 |
2443.56 | 13.09 | 22.45 |
| 美光 P420m 1.4TB MLC PCIe 固态硬盘 x 1 |
2361.29 | 13.55 | 25.84 |
| 融合 ioDrive2 1.2TB MLC PCIe 固态硬盘 x 1 |
2354.06 | 13.59 | 29.35 |
| Virident FlashMAX II 2.2TB MLC PCIe 固态硬盘 x 1 |
2278.11 | 14.04 | 26.04 |
| 大规模集成电路 Nytro WarpDrive 800GB MLC PCIe 固态硬盘 x 1 |
1977.67 | 16.18 | 39.94 |
| 大规模集成电路 Nytro WarpDrive 400GB MLC PCIe 固态硬盘 x 1 |
1903.14 | 16.81 | 39.30 |
单个 SAS / SATA SSD 结果
| 设备 | 32 线程平均 TPS | 平均响应时间 | 第 99 个百分位延迟 |
|---|---|---|---|
| 东芝 HK3R2 960GB MLC SATA x 1 |
1673.23 | 19.12 | 49.65 |
| 闪迪 CloudSpeed Eco 960GB cMLC SATA x 1 |
1556.99 | 20.55 | 49.05 |
| 英特尔 S3700 800GB eMLC SATA x 1 |
1488.71 | 21.49 | 40 |
| 东芝 PX02SM 400GB eMLC SAS (6Gb/秒) x 1 |
1487.03 | 21.52 | 62.02 |
| 智能擎天柱 400GB eMLC SAS x 1 |
1477.1 | 21.66 | 52.69 |
| OCZ 塔罗斯 2 C 480GB MLC SAS x 1 |
1438.7 | 22.24 | 47.32 |
| OCZ 无畏 3600 400GB eMLC SAS x 1 |
1335.3 | 23.96 | 48.42 |
| OCZ 塔罗斯 2 R 400GB eMLC SAS x 1 |
1421.15 | 22.51 | 45.06 |
| SanDisk Extreme 480GB MLC SATA x 1 |
1303.48 | 24.55 | 53.56 |
| 实达 s842 800GB eMLC SAS x 1 |
1293.56 | 24.74 | 67.20 |
| 英特尔 S3500 512GB eMLC SATA x 1 |
1,287.65 | 24.85 | 64.15 |
| 英特尔 S3500 480GB eMLC SATA x 1 |
1241.59 | 25.77 | 54.27 |
| 希捷 600 专业版 400GB eMLC SATA x 1 |
1198.2 | 26.7 | 62.69 |
| 日立 SSD400S.B 400GB 单片机 SAS x 1 |
1191.47 | 26.85 | 47.87 |
| OCZ 向量 512GB MLC SATA x 1 |
1130.03 | 28.32 | 62.67 |
| 闪迪至尊极速 II 480GB MLC SATA x 1 |
981.34 | 32.61 | 102.58 |
| 日立SSD400M eMLC SAS x 1 |
878.9 | 36.41 | 68.03 |
| 东芝eSSD 单片机 SAS x 1 |
758.41 | 42.19 | 140.59 |
| 美光 M500 480GB MLC SATA x 1 |
668.6 | 47.86 | 461.80 |




Amazon