← Back
Case-Study

一次無法重啟的 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 差異的工程性覆盤

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 帶來的排障新閉環
  • 總結

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 如何將 Nginx 記憶體踩踏問題分析得明明白白

  • 案例背景:日誌無法解釋的 Nginx worker 程序頻繁崩潰
  • 分析錄製檔案:把崩潰過程回放回“第一現場”
  • 根因:Nginx 連線生命週期中的 Use-After-Free
  • 常見問題(FAQ)
  • 案例背景:日誌無法解釋的 Nginx worker 程序頻繁崩潰
  • 分析錄製檔案:把崩潰過程回放回“第一現場”
  • 根因:Nginx 連線生命週期中的 Use-After-Free
  • 常見問題(FAQ)

追蹤 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 幾分鐘內的發現
  • 常見問題

定位洩漏的 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 記憶體洩漏分析
聯絡我們

很樂意聽到您的反饋,請與我們聯絡 👋

成功傳送訊息!

我們的專家團隊將在 24 小時之內與您聯絡。
x