在线上 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
  • 过去
  • 现在
  • 将来

OpenResty XRay 分析和解决 B 站重大线上事故

  • 事故描述
  • 事故分析过程
  • 事故后续修复和加固
  • OpenResty XRay 产品和服务
Photo by OpenResty Inc.
  • 事故描述
  • 事故分析过程
  • 事故后续修复和加固
  • OpenResty XRay 产品和服务

内存减少 60%,OpenResty XRay 精准定位问题代码,快速完成修复上线

  • worker 进程内存占用高
  • 分析过程
  • worker 进程内存不释放的疑问
  • worker 进程内存占用高
  • 分析过程
  • worker 进程内存不释放的疑问

Lua 级别 CPU 火焰图简介

  • 什么是火焰图
  • 简单的 Lua 样例
  • 复杂的 Lua 应用
  • 采样开销
  • 安全性
  • 兼容性
  • 其他类型的 Lua 级别火焰图
Photo by Guido Jansen
  • 什么是火焰图
  • 简单的 Lua 样例
  • 复杂的 Lua 应用
  • 采样开销
  • 安全性
  • 兼容性
  • 其他类型的 Lua 级别火焰图

OpenResty 与 Nginx 共享内存区的内存碎片问题

  • 空的共享内存区
  • 填充类似大小的条目
  • 删除奇数键
  • 删除前半部分的键
  • 缓解内存碎片
Photo by Elena Mozhvilo
  • 空的共享内存区
  • 填充类似大小的条目
  • 删除奇数键
  • 删除前半部分的键
  • 缓解内存碎片

OpenResty 和 Nginx 的共享内存区是如何消耗物理内存的

  • Slab 与内存页
  • 分配的内存不一定有消耗
  • 虚假的内存泄漏
  • HUP 重新加载
Photo by Jose G. Ortega Castro
  • Slab 与内存页
  • 分配的内存不一定有消耗
  • 虚假的内存泄漏
  • HUP 重新加载

OpenResty 和 Nginx 如何分配和管理内存

  • 系统层面
  • 应用层面
  • 传统的 Nginx 服务器
Photo by Harrison Broadbent
  • 系统层面
  • 应用层面
  • 传统的 Nginx 服务器

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