← Back
Openresty-Xray

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++ 应用的进展
  • 关于调试符号
  • 结论

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 报告

线上定位 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

CPU 时间是如何耗费在 llama.cpp 程序和 LLaMA2 模型内部的(使用 OpenResty XRay)

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

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

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

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

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

线上快速定位导致 CPU 上不去的 Python 代码路径(使用 OpenResty XRay)

  • 问题: CPU 使用率上不去
  • 使用 OpenResty XRay 的引导式分析功能定位最占有 off-CPU 时间的 Python 代码路径
  • 全自动分析与报告
  • 问题: CPU 使用率上不去
  • 使用 OpenResty XRay 的引导式分析功能定位最占有 off-CPU 时间的 Python 代码路径
  • 全自动分析与报告

在线上 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
  • 常见问题

定位泄漏的 Lua table:registry / _LOADED(package.loaded)引用路径 · OpenResty XRay

  • LuaJIT 如何管理内存
  • OpenResty XRay 的命令行工具
  • 一个 Lua table 泄漏示例
  • 按 LuaJIT GC 对象类型拆解内存
  • 解读 lj-gco-ref 火焰图:registry、_LOADED、package.loaded
  • 全自动 Lua 内存泄漏分析
  • LuaJIT 如何管理内存
  • OpenResty XRay 的命令行工具
  • 一个 Lua table 泄漏示例
  • 按 LuaJIT GC 对象类型拆解内存
  • 解读 lj-gco-ref 火焰图:registry、_LOADED、package.loaded
  • 全自动 Lua 内存泄漏分析

使用 YSQL 语言对 Nginx 进程进行实时请求计数

  • 如何安装 run-ysql 工具
  • 统计实时总请求数
  • 筛选出特定的请求
  • 在 Web 控制台中使用 YSQL
  • 真正的非侵入式追踪
Photo by 章亦春
  • 如何安装 run-ysql 工具
  • 统计实时总请求数
  • 筛选出特定的请求
  • 在 Web 控制台中使用 YSQL
  • 真正的非侵入式追踪
联系我们

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

成功发送消息!

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