线上快速定位阻塞线程的 Go 代码路径(使用 OpenResty XRay)

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

线上快速定位 CPU 最热的 Go 代码路径(使用 OpenResty XRay)

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

Ylang: 适用于 eBPF、Stap+、GDB 等框架的通用语言(第三集,全四集)

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

Ylang:适用于 eBPF、Stap+、GDB 等框架的通用语言(第二集,全四集)

  • 语言语法(接上文)
    • 宏拓展
    • 追踪者与被追踪者空间
    • 探针
    • 拓展变量类型
Photo by Yichun Zhang
  • 语言语法(接上文)
    • 宏拓展
    • 追踪者与被追踪者空间
    • 探针
    • 拓展变量类型

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

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

捕捉 Linux 内核追踪子系统中的两个 bug(使用 OpenResty XRay)

  • 读取用户空间内存时的内核死锁
  • 内核中 x86 断点插入的数据竞争
  • 读取用户空间内存时的内核死锁
  • 内核中 x86 断点插入的数据竞争

线上快速定位 CPU 最热的 Perl 代码路径(使用 OpenResty XRay)

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

线上快速定位 CPU 最热的 Lua 代码路径(使用 OpenResty XRay)

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

我们是如何解决了一个自定义 Kong 插件中的 Lua 异常所引起的 CPU 瓶颈的(使用 OpenResty XRay)

  • 问题:Kong 服务器中的高 CPU 使用率
  • 分析和报告
  • 结果:提高了性能,降低了 CPU 使用率
Photo by 章亦春
  • 问题:Kong 服务器中的高 CPU 使用率
  • 分析和报告
  • 结果:提高了性能,降低了 CPU 使用率

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

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

Ylang: 适用于 eBPF、Stap+、GDB 等框架的通用语言(第一集,全四集)

  • 什么是动态追踪
  • 为什么命名为 “Y”
  • 入门
  • 各种后端和运行时
  • 为什么要使用一个统一的前端语言
  • 语言的语法
  • 未完待续
Photo by 章亦春
  • 什么是动态追踪
  • 为什么命名为 “Y”
  • 入门
  • 各种后端和运行时
  • 为什么要使用一个统一的前端语言
  • 语言的语法
  • 未完待续

自动诊断线上请求的 200ms 额外延时

  • 问题
  • 分析过程
  • 全自动化的分析
  • OpenResty XRay 是什么
Photo by 章亦春
  • 问题
  • 分析过程
  • 全自动化的分析
  • OpenResty XRay 是什么

使用 OpenResty XRay 的命令行工具定位泄漏的 Lua table

  • LuaJIT 如何管理内存
  • OpenResty XRay 的命令行工具
  • 泄漏示例
  • 分析过程
  • lj-gco-ref 分析器
  • 全自动分析
  • LuaJIT 如何管理内存
  • OpenResty XRay 的命令行工具
  • 泄漏示例
  • 分析过程
  • lj-gco-ref 分析器
  • 全自动分析

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

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

在微软 Azure 云上安装自主部署版 OpenResty XRay

  • 创建订阅和资源组
  • 创建 Azure Kubernetes 服务
  • 准备环境变量
  • 通过命令行登录 Azure
  • 为 Kubernetes 创建 namespace 和 secret
  • 创建 Azure Disk
  • 更新持久化卷的配置文件
  • 更新 kubernetes 的配置文件
  • 创建持久化卷
  • 部署 Kubernetes 服务
  • 配置应用网关
  • 创建订阅和资源组
  • 创建 Azure Kubernetes 服务
  • 准备环境变量
  • 通过命令行登录 Azure
  • 为 Kubernetes 创建 namespace 和 secret
  • 创建 Azure Disk
  • 更新持久化卷的配置文件
  • 更新 kubernetes 的配置文件
  • 创建持久化卷
  • 部署 Kubernetes 服务
  • 配置应用网关

当 Lua IPC 管道阻塞 OpenResty 或 Nginx 事件循环的时候

  • 问题
  • 分析
  • 解决方案
  • 结果
Photo by Yichun Zhang
  • 问题
  • 分析
  • 解决方案
  • 结果

优化超大 Nginx 配置导致的内存碎片

  • 挑战
  • 分析
  • 解决方案
  • 结果
Photo by Yichun Zhang
  • 挑战
  • 分析
  • 解决方案
  • 结果

QCon 北京 2023 大会上关于深度分析和诊断 K8s 容器应用的演讲

本周我受邀在 QCon 北京 2023 大会上作了一次远程分享。
Photo by Yichun Zhang
本周我受邀在 QCon 北京 2023 大会上作了一次远程分享。

新的关于 OpenResty XRay 的常见问答

我们最近为 OpenResty XRay 产品准备了一篇《常见问答》文档
Photo by Yichun Zhang
我们最近为 OpenResty XRay 产品准备了一篇《常见问答》文档

OpenResty XRay 的自动分析报告

  • 过去
  • 现在
  • 将来
Photo by Yichun Zhang
  • 过去
  • 现在
  • 将来
联系我们

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

成功发送消息!

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