← Back
Openresty-Xray

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 語言編譯器的實現
    • 作業系統支援
    • 對開源社群的貢獻
    • 結論
    • 致謝

線上快速定位阻塞執行緒的 Go 程式碼路徑(使用 OpenResty XRay)

  • 問題: CPU 使用率上不去
  • 使用 OpenResty XRay 的引導式分析功能定位最佔有 off-CPU 時間的 Go 程式碼路徑
  • 全自動分析與報告
  • 問題: CPU 使用率上不去
  • 使用 OpenResty XRay 的引導式分析功能定位最佔有 off-CPU 時間的 Go 程式碼路徑
  • 全自動分析與報告

Ylang: 適用於 eBPF、Stap+、GDB 等框架的通用語言(第三集,全四集)

  • 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、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 級別火焰圖

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