← Back
Openresty-Xray

OpenResty XRay 的 Web 控制台快速导览

  • Insight 页面介绍
  • 自动报告详情
  • Dashboard 性能指标仪表盘
  • 使用 Guided Analysis 在线分析
  • 系统设置与配置页
  • Insight 页面介绍
  • 自动报告详情
  • Dashboard 性能指标仪表盘
  • 使用 Guided Analysis 在线分析
  • 系统设置与配置页

Rust 进程硬盘 I/O 高的原因定位方法

  • 定位硬盘 I/O 高的 Rust 进程
  • 使用火焰图追踪 Rust 磁盘写入热点代码路径
  • 自动磁盘 I/O 分析报告
  • 常见问题
  • 定位硬盘 I/O 高的 Rust 进程
  • 使用火焰图追踪 Rust 磁盘写入热点代码路径
  • 自动磁盘 I/O 分析报告
  • 常见问题

OpenResty XRay 移动端应用介绍

  • 下载和安装 OpenResty XRay 安卓版
  • 登录到 OpenResty XRay
  • 全自动分析报告
  • 在 dashboard 页面查看性能图表数据
  • 引导式分析功能
  • 下载和安装 OpenResty XRay 安卓版
  • 登录到 OpenResty XRay
  • 全自动分析报告
  • 在 dashboard 页面查看性能图表数据
  • 引导式分析功能

PHP 内存分析器:定位线上 PHP 进程中最大的内存对象

  • 现象: PHP 进程在 top 中占用大量内存
  • 用 OpenResty XRay 引导式分析剖析进程,找出最大的 PHP 对象
  • 把最大的对象追溯到它的源码行
  • 用 Insights 报告自动监控 PHP 进程内存
  • 常见问题
  • 关于 OpenResty XRay
  • 现象: PHP 进程在 top 中占用大量内存
  • 用 OpenResty XRay 引导式分析剖析进程,找出最大的 PHP 对象
  • 把最大的对象追溯到它的源码行
  • 用 Insights 报告自动监控 PHP 进程内存
  • 常见问题
  • 关于 OpenResty XRay

使用 C++ 动态追踪 C++ 应用

  • 设置目标 C++ 程序
  • 编写 C++(或 Y++)分析器
  • 将目标和分析器投入运行
  • 支持复杂 C++ 应用的进展
  • 关于调试符号
  • 结论
Photo by 章亦春
  • 设置目标 C++ 程序
  • 编写 C++(或 Y++)分析器
  • 将目标和分析器投入运行
  • 支持复杂 C++ 应用的进展
  • 关于调试符号
  • 结论

Erlang 高 CPU 使用率:通过火焰图追踪 PCRE 正则瓶颈

  • 观察 Erlang 进程 CPU 使用率超过 200%
  • 使用 OpenResty XRay 分析 Erlang CPU 使用率
  • C 语言级别分析:erts_pcre_exec 与 PCRE 回溯
  • PCRE 正则回溯在 BEAM VM 中为何代价高昂
  • 自动监控与报告
  • 常见问题:Erlang 高 CPU 使用率
  • 观察 Erlang 进程 CPU 使用率超过 200%
  • 使用 OpenResty XRay 分析 Erlang CPU 使用率
  • C 语言级别分析:erts_pcre_exec 与 PCRE 回溯
  • PCRE 正则回溯在 BEAM VM 中为何代价高昂
  • 自动监控与报告
  • 常见问题:Erlang 高 CPU 使用率

Nginx 报 No debugging symbols found?用 OpenResty XRay 自动重建调试符号

  • 确认 Nginx 被 strip、调试符号缺失
  • 自动重建缺失的 Nginx 调试符号——无需重新编译
  • 持续分析:每日与每周 Insights 报告
  • 常见问题:nginx-dbg、重新编译与分析 strip 过的二进制
  • 确认 Nginx 被 strip、调试符号缺失
  • 自动重建缺失的 Nginx 调试符号——无需重新编译
  • 持续分析:每日与每周 Insights 报告
  • 常见问题:nginx-dbg、重新编译与分析 strip 过的二进制

自动分析 Core Dump(使用 OpenResty XRay)

  • 定位崩溃的 OpenResty/Nginx worker 进程产生的 core dump 文件
  • 在 OpenResty XRay 中启动自动(引导式)core dump 分析
  • 解读崩溃时的信号、CPU 寄存器和 C 调用栈
  • 沿着 Lua 调用栈定位到精确的崩溃代码行
  • 针对线上 core dump 的自动 Insights 报告
  • 定位崩溃的 OpenResty/Nginx worker 进程产生的 core dump 文件
  • 在 OpenResty XRay 中启动自动(引导式)core dump 分析
  • 解读崩溃时的信号、CPU 寄存器和 C 调用栈
  • 沿着 Lua 调用栈定位到精确的崩溃代码行
  • 针对线上 core dump 的自动 Insights 报告

Envoy CPU 性能分析:用火焰图定位 C++ 热路径

  • 场景:Envoy 进程 CPU 占用超 90%
  • 用 C++ 火焰图分析 Envoy CPU 消耗
  • 持续 CPU 监控与自动化报告
  • 关于 OpenResty XRay
  • FAQ:Envoy CPU 性能分析
  • 场景:Envoy 进程 CPU 占用超 90%
  • 用 C++ 火焰图分析 Envoy CPU 消耗
  • 持续 CPU 监控与自动化报告
  • 关于 OpenResty XRay
  • FAQ:Envoy CPU 性能分析

Laravel 高 CPU 使用率:连 Hello World 都把一半 CPU 花在框架引导上

  • 为什么 Laravel 即使在 hello world 应用中也会高 CPU
  • Laravel CPU 分析:三条最热代码路径
  • 自动分析与报告
  • 什么是 OpenResty XRay
  • 为什么 Laravel 即使在 hello world 应用中也会高 CPU
  • Laravel CPU 分析:三条最热代码路径
  • 自动分析与报告
  • 什么是 OpenResty XRay

Perl 进程 CPU 使用率只有 13%:off-CPU 火焰图定位阻塞的 HTTP 调用

  • 症状:请求涌入但 Perl 进程 CPU 使用率上不去
  • 用 OpenResty XRay 的 off-CPU 火焰图定位阻塞的 Perl 代码路径
  • Insights 页面中的全自动分析与报告
  • FAQ
  • 症状:请求涌入但 Perl 进程 CPU 使用率上不去
  • 用 OpenResty XRay 的 off-CPU 火焰图定位阻塞的 Perl 代码路径
  • Insights 页面中的全自动分析与报告
  • FAQ

定位 Go 应用 CPU 最热的代码路径:Prometheus 高 CPU 实例分析(OpenResty XRay)

  • 问题:高 CPU 使用率
  • 使用 OpenResty XRay 的引导式分析功能定位 CPU 最热的 Go 代码路径
  • 全自动分析与报告
  • 问题:高 CPU 使用率
  • 使用 OpenResty XRay 的引导式分析功能定位 CPU 最热的 Go 代码路径
  • 全自动分析与报告

线上定位 Perl 进程中最大的内存对象

  • 症状:top 里某个 Perl 进程内存占用过高
  • 用 OpenResty XRay 引导式分析定位最大的 Perl 对象
  • 把最大的对象追溯回源码文件
  • 用 Insights 报告自动监控 Perl 进程内存
  • 常见问题(FAQ)
  • 关于 OpenResty XRay
  • 症状:top 里某个 Perl 进程内存占用过高
  • 用 OpenResty XRay 引导式分析定位最大的 Perl 对象
  • 把最大的对象追溯回源码文件
  • 用 Insights 报告自动监控 Perl 进程内存
  • 常见问题(FAQ)
  • 关于 OpenResty XRay

Django 内存分析:逐个对象剖析运行中应用的内存占用(使用 OpenResty XRay)

  • 用 ps 找出内存占用高的 Django 进程
  • 用引导式分析剖析 Django 应用的内存使用
  • 读懂火焰图:哪个 Python 模块占用内存最多
  • 用 Insights 自动监控 Django 内存使用
  • 关于 OpenResty XRay
  • 用 ps 找出内存占用高的 Django 进程
  • 用引导式分析剖析 Django 应用的内存使用
  • 读懂火焰图:哪个 Python 模块占用内存最多
  • 用 Insights 自动监控 Django 内存使用
  • 关于 OpenResty XRay

Python 内存分析器:无需改代码定位最占内存的对象

  • 找出哪个 Python 进程最占内存
  • 用引导式分析剖析 Python 内存:定位最大的对象及其所属模块
  • 用定时报告自动监控 Python 内存占用
  • 关于 OpenResty XRay
  • 找出哪个 Python 进程最占内存
  • 用引导式分析剖析 Python 内存:定位最大的对象及其所属模块
  • 用定时报告自动监控 Python 内存占用
  • 关于 OpenResty XRay

llama.cpp CPU 占用分析:400% 的 CPU 追踪到 ggml 热点函数

  • 运行 llama.cpp 并观察到 400% 的 CPU 使用率
  • 使用 OpenResty XRay 剖析 llama.cpp 的 CPU 占用
  • 分析结果:最热的 C++ 代码路径
  • 关于 OpenResty XRay
  • 运行 llama.cpp 并观察到 400% 的 CPU 使用率
  • 使用 OpenResty XRay 剖析 llama.cpp 的 CPU 占用
  • 分析结果:最热的 C++ 代码路径
  • 关于 OpenResty XRay

Ylang 生产实战:容器追踪、栈回溯与 Core Dump 分析(第四集,全四集)

  • 透明的跨容器追踪
    • 高效的栈展开
    • 分析已终止进程(core dumps)
    • 极低的追踪开销
    • 标准 Y 语言库和工具
    • 网络过滤和控制
    • Y 语言编译器的实现
    • 操作系统支持
    • 对开源社区的贡献
    • 结论
    • 致谢
Photo by 章亦春
  • 透明的跨容器追踪
    • 高效的栈展开
    • 分析已终止进程(core dumps)
    • 极低的追踪开销
    • 标准 Y 语言库和工具
    • 网络过滤和控制
    • Y 语言编译器的实现
    • 操作系统支持
    • 对开源社区的贡献
    • 结论
    • 致谢

Go 服务 CPU 使用率异常低:对运行中进程做 off-CPU 分析定位阻塞根因

  • 症状:请求涌入,Go 服务 CPU 使用率却上不去
  • 用 OpenResty XRay 对运行中的 Go 进程做 off-CPU 分析
  • 根因:一行阻塞的 shell 命令调用
  • 全自动分析与日报、周报
  • 症状:请求涌入,Go 服务 CPU 使用率却上不去
  • 用 OpenResty XRay 对运行中的 Go 进程做 off-CPU 分析
  • 根因:一行阻塞的 shell 命令调用
  • 全自动分析与日报、周报

Ylang:正则表达式、完整控制流与透明调试符号处理(第三集,全四集)

  • Y 语言的语法(接上文)
    • 字符串
    • 内置的正则表达式支持
    • 完整控制流支持
    • 浮点数支持
    • 与开源工具链的比较
  • 清晰的调试符号方式
    • 调试符号:无运行期系统开销
    • 集中的软件包数据库
    • 模糊匹配调试符号
Photo by 章亦春
  • Y 语言的语法(接上文)
    • 字符串
    • 内置的正则表达式支持
    • 完整控制流支持
    • 浮点数支持
    • 与开源工具链的比较
  • 清晰的调试符号方式
    • 调试符号:无运行期系统开销
    • 集中的软件包数据库
    • 模糊匹配调试符号

Python 进程 CPU 使用率只有 8%:off-CPU 分析定位阻塞的 subprocess.run 调用

  • 症状:请求涌入但 Python 进程 CPU 使用率上不去
  • 用 OpenResty XRay 的引导式分析定位阻塞的 Python 代码路径
  • Insights 页面中的全自动分析与报告
  • FAQ
  • 症状:请求涌入但 Python 进程 CPU 使用率上不去
  • 用 OpenResty XRay 的引导式分析定位阻塞的 Python 代码路径
  • Insights 页面中的全自动分析与报告
  • FAQ

在线上 Kong 服务进程中实时统计 CPU 和内存用量最高的插件(使用 OpenResty XRay)

  • 服务器进程中所有 Kong 插件的 CPU 使用情况
  • 服务器进程中所有 Kong 插件的内存使用情况
  • 服务器的额外负担
  • 下一步是什么?
Photo by 章亦春
  • 服务器进程中所有 Kong 插件的 CPU 使用情况
  • 服务器进程中所有 Kong 插件的内存使用情况
  • 服务器的额外负担
  • 下一步是什么?

Ylang: 适用于 eBPF、SystemTap、GDB 等框架的动态追踪语言(第一集,全四集)

  • 什么是动态追踪
  • 为什么命名为 “Y”
  • Ylang 入门
  • 动态追踪后端:eBPF+、Stap+、GDB 和 ODB
  • 为什么动态追踪需要一个统一的前端语言
  • Ylang 语法:真正兼容 C
  • 常见问题
Photo by 章亦春
  • 什么是动态追踪
  • 为什么命名为 “Y”
  • Ylang 入门
  • 动态追踪后端:eBPF+、Stap+、GDB 和 ODB
  • 为什么动态追踪需要一个统一的前端语言
  • Ylang 语法:真正兼容 C
  • 常见问题
联系我们

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

成功发送消息!

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