银行核心背后的落地工程体系丨混沌测试的场景设计与实战演练

💡 原文中文,约8100字,阅读约需20分钟。
📝

内容提要

本文介绍了TiDB分布式数据库在银行中心事务系统中进行混沌测试的场景规划和实践,混沌测试可以帮助我们了解系统的能力差距,优化监控和告警机制,并提高系统的可靠性和高可用性。通过混沌测试,可以发现系统中的瓶颈点,并进行针对性的优化,实现最佳实践。混沌测试还可以验证应急预案的有效性,并优化监控和告警机制,全面了解系统在不同故障场景下的服务能力的变化,并进行相应的优化。

🔎

延伸解读

混沌测试与常规测试的差异

混沌工程与常规测试在质量属性和实施方法上存在明显差异。常规测试侧重于验证系统的功能正确性和性能指标,而混沌工程更关注系统在异常情况下的健壮性和响应能力。这种差异决定了混沌测试需要模拟真实故障场景,以评估系统的容错和恢复能力,从而弥补常规测试的不足。

压力测试的阶梯式加压策略

混沌测试中的压力注入建议采用阶梯式加压,从生产预估TPS、总设要求TPS到其N倍,直至满足事务时延下的最高压力。这种策略有助于逐步探索系统性能边界,同时兼顾测试成本,避免过度细分压力场景。记录各压力场景下的资源使用率、时延等关键信息,可为容量规划提供参考。

故障注入后的关键观察指标

故障注入和恢复后,需重点关注事务量、QPS、TPS的影响比例和持续时间,事务端到端时延变化,SQL时延变化,存活节点资源使用变化,集群负载均衡能力以及应用连接池重连能力。这些指标有助于评估系统的高可用性和容灾能力,并发现潜在瓶颈。

监控告警设置的优化建议

混沌测试可验证监控告警的有效性和准确性。建议确保告警覆盖所有关键指标和组件,设置合理探测频率和适度冗余,以便直接定位根因。区别于集中式数据库,TiDB作为分布式数据库具有原生高可用、高并发等特点,告警规则需考虑这些特性,避免简单套用集中式思维。

❓

Q&A

混沌测试在银行中心事务系统中的作用是什么?

混沌测试帮助了解系统能力差距,优化监控和告警机制,提高系统的可靠性和高可用性。

TiDB分布式数据库的混沌测试如何进行场景规划?

混沌测试场景规划应尽可能模拟真实的生产状况,确保环境配置与预期一致,并覆盖关键环节。

混沌测试可以发现哪些系统瓶颈?

混沌测试可以发现数据库的性能鸿沟、容错能力和稳定性等方面的瓶颈点。

如何验证应急预案的有效性?

通过混沌测试中的破坏性测试场景,可以全面查验和优化应急预案,为运维做好准备。

混沌测试工具Chaosd的主要功能是什么?

Chaosd用于在物理机环境上注入故障,提供故障恢复功能,并支持多种故障类型的模拟。

混沌测试如何优化监控和告警机制?

混沌测试可以有效验证告警系统的有效性和准确性,并对告警进行全面的查漏补缺和优化。

🏷️

标签

➡️

继续阅读