OpenResty 性能分析 - 火焰图
OpenResty 是网关、CDN 和 Waf 等产品常用的底层解决方案,在使用的过程中难免会遇到性能问题。对于性能问题,这就需要我们有排查和观察的手段、工具,由于 OpenResty 的业务代码是由 Lua 开发, 系统级别的工具 如 perf,是无法观察到 Lua 的代码热点。
火焰图是定位疑难杂症的神器,比如 CPU 占用高、内存泄漏等问题。特别是 Lua 级别的火焰图,可以定位到函数和代码级别。
解读火焰图
火焰图以一个全局的视野来看待时间分布,它从底部往顶部,列出所有可能导致性能瓶颈的调用栈
火焰图是一张二维图。y 轴显示是代码(或数据)上下文,比如目标编程语言的调用栈轨迹,而 x 轴则显示的是各个调用栈所占用的系统资源的比例。整个 x 轴通常代表了目标软件所消耗的 100% 的系统资源(比如 CPU 时间)。