← Back
Openresty-Xray

定位泄漏的 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
  • 真正的非侵入式追踪

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

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

Nginx 正则性能:用动态追踪定位最慢的正则模式

  • 前提条件与环境
  • 用 CPU 火焰图定位慢正则
  • 正则优化后的性能对比
  • 用 lua_regex_match_limit 限制 PCRE 回溯
  • 非回溯引擎:RE2 与 OpenResty Regex
  • Lua 内置模式作为正则替代
  • 在 Docker 和 Kubernetes 中追踪正则性能
  • 动态追踪工具的实现原理
  • 工具开销:非采样时为零
  • FAQ:Nginx 正则性能
  • 前提条件与环境
  • 用 CPU 火焰图定位慢正则
  • 正则优化后的性能对比
  • 用 lua_regex_match_limit 限制 PCRE 回溯
  • 非回溯引擎:RE2 与 OpenResty Regex
  • Lua 内置模式作为正则替代
  • 在 Docker 和 Kubernetes 中追踪正则性能
  • 动态追踪工具的实现原理
  • 工具开销:非采样时为零
  • FAQ:Nginx 正则性能

分析 OpenResty 或 Nginx 中最耗 CPU 的请求

  • 系统环境
  • 最耗 CPU 的请求主机名
  • 最耗 CPU 的请求 URI
  • 深入挖掘
  • 直接在 Web 控制台中运行
  • 追踪容器内的应用
  • 工具的实现方式
  • 工具的开销
Photo by Yichun Zhang
  • 系统环境
  • 最耗 CPU 的请求主机名
  • 最耗 CPU 的请求 URI
  • 深入挖掘
  • 直接在 Web 控制台中运行
  • 追踪容器内的应用
  • 工具的实现方式
  • 工具的开销

Lua CPU 火焰图实战:在线定位 LuaJIT 性能瓶颈

  • 什么是 Lua CPU 火焰图
  • 分析简单 LuaJIT 应用:验证火焰图精度
  • 生产环境实战:复杂 LuaJIT 应用
  • 采样开销
  • 生产安全性:不修改目标进程
  • 兼容性
  • 常见问题
Photo by Guido Jansen
  • 什么是 Lua CPU 火焰图
  • 分析简单 LuaJIT 应用:验证火焰图精度
  • 生产环境实战:复杂 LuaJIT 应用
  • 采样开销
  • 生产安全性:不修改目标进程
  • 兼容性
  • 常见问题

LuaJIT GC64 模式

  • 老的内存限制
    • 何时会碰到这个内存限制
    • 内存限制是每进程的
    • GC 管理的内存
    • 不由 GC 管理的内存
    • 提升 x64 模式的内存上限到 4 GB
  • 新的 GC64 模式
    • 如何开启 GC64 模式
    • 性能影响
    • 调试分析工具链
  • 老的内存限制
    • 何时会碰到这个内存限制
    • 内存限制是每进程的
    • GC 管理的内存
    • 不由 GC 管理的内存
    • 提升 x64 模式的内存上限到 4 GB
  • 新的 GC64 模式
    • 如何开启 GC64 模式
    • 性能影响
    • 调试分析工具链

动态追踪技术漫谈

  • 什么是动态追踪
  • 动态追踪的优点
  • DTrace 与 SystemTap
  • SystemTap 在生产上的应用
  • 火焰图
  • 方法论
  • 知识就是力量
  • 开源与调试符号
  • Linux 内核的支持
  • 硬件追踪
  • 死亡进程的遗骸分析
  • 传统的调试技术
  • 凌乱的调试世界
  • OpenResty XRay
Photo by Philip Brown
  • 什么是动态追踪
  • 动态追踪的优点
  • DTrace 与 SystemTap
  • SystemTap 在生产上的应用
  • 火焰图
  • 方法论
  • 知识就是力量
  • 开源与调试符号
  • Linux 内核的支持
  • 硬件追踪
  • 死亡进程的遗骸分析
  • 传统的调试技术
  • 凌乱的调试世界
  • OpenResty XRay
联系我们

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

成功发送消息!

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