DESIGN TOOLS
Company

大规模MySQL®数据库性能在Ceph RBD

Ryan Meredith | 2017年12月

Hi everybody,

在我继续探索的过程中 Ceph® 12.2.1 (Luminous), I set up a test using MySQL® database server with Docker 容器在这个新版本的Ceph上.

测试的目标是测量当RBD块设备用作数据库存储时,大型数据库的性能如何变化. 我还使用Docker容器来封装我的MySQL配置,以便于部署和使用 Docker is cool.

Ceph硬件:微米IOPs优化的Ceph参考架构

我用了我们的硬件 微米IOPs优化Ceph参考架构 for testing:

Ceph硬件:微米IOPs优化的Ceph参考架构

我安装了最新的Ceph社区版本,Luminous 12.2.1,并配置为1 BlueStore OSD per Micron 9100MAX 2.启用4TB NVMe®SSD和crc32c校验和.

MySQL Server Configuration

MySQL Server (x10)

在MySQL服务器端,我使用Docker创建了一个MySQL 5.7.19的图像,并复制到10 Supermicro 2028U servers,充当MySQL数据库服务器.

A 1.每个MySQL服务器提供5TB RBD映像, 每个RBD映像存储1TB的TPC-C,如MySQL数据库. RBD映像被挂载在MySQL服务器上,并通过每个MySQL服务器一个容器实例传递到MySQL docker实例.

所有MySQL数据库文件都存储在RBD映像上,因此数据库实例是可移植的,并受到Ceph复制的保护.

MySQL的大小为每台服务器运行一个大型数据库,每个实例使用224GB的缓冲池.

Micron SSE TPC™-C Tool

我们的存储解决方案工程团队已经构建了一个类似于TPC-C的基准测试工具,通过使用整个数据库作为活动数据集来增加存储压力. 我们称之为“美光SSE TPC-C工具”, 它安装在每个docker实例中,并通过外部脚本同时在所有MySQL实例中启动.

MySQL在Ceph RBD上的性能

我从1个MySQL服务器扩展到10个MySQL服务器, 每个服务器使用一个Ceph RBD映像作为MySQL存储. 类似TPC-C的测试运行了10分钟的上升周期(以达到稳态)。, then a 30-minute test run. 在1个MySQL服务器、5个MySQL服务器和10个MySQL服务器上重复这个过程.

Ceph RBD MySQL Performance
  每分钟事务数(TPM) Avg. 事务响应时间(MS) 99.9% Response Time (MS)
1 MySQL Server 124,840 24 534 
5 MySQL Servers 607,988 24 549 
10 MySQL Servers 1,043,093 28  634 

MySQL性能从1个MySQL服务器线性扩展到10个服务器. At 10 servers, 修改后的TPC-C基准测试达到每分钟超过100万个事务,事务响应时间为28ms.

Ceph RBD MySQL Performance

Ceph存储节点上的CPU利用率通常是限制Ceph小块性能的因素. In this case, MySQL服务器的平均CPU利用率为70%-80%,Ceph存储节点的CPU利用率从7%(1个客户端)上升到64%(10个客户端)。.

添加MySQL客户端的开销更大,因为此时Ceph还没有得到充分利用. 遗憾的是,我用光了MySQL服务器. Based on this scaling, 如果再增加1到5个MySQL客户端,就会得到类似的结果.

你想知道更多吗?

我们正在撰写博客内容,分享Micron SSE TPC-C工具背后的方法,该工具将更详细地介绍我们如何实现此处共享的TPM编号. With this successful test, Docker + MySQL将成为我们用于Ceph和其他软件定义存储解决方案的标准测试. Stay tuned.

对我们的测试或方法有其他问题吗? 请在下方留言或发邮件给我们 ssd@rockmark.net.

存储解决方案架构总监

Ryan Meredith

瑞安·梅雷迪思是美光存储事业部数据中心工作负载工程总监, 测试新技术,以帮助建立美光在人工智能和NVMe-oF/TCP等领域的思想领导力和意识, 以及全闪存软件定义的存储技术.

" class="hidden">易车会