我们正在升级 MySQL 数据库服务器的硬件(数据库大约 200GB)。我们获得了 4 个三星 850 Pro SSD,并计划在 RAID10 配置中运行它们。另外,128GB 内存。
我们供应商的报价包括双 6 核 Xeons (E5-2620V2 2.1G),可选择升级到 E5-2630V2 2.6G。
速度更快的 CPU 的价格将多出约 622 美元(每个约 311 美元),大约是服务器价格的 6.5%。
由于我们没有硬件,当然,我无法对其进行基准测试,看看更快的 CPU 是否会对我们的数据库和查询方式产生影响。但是有什么方法可以了解更快的 CPU 是否有帮助?即假设当前瓶颈是 I/O,我们用 SSD 替换磁盘,E5-2620V2 CPU 是否可能/可能成为瓶颈?
谢谢。
我为自己的台式机拥有三星 850 Pro 而感到自豪。这是一个很棒的磁盘,但它不是服务器级的,并且与 Virident 和 FusionIO(举一些知名品牌的例子)销售的 PCI 闪存卡相去甚远。在专用硬件上,最新版本的 MySQL 几乎是必须的,并且需要进行一些配置调整才能获得其中的大部分(更改缓冲区、innodb 校验和、事务日志、双写区域等)。
检查一些供应商基准测试(Oracle MySQL、MariaDB、Percona),因为它们通常吹嘘自己在这些设备上的能力。
然而,无法达到一般化——大多数问题都与负载有关。给你一个极端的例子:如果你的查询都是这样的:
您的 CPU 可能会成为您的瓶颈,而如果您只插入新行,那么大部分延迟可能是由于磁盘延迟造成的。您应该检查当前硬件的 CPU 负载是否很高,这可能会随着新存储的增加而增加 - 但您可能仍会遇到其他问题,例如由于多个线程试图同时更新同一行而导致的并发问题。
这是可能的,但只是配置不正确(我之前提到过),假设是最新版本的 MySQL(5.6、5.7)。请记住,SSD 仍然比第一级缓存慢得多。您可能应该在安装硬件时再次询问,同时阅读以下资源:
虽然您无法模拟确切的硬件,但您可以通过比较具有类似相对差异的更简单的本地硬件来获得一些估计。如果您在类似的 RAID 配置中从 spinning rust 升级,那么您可以在具有类似 RAM 的开发/测试箱中将单个传统驱动器与单个 SSD 进行基准测试。
这当然不是一个真正准确的衡量标准,但您会看到在您的应用程序的正常工作负载下您可能会看到什么样的吞吐量差异顺序,因此能够更好地猜测 CPU 升级的价值。它可能比不特定于您的应用程序的一般建议更有用。