← Back
Openresty-Xray

生产环境内存泄漏定位:从 RSS 飙升到源码行号的分层归因

  • 症状:只升不降的内存曲线
  • 内存泄漏还是内存占用高?
  • 四类泄漏模式的真实根因链
  • 看起来在涨,其实不是泄漏
  • 如何定位泄漏:自顶向下的分层归因
  • 传统工具为什么在生产环境里不够用
  • 常见问题
  • 症状:只升不降的内存曲线
  • 内存泄漏还是内存占用高?
  • 四类泄漏模式的真实根因链
  • 看起来在涨,其实不是泄漏
  • 如何定位泄漏:自顶向下的分层归因
  • 传统工具为什么在生产环境里不够用
  • 常见问题

Off-CPU 分析实战:CPU 使用率低但延迟高的四类根因与定位方法

  • Off-CPU 时间是什么?
  • 症状:CPU 使用率上不去,请求却在排队
  • 四类 Off-CPU 根因的真实根因链
  • 如何量化 Off-CPU 时间
  • On-CPU + Off-CPU = 挂钟时间:全局视角与工具生态
  • 常见问题
  • Off-CPU 时间是什么?
  • 症状:CPU 使用率上不去,请求却在排队
  • 四类 Off-CPU 根因的真实根因链
  • 如何量化 Off-CPU 时间
  • On-CPU + Off-CPU = 挂钟时间:全局视角与工具生态
  • 常见问题

二进制漏洞扫描:识别 Backport 补丁,消除误报

  • 为什么版本匹配漏洞扫描会失效:三类叠加代价
  • OpenResty XRay 的二进制漏洞扫描如何工作:证据优先模型
  • 实战案例:Rocky Linux 双版本 OpenSSL 场景下的二进制漏洞扫描
  • 从告警疲劳到精准:可持续的漏洞扫描实践
  • 为什么版本匹配漏洞扫描会失效:三类叠加代价
  • OpenResty XRay 的二进制漏洞扫描如何工作:证据优先模型
  • 实战案例:Rocky Linux 双版本 OpenSSL 场景下的二进制漏洞扫描
  • 从告警疲劳到精准:可持续的漏洞扫描实践

不改代码、不重启服务:OpenResty XRay 如何对生产环境做全栈动态追踪

  • 现有动态追踪框架的技术权衡与生产环境局限性
  • OpenResty XRay 的动态追踪架构级突破
  • 全栈火焰图
  • 能力边界的持续扩展
  • 现有动态追踪框架的技术权衡与生产环境局限性
  • OpenResty XRay 的动态追踪架构级突破
  • 全栈火焰图
  • 能力边界的持续扩展

OpenResty XRay 是什么

  • 以“零侵入”重构生产环境性能分析
  • 将海量遥测数据转化为可执行的洞察
  • 适应弹性架构的无感观测能力
  • 赋能高可用架构的长期主义
  • 以“零侵入”重构生产环境性能分析
  • 将海量遥测数据转化为可执行的洞察
  • 适应弹性架构的无感观测能力
  • 赋能高可用架构的长期主义

一次无法重启的 Nginx 内存泄漏,我们是如何在生产环境把它抓出来的

  • 一次生产环境内存泄漏的完整解剖
  • 为什么这类问题几乎无解?
  • 从“靠运气”到“可预测”
  • 当性能问题超越“工具”范畴”
  • 一次生产环境内存泄漏的完整解剖
  • 为什么这类问题几乎无解?
  • 从“靠运气”到“可预测”
  • 当性能问题超越“工具”范畴”

Nginx 反向代理 QPS 暴跌 15 倍:upstream keepalive 缺失与 -O0 编译选项的根因定位

  • Nginx 反向代理慢 15 倍,日志却零报错
  • 火焰图暴露连接风暴:upstream keepalive 缺失
  • 剩下的 10% 差距:基线对比指向编译器
  • -O0 调试编译如何吃掉我们 10% 的性能
  • 15 倍 QPS 差异的工程性复盘
  • Nginx 反向代理慢 15 倍,日志却零报错
  • 火焰图暴露连接风暴:upstream keepalive 缺失
  • 剩下的 10% 差距:基线对比指向编译器
  • -O0 调试编译如何吃掉我们 10% 的性能
  • 15 倍 QPS 差异的工程性复盘

修复 OpenResty 中 LuaJIT RSS 内存泄漏:无需重启即可消除 OOM Kill

  • 什么是 LuaJIT「伪内存泄漏」?
  • 用真实生产数据诊断问题
  • 为什么常规修复手段无效
  • LuaJIT-plus 如何在分配器层面解决
  • 上线后的生产收益
  • 什么是 LuaJIT「伪内存泄漏」?
  • 用真实生产数据诊断问题
  • 为什么常规修复手段无效
  • LuaJIT-plus 如何在分配器层面解决
  • 上线后的生产收益

我们如何在一个 500k QPS 的 OpenResty 网关中定位 244 毫秒的性能异常

  • 被健康平均值掩盖的延迟尖刺与 CPU 浪费
  • 无需改代码、无需重启:OpenResty 延迟问题排查
  • 优化结果:延迟毛刺消除,CPU 使用率下降 30%
  • 常见问题
  • 被健康平均值掩盖的延迟尖刺与 CPU 浪费
  • 无需改代码、无需重启:OpenResty 延迟问题排查
  • 优化结果:延迟毛刺消除,CPU 使用率下降 30%
  • 常见问题

如何在生产环境中定位 Java 内存泄漏——无需堆转储、无需重启

  • 为什么多次 Full GC 后堆内存仍未回落
  • 如何在不导出堆转储的情况下定位生产环境的 Java 内存泄漏
  • 如何定位 Java 内存泄漏:一套可复用的三步法
  • 为什么用 OpenResty XRay 定位 Java 内存泄漏
  • 常见问题
  • 为什么多次 Full GC 后堆内存仍未回落
  • 如何在不导出堆转储的情况下定位生产环境的 Java 内存泄漏
  • 如何定位 Java 内存泄漏:一套可复用的三步法
  • 为什么用 OpenResty XRay 定位 Java 内存泄漏
  • 常见问题

Gzip CPU 占用过高的根因:压缩级别 6 吃掉了 54% 的 CPU

  • Gzip 压缩如何在生产环境中吃掉了 54% 的 CPU
  • Gzip CPU 占用为何如此之高:配置级根因诊断
  • 量化 Gzip 与 Brotli 的 CPU 开销
  • 从凭感觉到数据驱动的压缩调优
  • Gzip 压缩如何在生产环境中吃掉了 54% 的 CPU
  • Gzip CPU 占用为何如此之高:配置级根因诊断
  • 量化 Gzip 与 Brotli 的 CPU 开销
  • 从凭感觉到数据驱动的压缩调优

Nginx C++ 模块内存泄漏:生产环境不重启定位根因

  • 生产环境难题:无法用 GDB 调试的 C++ 模块内存泄漏
  • 火焰图如何锁定 ngx_dubbo_module 中的泄漏函数
  • 从被动应对到主动赋能:XRay 带来的排障新闭环
  • 总结
  • 生产环境难题:无法用 GDB 调试的 C++ 模块内存泄漏
  • 火焰图如何锁定 ngx_dubbo_module 中的泄漏函数
  • 从被动应对到主动赋能:XRay 带来的排障新闭环
  • 总结

无侵入式 Java 探针:生产环境无 Java Agent 捕获方法参数

  • 为什么无侵入式 Java 探针在生产环境很重要
  • 实战演示:在生产环境捕获 Java 方法参数
  • OpenResty XRay 与常见 Java Profiler 的差异
  • 常见问题
Photo by 章亦春
  • 为什么无侵入式 Java 探针在生产环境很重要
  • 实战演示:在生产环境捕获 Java 方法参数
  • OpenResty XRay 与常见 Java Profiler 的差异
  • 常见问题

OpenResty XRay 如何用 Node.js 函数探针实现监控新范式

  • 为什么你需要无侵入式函数探针的新范式?
  • 实战演示:监控函数参数
  • 顶尖团队如何利用无侵入式探针提升研发效能?
  • 总结
Photo by 章亦春
  • 为什么你需要无侵入式函数探针的新范式?
  • 实战演示:监控函数参数
  • 顶尖团队如何利用无侵入式探针提升研发效能?
  • 总结

Nginx Worker 进程 RPS 上不去:追踪到 75 毫秒的事件循环阻塞

  • 负载很高却没干活:缺失 worker_cpu_affinity 导致的 CPU 争抢
  • 阻塞的 Lua IO 操作如何拖停 Nginx 事件循环
  • 量化文件 IO 延时:单次最高 1.5 毫秒
  • Nginx 事件循环阻塞有多严重?43952 个样本、最大 75 毫秒
  • 常见问题
  • 负载很高却没干活:缺失 worker_cpu_affinity 导致的 CPU 争抢
  • 阻塞的 Lua IO 操作如何拖停 Nginx 事件循环
  • 量化文件 IO 延时:单次最高 1.5 毫秒
  • Nginx 事件循环阻塞有多严重?43952 个样本、最大 75 毫秒
  • 常见问题

零侵入 Node.js CPU 性能分析:火焰图实战

  • Node.js 应用中的高 CPU 使用率问题
  • Node.js 应用中的 CPU 阻塞问题
  • 支持的 Node.js 版本和操作系统
  • 性能影响和额外负担
  • 下一步的计划
Photo by 章亦春
  • Node.js 应用中的高 CPU 使用率问题
  • Node.js 应用中的 CPU 阻塞问题
  • 支持的 Node.js 版本和操作系统
  • 性能影响和额外负担
  • 下一步的计划

从崩溃到根因:OpenResty XRay 如何将 Nginx 内存踩踏问题分析得明明白白

  • 案例背景:日志无法解释的 Nginx worker 进程频繁崩溃
  • 分析录制文件:把崩溃过程回放回“第一现场”
  • 根因:Nginx 连接生命周期中的 Use-After-Free
  • 常见问题(FAQ)
  • 案例背景:日志无法解释的 Nginx worker 进程频繁崩溃
  • 分析录制文件:把崩溃过程回放回“第一现场”
  • 根因:Nginx 连接生命周期中的 Use-After-Free
  • 常见问题(FAQ)

UDB + OpenResty XRay:解锁 OpenResty 应用性能之谜

  • OpenResty XRay 如何协同 UDB 增效
  • 实战:使用 UDB 与 OpenResty XRay 分析 OpenResty 应用的 Lua 代码调用栈
  • 时间旅行调试的优势
Photo by 章亦春
  • OpenResty XRay 如何协同 UDB 增效
  • 实战:使用 UDB 与 OpenResty XRay 分析 OpenResty 应用的 Lua 代码调用栈
  • 时间旅行调试的优势

如何用时间旅行调用栈调试 Java 文件 I/O

  • IDE 断点和 coredump 在 Java 文件 I/O 排查中的短板
  • 从 native write() 系统调用重建完整的 Java 调用栈
  • 用时间旅行回放一步步调试 Java 文件 I/O
  • 常见问题
Photo by 章亦春
  • IDE 断点和 coredump 在 Java 文件 I/O 排查中的短板
  • 从 native write() 系统调用重建完整的 Java 调用栈
  • 用时间旅行回放一步步调试 Java 文件 I/O
  • 常见问题

追踪 OpenResty 中 LRU 缓存引发的内存泄漏 —— 根因竟是缓存的 SSL 证书

  • 为什么一个低流量的 OpenResty 应用会持续泄漏内存
  • 一步步追踪 LRU 缓存内存泄漏的完整过程
  • 最终结果:从无限增长到内存平稳
  • 为什么一个低流量的 OpenResty 应用会持续泄漏内存
  • 一步步追踪 LRU 缓存内存泄漏的完整过程
  • 最终结果:从无限增长到内存平稳

Nginx Worker CPU 占用不均:定位未启用 reuseport 与 cjson 解析瓶颈

  • 症状:部分 Nginx Worker 进程 CPU 打满,其余接近空闲
  • OpenResty XRay 如何定位根因
  • 修复:三项优化与各自的实测收益
  • 总结:OpenResty XRay 几分钟内的发现
  • 常见问题
  • 症状:部分 Nginx Worker 进程 CPU 打满,其余接近空闲
  • OpenResty XRay 如何定位根因
  • 修复:三项优化与各自的实测收益
  • 总结:OpenResty XRay 几分钟内的发现
  • 常见问题

动态追踪的瑞士军刀:Y 语言如何让动态追踪不再复杂

  • 行业痛点:为什么我们迫切需要一门全新的追踪语言?
  • 技术硬实力:Y 语言凭什么敢说“革命性”?
  • Y 语言语法:熟悉的 C,更强大的追踪能力
  • 杀手级应用场景:解决传统工具无法解决的问题
  • 全平台支持:没有 Y 语言到不了的地方
  • 行业痛点:为什么我们迫切需要一门全新的追踪语言?
  • 技术硬实力:Y 语言凭什么敢说“革命性”?
  • Y 语言语法:熟悉的 C,更强大的追踪能力
  • 杀手级应用场景:解决传统工具无法解决的问题
  • 全平台支持:没有 Y 语言到不了的地方

深入动态追踪技术:OpenResty XRay 如何彻底改变问题诊断方式

  • 动态追踪:解决复杂系统问题的利器
  • 为什么选择 OpenResty XRay?
  • 产品聚焦:XRay 在真实场景中的应用案例
  • 常见误区与 FAQ
  • 动态追踪:解决复杂系统问题的利器
  • 为什么选择 OpenResty XRay?
  • 产品聚焦:XRay 在真实场景中的应用案例
  • 常见误区与 FAQ

日志、埋点、A/B 测试都不够用了?你该了解”动态追踪”

  • 传统方法 vs 动态追踪:效率与控制力的革命
  • 动态追踪:系统的“透视眼”
  • 从火焰图到系统全景
  • 为什么选择 OpenResty XRay?
  • 动态追踪的新边界
  • 传统方法 vs 动态追踪:效率与控制力的革命
  • 动态追踪:系统的“透视眼”
  • 从火焰图到系统全景
  • 为什么选择 OpenResty XRay?
  • 动态追踪的新边界

可观测性的下一站:OpenResty XRay 如何重新定义问题排查

  • 现代软件架构下的问题排查为何越来越难?
  • 趋势洞察:可观测技术的未来
  • 动态追踪技术是如何打通抽象层的
  • 实战案例:在线上 Kong 服务中实时统计插件资源消耗
  • 现代软件架构下的问题排查为何越来越难?
  • 趋势洞察:可观测技术的未来
  • 动态追踪技术是如何打通抽象层的
  • 实战案例:在线上 Kong 服务中实时统计插件资源消耗

OpenResty XRay 助力脚本性能提升 44 倍

  • 真实案例:从发现瓶颈到显著提速
  • OpenResty XRay 的工作原理
  • 优化效果
  • 支适用场景与实践建议
Photo by 章亦春
  • 真实案例:从发现瓶颈到显著提速
  • OpenResty XRay 的工作原理
  • 优化效果
  • 支适用场景与实践建议

Java Tomcat 响应慢:用单请求 PCAP 精准定位慢请求

  • 诊断 Tomcat 响应慢,精准捕获慢请求
  • 选择性抓包:按响应时间、状态码、路径过滤
  • 每个慢请求单独下载对应 PCAP 包
  • 区分服务端延迟与网络延迟
  • 支持 Spring Boot 内嵌 Tomcat 场景
Photo by 章亦春
  • 诊断 Tomcat 响应慢,精准捕获慢请求
  • 选择性抓包:按响应时间、状态码、路径过滤
  • 每个慢请求单独下载对应 PCAP 包
  • 区分服务端延迟与网络延迟
  • 支持 Spring Boot 内嵌 Tomcat 场景

Java 应用性能剖析:CPU、Off-CPU 与磁盘 I/O 分析(无 Safepoint 偏差)

  • 用火焰图剖析 Java CPU 热点
  • Off-CPU Java 性能分析:锁等待与阻塞诊断
  • Java 磁盘 I/O 剖析:追踪文件与套接字写入
  • 支持 OpenJDK 8/11/17/21 应用剖析
  • 自动化采样与专家分析
  • 性能影响与开销
  • 常见问题
Photo by 章亦春
  • 用火焰图剖析 Java CPU 热点
  • Off-CPU Java 性能分析:锁等待与阻塞诊断
  • Java 磁盘 I/O 剖析:追踪文件与套接字写入
  • 支持 OpenJDK 8/11/17/21 应用剖析
  • 自动化采样与专家分析
  • 性能影响与开销
  • 常见问题
联系我们

很乐意听到您的反馈,请与我们联系 👋

成功发送消息!

我们的专家团队将在 24 小时之内与您联系。
x