Firebird 性能通讯:第 1 期
我们决定推出一份较为定期的“Firebird 性能通讯”,专门介绍性能测试、技巧、窍门、配置改进等内容。
在第一期中,我们包含以下内容:
- 比较 Firebird 4 与 Firebird 3 的写入性能,
- 选择最佳的 AWS EC2 实例以获得最大的 Firebird 写入性能,
- INSERT/UPDATE/DELETE 测试的最新结果
Firebird 4 与 Firebird 3:好消息,各位!
自 2019 年我们发布了 简单 INSERT/UPDATE/DELETE 测试 的首批结果以来,许多人向我们发送了他们 Firebird 服务器的测试结果,我们已将这些结果添加到电子表格和相应的图表中。
该测试是一个简单但强大的工具,用于测量和比较不同硬件+Firebird 配置的性能,以便快速确认或否定硬件或配置问题。
最近,我们使用此测试比较了 Firebird 4.0(版本 4.0.0.2394,发布前的几个构建版本)和 3.0(版本 3.0.8.33426,快照版本,即将发布的 3.0.8 的预发布版本,根据 Firebird 自动测试 的结果,它作为次要版本是稳定的)的 INSERT/UPDATE/DELETE 性能。
测试环境为 Intel i3-10100F 3.60GHz,配备 SSD Samsung SSD 870QVO 和 RAM 驱动器(qSoft),内存大小(16、32、64)和 Page Buffers 各不相同。
以下是图表,这里是包含结果的 XLS 电子表格。

如您所见,在相同条件和相同配置下,Firebird 4 在写入操作上比 3.0.8 快约 10%。这无疑是个好消息,也再次表明是时候密切关注即将发布的版本并开始为迁移做准备。
当然,最好的方法是在您自己的服务器上运行相同的测试,亲自看看实际的改进。
参见 如何操作 »
选择最佳的 AWS EC2 实例以获得最大的 Firebird 写入性能
越来越多的公司考虑“迁移到云端”,而 Amazon Web Service Elastic Cloud 是最受欢迎的“云目的地”之一。
然而,AWS 提供了许多不同的实例类型,如何选择最佳的呢?当然,进行测试!
我们对 20 种实例类型进行了简单的 INSERT/UPDATE/DELETE 测试,并发现了几个非常适合 Firebird 的选项。
请注意 - 以下计算和图表中的所有价格均针对 AWS EC2 的法兰克福区域,直接取自 aws.amazon.com,不含任何折扣,可能还需缴纳额外税费,并且可能随时间变化 - 因此请不要将以下价格视为最终价格或精确购买指南。
以下是总体图表和包含结果的 XLS 电子表格:

为简化起见,我们创建了 Operations 列,本质上是 Inserts+Updates+Deletes 的总和,并将其作为统一的写入性能指标:

如您所见,以下 3 种实例类型在性能方面处于领先地位(从 Firebird 写入操作的角度来看):
| 实例 | Linux 每小时成本 | 每秒操作数 |
|---|
| z1d.xlarge | 0.45 美元 | 45834 | | m5dn.2xlarge | 0.648 美元 | 45198 | | m5d.2xlarge | 0.544 美元 | 44150 |
有趣的是,领先者并不是最昂贵的实例类型!当然,我们需要记住,该测试是单线程的(不依赖于核心数量),并且不需要大量 RAM(因为数据库只有 3.6GB),但对于需要快速处理峰值写入操作的应用程序来说,这些实例看起来确实非常理想。
尽管这些实例类型并非(在测试中)最昂贵的,但它们仍然足够昂贵,需要三思预算问题,而且由于云的一个宣传优势是灵活性,因此从更便宜的 VM 实例类型开始是有意义的,这些类型可能足以服务我们的 Firebird 数据库,对吧?
为了找出最佳性价比的实例类型,我们在电子表格中创建了另一列:“每 1 美元的操作数”。
它的含义正如其名–您可以用 1 美元购买多少次写入操作。
公式如下:
每秒操作数 * 每小时 3600 秒 / 每小时价格

如您所见,从这个角度来看,领先者有所不同:
| 实例 | Linux 每小时价格 | 每 1 美元的操作数 | 每秒操作数 |
|---|---|---|---|
| c5d.xlarge | 0.222 美元 | 579062087 | 35709 |
| c5ad.xlarge | 0.2 美元 | 565024995 | 31390 |
| m5dn.xlarge | 0.324 美元 | 446037216 | 40143 |
非常有趣的是第 3 名,m5dn.xlarge,峰值性能约为每秒 40K 次操作–它非常接近性能领先者 z1d.xlarge 的 45834 次操作/秒,但价格明显更低。
总的来说,我们在 AWS EC2 上的经验表明,它是一个稳定成熟的环境,具有许多良好的安全/备份/高可用性等功能,但像任何复杂平台一样,它需要经验(或外部专业知识)来做出正确的选择,避免为负载并不惊人的应用程序支付高昂账单。
INSERT/UPDATE/DELETE 测试的最新结果
因此,如您所见,这个简单测试不仅可用于比较硬件和 Firebird,还可以为您节省一些钱。
我们发布了最近收集结果的图表和一个 XLS 电子表格 供您操作,您可以自行查看 此处。
以下是 3 个明显的结论:
- NVME 驱动器确实非常出色,因此如果您需要强大的 Firebird 服务器,请为数据库购买 NVME。
- 高 CPU 频率对于 Firebird 数据库的高性能非常重要。供应商经常推动您购买频率较低(<3GHz)的多核处理器,但这可能不是 Firebird 的最佳选择,而更少核心但更高频率可能带来更好的结果。
- 如果您的数据库负载配置严重偏向写入,请尝试减少 Page Buffers:尝试使用 DefaultDbCachePages 如 50K、100K、250K 等。如果您与我们分享结果,那就太好了!
欢迎研究测试结果,并提出任何问题或发送建议。
在下一期“Firebird 性能通讯”中
在第 2 期中,我们将展示如何配置多个 SuperClassic 实例来服务一个数据库(除其他外,这有助于在多个网络端口之间分担负载)。未来几期的计划很大:配置错误、加密数据库测试、Firebird 4 与 Firebird 3 性能的高级比较、索引优化等。
如果您感兴趣并希望收到新期刊的通知,请加入我们的 FirebirdSQL Telegram 频道。
联系我们
如有任何问题或建议,请联系我们:Alexey Kovyazin:[email protected]。