CPU 占用率 45% 的“黑洞”:一次 APISIX “黑盒”插件的 C 级别性能诊断
💡
原文中文,约5200字,阅读约需13分钟。
📝
内容提要
本文回顾了金融行业客户的案例,指出APISIX网关因CPU瓶颈导致延迟问题。传统工具无法定位,OpenResty XRay通过动态追踪技术识别出占44.8% CPU的pkey_rsa_decrypt函数,揭示其对系统性能的影响,并提出优化建议。
🎯
关键要点
- 本文回顾了金融行业客户的案例,APISIX网关因CPU瓶颈导致延迟问题。
- 传统工具无法定位问题,OpenResty XRay通过动态追踪技术识别出占44.8% CPU的pkey_rsa_decrypt函数。
- 客户的APISIX网关在高峰时段CPU占用率达到100%,导致P99延迟急剧抖动。
- perf工具无法将C函数调用与Lua代码关联,导致无法确认具体的性能瓶颈。
- 客户的APM系统显示大部分耗时发生在access_by_lua阶段,但仍无法定位具体问题。
- OpenResty XRay通过动态追踪技术重建完整调用栈,精确定位到pkey_rsa_decrypt函数。
- pkey_rsa_decrypt函数来自OpenSSL库,用于RSA私钥解密,CPU占用高达44.8%。
- 分析发现,可能是密钥长度过长或架构设计缺陷导致性能瓶颈。
- 建议客户在cb-session-validation.lua中引入缓存机制,减少重复解密操作。
- OpenResty XRay提供了跨越Lua和C的完整调用栈,帮助客户进行精确优化。
➡️