TiDB 账单爆炸之后:一次跌宕起伏的降本排查,从 Cloudflare 边缘到数据库计费内核,降本$30/月

TiDB 账单爆炸之后:一次跌宕起伏的降本排查,从 Cloudflare 边缘到数据库计费内核,降本$30/月

💡 原文中文,约7400字,阅读约需18分钟。
📝

内容提要

文章讨论了通过优化TiDB数据库和WordPress架构来降低每月账单。作者发现高负载主要源于冗余数据库查询和未使用的缓存。引入APCu对象缓存和优化请求处理后,请求单位(RU)从110降至约20,显著降低了费用,尽管仍有少量固定开销,但整体优化效果显著,节省了成本。

🎯

关键要点

  • 作者通过优化TiDB数据库和WordPress架构来降低每月账单。

  • 高负载主要源于冗余数据库查询和未使用的缓存。

  • 引入APCu对象缓存后,请求单位(RU)从110降至约20,显著降低了费用。

  • 尽管仍有少量固定开销,但整体优化效果显著,节省了成本。

  • 边缘防护和缓存策略的调整未能有效降低基线RU。

  • 通过日志分析发现,95%的请求是由自己的Worker发出的,导致缓存失效。

  • 最终确认20 RU/s是TiDB平台的后台开销,无法进一步优化。

🔎

延伸解读

优化数据库的重要性

文章强调了优化数据库架构对降低成本的关键作用。通过引入APCu对象缓存,显著减少了冗余数据库查询,降低了请求单位(RU)的消耗。这一过程表明,合理的数据库设计和缓存策略能够有效控制费用,尤其是在使用按请求计费的云服务时。

边缘缓存的局限性

尽管边缘缓存可以减轻负载,但文章指出其在处理长尾唯一URL时的效果有限。由于缓存主要吸收重复请求,面对大量唯一请求时,命中率低,无法有效降低基线RU。因此,优化单次请求的成本显得尤为重要。

平台开销的不可避免性

作者最终确认,TiDB平台的后台开销导致了无法进一步优化的20 RU/s。这一发现提醒用户,在使用云服务时,除了可控的优化措施外,还需考虑平台本身的固定开销,合理评估整体成本。

延伸问答

如何通过优化TiDB数据库降低WordPress的账单?

通过引入APCu对象缓存和优化请求处理,减少冗余数据库查询,从而显著降低每月账单。

高负载的主要原因是什么?

高负载主要源于冗余数据库查询和未使用的缓存。

引入APCu对象缓存后,RU的变化如何?

引入APCu对象缓存后,请求单位(RU)从110降至约20,显著降低了费用。

边缘防护和缓存策略的调整效果如何?

边缘防护和缓存策略的调整未能有效降低基线RU,仍然存在高负载问题。

为什么WordPress在使用远程数据库时会导致账单增加?

因为WordPress默认没有持久化对象缓存,每个请求都会重读数据库中的配置和元数据,导致冗余读。

最终的优化效果如何?

最终RU基线从110-120/s降至约20/s,月消耗从250M+降至约60M,显著节省了成本。

🏷️

标签

➡️

继续阅读