CPU 占用率 45% 的“黑洞”:一次 APISIX “黑盒”插件的 C 级别性能诊断

💡 原文中文,约5300字,阅读约需13分钟。
📝

内容提要

本文回顾了一个电商平台APISIX网关的CPU瓶颈案例。传统工具无法定位问题,而OpenResty XRay通过动态追踪技术发现pkey_rsa_decrypt函数占用44.8% CPU,揭示了性能优化的关键。建议通过缓存解密结果和检查RSA密钥长度来提升系统性能。

🎯

关键要点

  • APISIX网关集群遭遇CPU瓶颈,传统工具无法定位问题。
  • OpenResty XRay通过动态追踪技术发现pkey_rsa_decrypt函数占用44.8% CPU。
  • API网关的性能和稳定性对现代微服务架构至关重要。
  • 客户的SRE团队尝试使用perf工具,但无法将C函数调用与Lua代码关联。
  • 传统采样工具在Lua与C库的边界上存在盲区,无法提供有效的优化指导。
  • OpenResty XRay使用动态追踪技术,能够非侵入式地重建完整调用栈。
  • pkey_rsa_decrypt函数的高CPU占用与RSA密钥长度和冗余计算有关。
  • 建议通过缓存解密结果和检查RSA密钥长度来提升系统性能。
  • 常规监控工具无法跨越LuaJIT VM的边界,导致归因困难。
  • OpenResty XRay能够提供跨越Lua和C的完整调用栈,帮助定位性能瓶颈。
  • 优化建议包括在cb-session-validation.lua中引入缓存机制和检查RSA密钥长度。
➡️

继续阅读