暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

降低云中 MySQL 成本的七种方法

原创 谭磊Terry 恩墨学院 2022-10-13
1855

随着世界许多地区经济放缓和通货膨胀肆虐,如果您找到降低运行 MySQL 数据库成本的方法,您的组织将会爱上您。如果您在云中运行 MySQL,则尤其如此,因为它通常可以让您看到这些节省的直接效果,这也是本文将重点介绍的内容。

有这么多公司宣布裁员或冻结招聘,优化成本可能会腾出足够的预算来留住一些团队成员或雇佣团队非常需要的人。

1.优化您的架构和查询

虽然优化模式和查询只能帮助您节省云中的 MySQL 成本,但这是一件很棒的事情。次优模式和查询可能需要更大的占用空间,而且主要云厂商的“完全托管”数据库即服务 (DBaaS) 解决方案也不能真正帮助您。具有次优架构和查询的系统需要比优化系统运行 10 倍或更多资源的情况并不少见。

在 Percona,我们构建了 Percona 监控和管理 (PMM),它可以帮助您找出哪些查询需要注意以及如何优化它。如果您需要更多帮助,Percona 专业服务通常能够在几天内完成您的架构和查询,以非常合理的前期成本给与长期节省机会。

2. 调整你的 MySQL 配置

最佳 MySQL 配置取决于工作负载,这就是为什么我建议首先调整查询和架构的原因。虽然从 MySQL 配置调整中获得的收益通常小于从修复查询中获得的收益,但它仍然很重要。我们有一篇关于您想要调整的基本 MySQL 设置的旧但仍然非常相关的文章,您可以查看。您还可以考虑使用Releem或Ottertune等工具来帮助您为您的工作负载获得更好的 MySQL 配置。

更高级的调优可能包括探索替代存储引擎,例如MyRocks(包含在Percona Distribution for MySQL中)。MyRocks 可以给与出色的压缩并最大限度地减少所需的 IO,从而大大降低存储成本。如需更深入地了解 MyRocks 在云中的性能,请查看博客在云中为 MySQL 缩放 IO-Bound Workloads。

3.实现缓存

缓存是作弊——而且效果很好!通过推出ProxySQL可以获得最先进的 MySQL 缓存。它可以给与一些额外的性能优势,例如连接池和读写拆分,但我认为缓存对于降低 MySQL 成本最有用。Percona 完全支持 ProxySQL,订阅了Percona Platform并包含在Percona Distribution for MySQL中。

为繁重的查询启用查询缓存真的很神奇——通常情况下,最繁重的查询不需要给与最新信息,并且可以将其结果缓存很长时间。

4. 合理调整您的资源

优化架构和查询并调整 MySQL 配置后,您可以检查 MySQL 实例正在使用哪些资源,以及在不影响性能的情况下可以节食它们的位置。CPU、内存、磁盘和网络是影响 MySQL 性能的四种主要资源,通常可以在云中半独立地进行管理。例如,如果您的工作负载需要大量 CPU 能力但不需要大量内存进行缓存,则可以考虑 CPU 密集型实例。PMM有一些很好的工具来了解您的工作负载最需要哪些资源。

image.png

根据我们的经验,由于“使用信用卡扩展”的简单性,随着时间的推移,云中的许多数据库变得严重过度配置,并且可以通过减少实例大小来节省大量成本!

5. 放弃 Kubernetes 的 DBaaS

DBaaS 和可比资源之间的价格差异继续扩大。使用最新的 Graviton 实例,您将为 Amazon RDS 支付两倍于底层实例成本的费用。Amazon Aurora 虽然给与了一些出色的功能,但价格更高。如果您只部署几个小节点,那么这笔额外的成本要比雇用人员来部署和管理“自己动手”解决方案要好得多。如果您每月在 DBaaS 解决方案上花费数万美元,情况可能会有所不同。

几年前,使用 EC2、EBS 等构建块或使用 Amazon RDS for MySQL 等 DBaaS 解决方案构建您自己的数据库服务是唯一的解决方案。现在,另一个机会出现了——使用 Kubernetes。

您可以获得Amazon EKS – 托管 Kubernetes 服务、谷歌 Kubernetes 引擎 (GKE)或Azure Kubernetes 服务 (AKS),其基础设施成本相对较低。然后,您可以使用Percona 的 MySQL Operator以传统部署的一小部分复杂性来部署和管理您的数据库。如果您已经将 Kubernetes 用于您的应用程序或使用基础架构即代码 (IaC) 部署方法,它甚至可能比 DBaaS 解决方案和 100% 开源更方便。

需要帮忙?Percona 支持 Percona 平台。

6. 考虑成本更低的替代品

几年前,只有主要的云厂商(在美国:AWS、GCP、Azure)拥有 MySQL 的 DBaaS 解决方案。现在情况发生了变化,MySQL DBaaS 也可以从二线且通常成本较低的厂商处获得。您可以从Linode、Digital Ocean和Vultr以显着更低的成本(尽管功能更少)获得 MySQL DBaaS。您还可以从Aiven等独立厂商处获取 MySQL 。

如果您正在考虑在与您的应用程序使用的云厂商不同的云厂商上部署数据库,请确保您使用的部署位置较近,并确保检查数据库和应用程序之间的网络延迟——网络延迟或可靠性差问题可以否定您已实现的所有节省。

7. 让专家管理您的 MySQL 数据库

如果您每月在云数据库占用上花费超过 20,000 美元,或者如果您的应用程序正在快速增长或变化,那么您通常会通过真正的“完全托管”以更低的成本获得更好的数据库性能、安全性和可靠性“完全托管的云”。后者依赖于MySQL 最佳实践的许多关键领域的 “共同责任” 。

“完全托管的云”将确保数据库基础架构正常运行(如果使用信用卡进行扩展),但不能完全确保您拥有最佳的 MySQL 配置和优化的查询,遵循最佳安全实践,或选择最高性能和成本- MySQL 部署的有效实例。

Percona 托管服务是 Percona 值得考虑的解决方案,尽管市场上还有许多其他专家可以比主要云中的 DBaaS 更好地满足您的 MySQL 需求。

概括

如果您在云中的 MySQL 基础设施的成本开始下降,请不要绝望。可能有很多节省的机会,我希望上面的一些提示将适用于您的环境。

还值得注意的是,我的上述建议不是理论,而是基于我们在 Percona 所做的实际工作。我们已经帮助许多领先的公司在云中运行 MySQL 时实现了显着的成本节约,包括Patreon,它使用 Percona 节省了 50% 以上的云数据库基础设施成本。

原文标题:Seven Ways To Reduce MySQL Costs in the Cloud
原文作者:Peter Zaitsev
原文地址:https://www.percona.com/blog/seven-ways-to-reduce-mysql-costs-in-the-cloud/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论