← Back
Openresty-Xray
從 AI 火焰圖分析到經驗證的修復:用 OpenResty XRay 驅動 Coding Agent 效能最佳化閉環
- 前提:目標機器上必須已安裝 OpenResty XRay
- coding agent 缺的不是智力,是執行時視野
- 三輪最佳化:336 → 4,457 → 26,028 → 29,968 RPS
- Lua + C 雙視角:為甚麼不要誤最佳化 writev
- 常見問題

- 前提:目標機器上必須已安裝 OpenResty XRay
- coding agent 缺的不是智力,是執行時視野
- 三輪最佳化:336 → 4,457 → 26,028 → 29,968 RPS
- Lua + C 雙視角:為甚麼不要誤最佳化 writev
- 常見問題
P99 延遲:為甚麼平均值會騙人,以及如何診斷最慢的 1%
- 甚麼是 P99 延遲?
- P50 vs P95 vs P99:每個百分位告訴你甚麼
- 為甚麼平均延遲會騙人
- P99 延遲為甚麼高?根因譜系
- 如何診斷高 P99 延遲
- 如何降低 P99 延遲:修你查出來的問題
- 小結
- 常見問題

- 甚麼是 P99 延遲?
- P50 vs P95 vs P99:每個百分位告訴你甚麼
- 為甚麼平均延遲會騙人
- P99 延遲為甚麼高?根因譜系
- 如何診斷高 P99 延遲
- 如何降低 P99 延遲:修你查出來的問題
- 小結
- 常見問題
火焰圖詳解:如何讀懂 CPU 火焰圖,找出燒掉 CPU 的程式碼
- 甚麼是火焰圖:定義、座標軸與四條讀圖規則
- 怎樣讀火焰圖:plateau、tower、hair 形態與 self / total
- 三個真實案例:PHP preg_match、Go regexp.MustCompile、Erlang erts_pcre_exec
- 從 100% CPU 到罪魁程式碼行:四步排查流程與技術棧路由表
- 如何為你的技術棧生成火焰圖
- Icicle graph、flame chart 與其他變體
- AI 能替你讀火焰圖嗎?

- 甚麼是火焰圖:定義、座標軸與四條讀圖規則
- 怎樣讀火焰圖:plateau、tower、hair 形態與 self / total
- 三個真實案例:PHP preg_match、Go regexp.MustCompile、Erlang erts_pcre_exec
- 從 100% CPU 到罪魁程式碼行:四步排查流程與技術棧路由表
- 如何為你的技術棧生成火焰圖
- Icicle graph、flame chart 與其他變體
- AI 能替你讀火焰圖嗎?
生產環境記憶體洩漏定位:從 RSS 飆升到原始碼行號的分層歸因
- 症狀:只升不降的記憶體曲線
- 記憶體洩漏還是記憶體佔用高?
- 四類洩漏模式的真實根因鏈
- 看起來在漲,其實不是洩漏
- 如何定位洩漏:自頂向下的分層歸因
- 傳統工具為甚麼在生產環境裡不夠用
- 常見問題

- 症狀:只升不降的記憶體曲線
- 記憶體洩漏還是記憶體佔用高?
- 四類洩漏模式的真實根因鏈
- 看起來在漲,其實不是洩漏
- 如何定位洩漏:自頂向下的分層歸因
- 傳統工具為甚麼在生產環境裡不夠用
- 常見問題
Off-CPU 分析實戰:CPU 使用率低但延遲高的四類根因與定位方法
- Off-CPU 時間是甚麼?
- 症狀:CPU 使用率上不去,請求卻在排隊
- 四類 Off-CPU 根因的真實根因鏈
- 如何量化 Off-CPU 時間
- On-CPU + Off-CPU = 掛鐘時間:全域性視角與工具生態
- 常見問題

- Off-CPU 時間是甚麼?
- 症狀:CPU 使用率上不去,請求卻在排隊
- 四類 Off-CPU 根因的真實根因鏈
- 如何量化 Off-CPU 時間
- On-CPU + Off-CPU = 掛鐘時間:全域性視角與工具生態
- 常見問題
OpenResty XRay AI 助手:讓每一份分析資料都能開口說話
- 它和“把報告貼進 ChatGPT”有甚麼區別?
- 三個典型場景
- 常見問題:AI 能讀懂火焰圖嗎?解讀可靠嗎?

- 它和“把報告貼進 ChatGPT”有甚麼區別?
- 三個典型場景
- 常見問題:AI 能讀懂火焰圖嗎?解讀可靠嗎?
OpenResty 私有庫:高效能 Lua 與 Nginx 模組
- 完整目錄
- 按場景分類
- 許可方式
- 常見問題

- 完整目錄
- 按場景分類
- 許可方式
- 常見問題
二進位制漏洞掃描:識別 Backport 補丁,消除誤報
- 為甚麼版本匹配漏洞掃描會失效:三類疊加代價
- OpenResty XRay 的二進位制漏洞掃描如何工作:證據優先模型
- 實戰案例:Rocky Linux 雙版本 OpenSSL 場景下的二進位制漏洞掃描
- 從告警疲勞到精準:可持續的漏洞掃描實踐

- 為甚麼版本匹配漏洞掃描會失效:三類疊加代價
- OpenResty XRay 的二進位制漏洞掃描如何工作:證據優先模型
- 實戰案例:Rocky Linux 雙版本 OpenSSL 場景下的二進位制漏洞掃描
- 從告警疲勞到精準:可持續的漏洞掃描實踐
不改程式碼、不重啟服務:OpenResty XRay 如何對生產環境做全棧動態追蹤
- 現有動態追蹤框架的技術權衡與生產環境侷限性
- OpenResty XRay 的動態追蹤架構級突破
- 全棧火焰圖
- 能力邊界的持續擴充套件

- 現有動態追蹤框架的技術權衡與生產環境侷限性
- OpenResty XRay 的動態追蹤架構級突破
- 全棧火焰圖
- 能力邊界的持續擴充套件
OpenResty XRay 是甚麼
- 以“零侵入”重構生產環境效能分析
- 將海量遙測資料轉化為可執行的洞察
- 適應彈性架構的無感觀測能力
- 賦能高可用架構的長期主義

- 以“零侵入”重構生產環境效能分析
- 將海量遙測資料轉化為可執行的洞察
- 適應彈性架構的無感觀測能力
- 賦能高可用架構的長期主義
一次無法重啟的 Nginx 記憶體洩漏,我們是如何在生產環境把它抓出來的
- 一次生產環境記憶體洩漏的完整解剖
- 為甚麼這類問題幾乎無解?
- 從“靠運氣”到“可預測”
- 當效能問題超越“工具”範疇”

- 一次生產環境記憶體洩漏的完整解剖
- 為甚麼這類問題幾乎無解?
- 從“靠運氣”到“可預測”
- 當效能問題超越“工具”範疇”
Nginx 反向代理 QPS 暴跌 15 倍:upstream keepalive 缺失與 -O0 編譯選項的根因定位
- Nginx 反向代理慢 15 倍,日誌卻零報錯
- 火焰圖暴露連線風暴:upstream keepalive 缺失
- 剩下的 10% 差距:基線對比指向編譯器
- -O0 除錯編譯如何吃掉我們 10% 的效能
- 15 倍 QPS 差異的工程性覆盤

- Nginx 反向代理慢 15 倍,日誌卻零報錯
- 火焰圖暴露連線風暴:upstream keepalive 缺失
- 剩下的 10% 差距:基線對比指向編譯器
- -O0 除錯編譯如何吃掉我們 10% 的效能
- 15 倍 QPS 差異的工程性覆盤
修復 OpenResty 中 LuaJIT RSS 記憶體洩漏:無需重啟即可消除 OOM Kill
- 甚麼是 LuaJIT「偽記憶體洩漏」?
- 用真實生產資料診斷問題
- 為甚麼常規修復手段無效
- LuaJIT-plus 如何在分配器層面解決
- 上線後的生產收益

- 甚麼是 LuaJIT「偽記憶體洩漏」?
- 用真實生產資料診斷問題
- 為甚麼常規修復手段無效
- LuaJIT-plus 如何在分配器層面解決
- 上線後的生產收益
我們如何在一個 500k QPS 的 OpenResty 閘道器中定位 244 毫秒的效能異常
- 被健康平均值掩蓋的延遲尖刺與 CPU 浪費
- 無需改程式碼、無需重啟:OpenResty 延遲問題排查
- 最佳化結果:延遲毛刺消除,CPU 使用率下降 30%
- 常見問題

- 被健康平均值掩蓋的延遲尖刺與 CPU 浪費
- 無需改程式碼、無需重啟:OpenResty 延遲問題排查
- 最佳化結果:延遲毛刺消除,CPU 使用率下降 30%
- 常見問題
如何在生產環境中定位 Java 記憶體洩漏——無需堆轉儲、無需重啟
- 為甚麼多次 Full GC 後堆記憶體仍未回落
- 如何在不匯出堆轉儲的情況下定位生產環境的 Java 記憶體洩漏
- 如何定位 Java 記憶體洩漏:一套可複用的三步法
- 為甚麼用 OpenResty XRay 定位 Java 記憶體洩漏
- 常見問題

- 為甚麼多次 Full GC 後堆記憶體仍未回落
- 如何在不匯出堆轉儲的情況下定位生產環境的 Java 記憶體洩漏
- 如何定位 Java 記憶體洩漏:一套可複用的三步法
- 為甚麼用 OpenResty XRay 定位 Java 記憶體洩漏
- 常見問題
當”黑盒”外掛吃掉 45% CPU,我們如何在無原始碼情況下定位到 Lua 第 93 行
- 當 perf 遇到“黑盒”
- 從取樣到全棧動態追蹤
- 拿到證據鏈
- 從“發生了甚麼”到“為甚麼”

- 當 perf 遇到“黑盒”
- 從取樣到全棧動態追蹤
- 拿到證據鏈
- 從“發生了甚麼”到“為甚麼”
Gzip CPU 佔用過高的根因:壓縮級別 6 吃掉了 54% 的 CPU
- Gzip 壓縮如何在生產環境中吃掉了 54% 的 CPU
- Gzip CPU 佔用為何如此之高:配置級根因診斷
- 量化 Gzip 與 Brotli 的 CPU 開銷
- 從憑感覺到資料驅動的壓縮調優

- Gzip 壓縮如何在生產環境中吃掉了 54% 的 CPU
- Gzip CPU 佔用為何如此之高:配置級根因診斷
- 量化 Gzip 與 Brotli 的 CPU 開銷
- 從憑感覺到資料驅動的壓縮調優
Nginx C++ 模組記憶體洩漏:生產環境不重啟定位根因
- 生產環境難題:無法用 GDB 除錯的 C++ 模組記憶體洩漏
- 火焰圖如何鎖定 ngx_dubbo_module 中的洩漏函式
- 從被動應對到主動賦能:XRay 帶來的排障新閉環
- 總結

- 生產環境難題:無法用 GDB 除錯的 C++ 模組記憶體洩漏
- 火焰圖如何鎖定 ngx_dubbo_module 中的洩漏函式
- 從被動應對到主動賦能:XRay 帶來的排障新閉環
- 總結
無侵入式 Java 探針:生產環境無 Java Agent 捕獲方法引數
- 為甚麼無侵入式 Java 探針在生產環境很重要
- 實戰演示:在生產環境捕獲 Java 方法引數
- OpenResty XRay 與常見 Java Profiler 的差異
- 常見問題

- 為甚麼無侵入式 Java 探針在生產環境很重要
- 實戰演示:在生產環境捕獲 Java 方法引數
- OpenResty XRay 與常見 Java Profiler 的差異
- 常見問題
自動根因分析:OpenResty XRay 如何將故障精確定位到程式碼行
- 為甚麼“更多可觀測性資料”不等於“更快的根因分析”
- XRay 的自動根因分析與傳統監控有何不同?
- 自動根因分析實戰:三個生產環境案例
- 常見問題 FAQ

- 為甚麼“更多可觀測性資料”不等於“更快的根因分析”
- XRay 的自動根因分析與傳統監控有何不同?
- 自動根因分析實戰:三個生產環境案例
- 常見問題 FAQ
Perl 記憶體洩漏排查案例:數 GB 降至 60MB,一張火焰圖定位根因
- 精準定位記憶體洩漏根因
- 顯著的最佳化成效
- 延展閱讀
- 總結

- 精準定位記憶體洩漏根因
- 顯著的最佳化成效
- 延展閱讀
- 總結
Node.js 函式探針:不改程式碼捕獲執行中函式的實參
- 為甚麼要在不修改程式碼的前提下追蹤 Node.js 函式?
- 如何不改程式碼捕獲 Node.js 函式實參
- 團隊如何在生產環境使用無侵入式 Node.js 探針

- 為甚麼要在不修改程式碼的前提下追蹤 Node.js 函式?
- 如何不改程式碼捕獲 Node.js 函式實參
- 團隊如何在生產環境使用無侵入式 Node.js 探針
Nginx Worker 程序 RPS 上不去:追蹤到 75 毫秒的事件迴圈阻塞
- 負載很高卻沒幹活:缺失 worker_cpu_affinity 導致的 CPU 爭搶
- 阻塞的 Lua IO 操作如何拖停 Nginx 事件迴圈
- 量化檔案 IO 延時:單次最高 1.5 毫秒
- Nginx 事件迴圈阻塞有多嚴重?43952 個樣本、最大 75 毫秒
- 常見問題

- 負載很高卻沒幹活:缺失 worker_cpu_affinity 導致的 CPU 爭搶
- 阻塞的 Lua IO 操作如何拖停 Nginx 事件迴圈
- 量化檔案 IO 延時:單次最高 1.5 毫秒
- Nginx 事件迴圈阻塞有多嚴重?43952 個樣本、最大 75 毫秒
- 常見問題
雙重瓶頸併發?OpenResty XRay 多維分析破解效能難題
- 整體 CPU 使用分析
- 深入模組內部分析
- 壓縮策略深度分析
- 分析結論
- 最佳化解決方案

- 整體 CPU 使用分析
- 深入模組內部分析
- 壓縮策略深度分析
- 分析結論
- 最佳化解決方案
零侵入 Node.js CPU 效能分析:火焰圖實戰
- Node.js 應用中的高 CPU 使用率問題
- Node.js 應用中的 CPU 阻塞問題
- 支援的 Node.js 版本和作業系統
- 效能影響和額外負擔
- 下一步的計劃

- Node.js 應用中的高 CPU 使用率問題
- Node.js 應用中的 CPU 阻塞問題
- 支援的 Node.js 版本和作業系統
- 效能影響和額外負擔
- 下一步的計劃
從崩潰到根因:OpenResty XRay 如何將 Nginx 記憶體踩踏問題分析得明明白白
- 案例背景:日誌無法解釋的 Nginx worker 程序頻繁崩潰
- 分析錄製檔案:把崩潰過程回放回“第一現場”
- 根因:Nginx 連線生命週期中的 Use-After-Free
- 常見問題(FAQ)

- 案例背景:日誌無法解釋的 Nginx worker 程序頻繁崩潰
- 分析錄製檔案:把崩潰過程回放回“第一現場”
- 根因:Nginx 連線生命週期中的 Use-After-Free
- 常見問題(FAQ)
UDB + OpenResty XRay:解鎖 OpenResty 應用效能之謎
- OpenResty XRay 如何協同 UDB 增效
- 實戰:使用 UDB 與 OpenResty XRay 分析 OpenResty 應用的 Lua 程式碼呼叫棧
- 時間旅行除錯的優勢

- OpenResty XRay 如何協同 UDB 增效
- 實戰:使用 UDB 與 OpenResty XRay 分析 OpenResty 應用的 Lua 程式碼呼叫棧
- 時間旅行除錯的優勢
UDB 與 OpenResty XRay 如何讓你看透 Perl 程式碼執行全過程
- UDB 是甚麼?
- 實戰:使用 OpenResty XRay 與 UDB 分析 Perl 應用的程式碼呼叫棧
- 為甚麼越來越多開發者選擇 UDB?

- UDB 是甚麼?
- 實戰:使用 OpenResty XRay 與 UDB 分析 Perl 應用的程式碼呼叫棧
- 為甚麼越來越多開發者選擇 UDB?
如何用時間旅行呼叫棧除錯 Java 檔案 I/O
- IDE 斷點和 coredump 在 Java 檔案 I/O 排查中的短板
- 從 native write() 系統呼叫重建完整的 Java 呼叫棧
- 用時間旅行回放一步步除錯 Java 檔案 I/O
- 常見問題

- IDE 斷點和 coredump 在 Java 檔案 I/O 排查中的短板
- 從 native write() 系統呼叫重建完整的 Java 呼叫棧
- 用時間旅行回放一步步除錯 Java 檔案 I/O
- 常見問題
結合 UDB 的時間旅行功能,揭秘 Python 程式碼執行過程
- UDB 在 Python 除錯中的獨特價值
- 結合 OpenResty XRay 增強除錯能力
- 實戰案例:分析 Python 網路請求的呼叫棧
- 總結

- UDB 在 Python 除錯中的獨特價值
- 結合 OpenResty XRay 增強除錯能力
- 實戰案例:分析 Python 網路請求的呼叫棧
- 總結
追蹤 OpenResty 中 LRU 快取引發的記憶體洩漏 —— 根因竟是快取的 SSL 證書
- 為甚麼一個低流量的 OpenResty 應用會持續洩漏記憶體
- 一步步追蹤 LRU 快取記憶體洩漏的完整過程
- 最終結果:從無限增長到記憶體平穩

- 為甚麼一個低流量的 OpenResty 應用會持續洩漏記憶體
- 一步步追蹤 LRU 快取記憶體洩漏的完整過程
- 最終結果:從無限增長到記憶體平穩
Nginx Worker CPU 佔用不均:定位未啟用 reuseport 與 cjson 解析瓶頸
- 症狀:部分 Nginx Worker 程序 CPU 打滿,其餘接近空閒
- OpenResty XRay 如何定位根因
- 修復:三項最佳化與各自的實測收益
- 總結:OpenResty XRay 幾分鐘內的發現
- 常見問題

- 症狀:部分 Nginx Worker 程序 CPU 打滿,其餘接近空閒
- OpenResty XRay 如何定位根因
- 修復:三項最佳化與各自的實測收益
- 總結:OpenResty XRay 幾分鐘內的發現
- 常見問題
動態追蹤的瑞士軍刀:Y 語言如何讓動態追蹤不再複雜
- 行業痛點:為甚麼我們迫切需要一門全新的追蹤語言?
- 技術硬實力:Y 語言憑甚麼敢說“革命性”?
- Y 語言語法:熟悉的 C,更強大的追蹤能力
- 殺手級應用場景:解決傳統工具無法解決的問題
- 全平臺支援:沒有 Y 語言到不了的地方

- 行業痛點:為甚麼我們迫切需要一門全新的追蹤語言?
- 技術硬實力:Y 語言憑甚麼敢說“革命性”?
- Y 語言語法:熟悉的 C,更強大的追蹤能力
- 殺手級應用場景:解決傳統工具無法解決的問題
- 全平臺支援:沒有 Y 語言到不了的地方
OpenResty XRay 重要突破:無侵入分析 Java 應用記憶體與 Envoy Lua 效能
- 無需侵入,徹底洞察 Java 應用記憶體
- 首次打通 Envoy 內 Lua 效能黑盒

- 無需侵入,徹底洞察 Java 應用記憶體
- 首次打通 Envoy 內 Lua 效能黑盒
為甚麼動態追蹤才是生產環境除錯的未來
- 現代軟體中看不見的危機
- 傳統工具為何會失效?
- 故障排除的新正規化:動態追蹤
- OpenResty XRay 的獨特之處

- 現代軟體中看不見的危機
- 傳統工具為何會失效?
- 故障排除的新正規化:動態追蹤
- OpenResty XRay 的獨特之處
深入動態追蹤技術:OpenResty XRay 如何徹底改變問題診斷方式
- 動態追蹤:解決複雜系統問題的利器
- 為甚麼選擇 OpenResty XRay?
- 產品聚焦:XRay 在真實場景中的應用案例
- 常見誤區與 FAQ

- 動態追蹤:解決複雜系統問題的利器
- 為甚麼選擇 OpenResty XRay?
- 產品聚焦:XRay 在真實場景中的應用案例
- 常見誤區與 FAQ
日誌、埋點、A/B 測試都不夠用了?你該瞭解”動態追蹤”
- 傳統方法 vs 動態追蹤:效率與控制力的革命
- 動態追蹤:系統的“透視眼”
- 從火焰圖到系統全景
- 為甚麼選擇 OpenResty XRay?
- 動態追蹤的新邊界

- 傳統方法 vs 動態追蹤:效率與控制力的革命
- 動態追蹤:系統的“透視眼”
- 從火焰圖到系統全景
- 為甚麼選擇 OpenResty XRay?
- 動態追蹤的新邊界
可觀測性的下一站:OpenResty XRay 如何重新定義問題排查
- 現代軟體架構下的問題排查為何越來越難?
- 趨勢洞察:可觀測技術的未來
- 動態追蹤技術是如何打通抽象層的
- 實戰案例:線上上 Kong 服務中實時統計外掛資源消耗

- 現代軟體架構下的問題排查為何越來越難?
- 趨勢洞察:可觀測技術的未來
- 動態追蹤技術是如何打通抽象層的
- 實戰案例:線上上 Kong 服務中實時統計外掛資源消耗
為甚麼動態追蹤落地難?OpenResty XRay 如何破局?
- 動態追蹤技術的落地痛點
- OpenResty XRay:新一代動態追蹤解決方案
- 動態追蹤的未來

- 動態追蹤技術的落地痛點
- OpenResty XRay:新一代動態追蹤解決方案
- 動態追蹤的未來
從黑盒到白盒:OpenResty XRay 讓系統問題無所遁形
- OpenResty XRay:黑盒變白盒的動態追蹤利器
- 全方位多角度的分析能力
- 實際案例分享
- 產品願景

- OpenResty XRay:黑盒變白盒的動態追蹤利器
- 全方位多角度的分析能力
- 實際案例分享
- 產品願景
OpenResty XRay 助力 LLVM clang 效能最佳化實踐
- 甚麼是 LLVM/clang
- OpenResty XRay 分析過程
- 最佳化實施與成果

- 甚麼是 LLVM/clang
- OpenResty XRay 分析過程
- 最佳化實施與成果
自我最佳化:OpenResty XRay 的效能蛻變
- 顯著的最佳化成果
- Ylang 語言:動態追蹤的理想工具
- 技術協同的典範

- 顯著的最佳化成果
- Ylang 語言:動態追蹤的理想工具
- 技術協同的典範
OpenResty XRay 助力指令碼效能提升 44 倍
- 真實案例:從發現瓶頸到顯著提速
- OpenResty XRay 的工作原理
- 最佳化效果
- 支適用場景與實踐建議

- 真實案例:從發現瓶頸到顯著提速
- OpenResty XRay 的工作原理
- 最佳化效果
- 支適用場景與實踐建議
跨介質資料結構漂移:OpenResty XRay 助力效能提升 20 倍
- 效能挑戰與突破
- 20 倍效能提升的實際意義
- 未來展望

- 效能挑戰與突破
- 20 倍效能提升的實際意義
- 未來展望
