精选文章

Photo by Philip Brown

动态追踪技术漫谈

动态追踪技术漫谈

Photo by OpenResty Inc.

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

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

Photo by Yichun Zhang

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

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

Photo by Yichun Zhang

OpenResty XRay 的自动分析报告

OpenResty XRay 的自动分析报告

Photo by Guido Jansen

Lua 级别 CPU 火焰图简介

Lua 级别 CPU 火焰图简介

Photo by Elena Mozhvilo

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

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

Photo by Jose G. Ortega Castro

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

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

Photo by Harrison Broadbent

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

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

借助 OpenResty XRay,显著优化性能,CPU 使用率立减  90%
借助 OpenResty XRay,显著优化性能,CPU 使用率立减 90%
申请免费试用

最新文章

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

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

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

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

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

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

在 OpenResty 或 Nginx 进程中追踪最慢的 PCRE 正则表达式

  • 系统环境
  • 无需猜测,缩小问题范围
  • 限制 PCRE 的执行开销
  • 非回溯正则表达式引擎
  • Lua 的内置模式
  • 追踪容器内的应用
  • 工具的实现方式
  • 工具的开销
  • 系统环境
  • 无需猜测,缩小问题范围
  • 限制 PCRE 的执行开销
  • 非回溯正则表达式引擎
  • Lua 的内置模式
  • 追踪容器内的应用
  • 工具的实现方式
  • 工具的开销

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

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

Lua 级别 CPU 火焰图简介

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

深入动态追踪技术:OpenResty XRay 如何彻底改变问题诊断方式

  • 动态追踪:解决复杂系统问题的利器
  • 为什么选择 OpenResty XRay?
  • 产品聚焦:XRay 在真实场景中的应用案例
  • 常见误区与 FAQ
  • 动态追踪:解决复杂系统问题的利器
  • 为什么选择 OpenResty XRay?
  • 产品聚焦:XRay 在真实场景中的应用案例
  • 常见误区与 FAQ

日志、埋点、A/B 测试都不够用了?你该了解“动态追踪”

  • 传统方法 vs 动态追踪:效率与控制力的革命
  • 动态追踪:系统的“透视眼”
  • 从火焰图到系统全景
  • 为什么选择 OpenResty XRay?
  • 动态追踪的新边界
  • 传统方法 vs 动态追踪:效率与控制力的革命
  • 动态追踪:系统的“透视眼”
  • 从火焰图到系统全景
  • 为什么选择 OpenResty XRay?
  • 动态追踪的新边界

可观测性的下一站:OpenResty XRay 如何重新定义问题排查

  • 现代软件架构下的问题排查为何越来越难?
  • 趋势洞察:可观测技术的未来
  • 动态追踪技术是如何打通抽象层的
  • 实战案例:在线上 Kong 服务中实时统计插件资源消耗
  • 现代软件架构下的问题排查为何越来越难?
  • 趋势洞察:可观测技术的未来
  • 动态追踪技术是如何打通抽象层的
  • 实战案例:在线上 Kong 服务中实时统计插件资源消耗

OpenResty XRay 助力脚本性能提升 44 倍

  • 真实案例:从发现瓶颈到显著提速
  • OpenResty XRay 的工作原理
  • 优化效果
  • 支适用场景与实践建议
Photo by 章亦春
  • 真实案例:从发现瓶颈到显著提速
  • OpenResty XRay 的工作原理
  • 优化效果
  • 支适用场景与实践建议

OpenResty XRay 的 Web 控制台快速导览

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

OpenResty XRay 移动端应用介绍

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

在 OpenResty 或 Nginx 进程中追踪最慢的 PCRE 正则表达式

  • 系统环境
  • 无需猜测,缩小问题范围
  • 限制 PCRE 的执行开销
  • 非回溯正则表达式引擎
  • Lua 的内置模式
  • 追踪容器内的应用
  • 工具的实现方式
  • 工具的开销
  • 系统环境
  • 无需猜测,缩小问题范围
  • 限制 PCRE 的执行开销
  • 非回溯正则表达式引擎
  • Lua 的内置模式
  • 追踪容器内的应用
  • 工具的实现方式
  • 工具的开销

动态追踪技术漫谈

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

在 CentOs 上安装 OpenResty XRay 的 Agent(使用 RPM 包仓库)

  • 登录控制台
  • 通过 RPM 包安装 Agent
  • 检查 Agent 状态和日志
  • 配置和检测应用程序
  • 启动分析器和查看分析结果
  • 安装另一个 Agent
  • 登录控制台
  • 通过 RPM 包安装 Agent
  • 检查 Agent 状态和日志
  • 配置和检测应用程序
  • 启动分析器和查看分析结果
  • 安装另一个 Agent

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

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

追踪 Go 应用时 OpenResty XRay 对系统性能的影响

  • 应用性能在分析器运行前的表现
  • 分析器运行时对性能的影响
  • 实际测算分析器运行对最大吞吐量与请求延时的影响
  • 应用性能在分析器运行前的表现
  • 分析器运行时对性能的影响
  • 实际测算分析器运行对最大吞吐量与请求延时的影响

追踪 Python 应用时 OpenResty XRay 对系统性能的影响(使用OpenResty XRay)

  • 应用性能在分析器运行前的表现
  • 分析器运行时对性能的影响
  • 实际测算分析器运行对最大吞吐量与请求延时的影响
  • 应用性能在分析器运行前的表现
  • 分析器运行时对性能的影响
  • 实际测算分析器运行对最大吞吐量与请求延时的影响

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

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

分析线上 Java 应用的 CPU,off-CPU 和硬盘 IO 使用情况(使用 OpenResty XRay)

  • Java 应用中的高 CPU 使用率问题
  • Java 应用中的 CPU 阻塞问题
  • Java 应用中的高硬盘 IO 问题
  • 支持的 Java 版本和操作系统
  • 性能影响和额外负担
  • 下一步的计划
Photo by 章亦春
  • Java 应用中的高 CPU 使用率问题
  • Java 应用中的 CPU 阻塞问题
  • Java 应用中的高硬盘 IO 问题
  • 支持的 Java 版本和操作系统
  • 性能影响和额外负担
  • 下一步的计划

追踪 Perl 应用时 OpenResty XRay 对系统性能的影响

  • 应用性能在分析器运行前的表现
  • 分析器运行时对性能的影响
  • 实际测算分析器运行对最大吞吐量与请求延时的影响
  • 应用性能在分析器运行前的表现
  • 分析器运行时对性能的影响
  • 实际测算分析器运行对最大吞吐量与请求延时的影响

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Lua 级别 CPU 火焰图简介

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

LuaJIT GC64 模式

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

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

成功发送消息!

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