分层分析指的是按照系统模型、系统架构以及调用链分层进行监控分析和问题排查,如图1-6-1所示。
● 分层分析一般需要对系统的应用架构以及部署架构的层次非常熟悉,需要熟悉请求的处理链过程。
● 分层分析一般需要对每一层建立checklist(检查清单),然后按照每层的checklist逐一进行分析。
● 分层分析来排查问题的效率虽然较低,但是往往能发现更多的性能问题。
● 分层分析可以自上而下,也可以自下而上。
图1-6-1
科学论证是指通过一定的假设和逻辑思维推理来分析性能问题,一般包括发现问题、问题假设、预测、试验论证、分析这5个步骤,如图1-6-2所示。
图1-6-2
● 发现问题:指通过性能采集和监控,发现了性能瓶颈或者性能问题,比如并发用户数增大后TPS并不增加、每台应用服务器的CPU消耗相差特别大等。
● 问题假设:指根据自己的经验判断,假设是某个因素导致了出现瓶颈和问题。
● 预测:指根据问题假设,预测可能出现的一些现象或者特征。
● 试验论证:根据预测,去检查预期可能出现的现象或者特征。
● 分析:根据获取到的实际现象或者特征进行分析,判断假设是否正确,如果不正确,就重新按照这个流程进行分析论证。
科学论证法进行性能分析与调优的示例如图1-6-3所示。
图1-6-3
问题追溯指的是根据问题去追溯最近系统或者环境发生的变化,一般适用于已上线生产系统的版本发布或者环境变动导致的性能问题。问题追溯的步骤一般如图1-6-4所示,问题追溯是通过不断向下追溯问题和根据问题描述去逐步排查可能导致问题的原因。
图1-6-4
归纳总结指根据经验的总结,在出现某种性能瓶颈或者性能问题时,根据以往总结的原因进行逐一排查。