老系统的在最开始创建、编写代码创造出来的时候,最终系统的性能和可维护性,完全取决于编码者的水平。
当你接手的系统,遇到下面这些情况的时候,这篇文章或许可以给你一点帮助:
- 没有监控
- 没有告警
- 没有业务成功率
- 乐观锁频繁失败
- 系统响应时间黑盒(是的,你的业务方,使用者只是一味地跟你讲,系统很慢,但是具体不知道满在哪里)
- 日志查问题很复杂
是的,上面就是我一个月以来遇到的备儿头疼的问题。
一个月之期已到,所以我开始操刀,对这套系统进行一系列的性能优化了。
首先,要对系统的整体情况摸清除,所谓优化,你至少知道你自己优化了个啥。业务方也应该知道自己使用的系统到底慢在了哪里。
所以你需要做的事情就是,制定系统的基线。
制定系统的基线
系统的基线,是对系统在正常运行状态下各项关键性能指标的量化描述。
它是系统性能优化的起点,也是衡量优化效果的标准参照。简单来说,系统基线就是你的系统的"健康体检报告",记录了系统在各种条件下的性能表现。(1,2)
系统基线包含以下这些
一个完整的系统基线应该包括以下方面:
性能指标
- 响应时间(平均、P95、P99)
- 吞吐量(QPS/TPS)
- 延迟(Latency)
- 并发处理能力
资源使用情况
- CPU 使用率
- 内存占用及分配情况
- 磁盘 I/O
- 网络 I/O
- 连接池使用状况
业务指标
- 业务成功率
- 错误率
- 关键业务流程的完成时间
系统稳定性指标
系统平均无故障时间(MTBF)
- 系统崩溃恢复时间(MTTR)
- 锁竞争情况(如你提到的乐观锁失败率)
Comments