GVL 對 Rails 延遲的實戰觀測
- 時間
- 2026-08-08 14:50 ~ 15:20
- 講者
- Ken
- 位置
- TR514
- 共筆
議程簡介
1 個 Puma worker 開了 5 個 Puma threads,真的同時跑了 5 個嗎? 在 MRI 裡,同一瞬間真正執行 Ruby code 的,永遠只有 1 條——其他想跑 Ruby code 的,都在等 GVL。而 APM 並不能直接觀察到這個現象。 這場演講會透過實際案例,從 APM 上的異常訊號出發,建立 GVL 的正確心智模型(為什麼 I/O 釋放、CPU 不釋放,「加 threads 就變快」何時是錯的) 接著用 Vernier 在接近生產的條件下取樣,找出延遲被 GVL stall 吃掉的證據 最後用 gvl-tracing 把 threads 搶 GVL 的現場直接拍成 timeline——不只看見誰在等,更揪出是哪個 controller action 在霸佔 GVL。
講者
Ken
我是 Ken,使用 Ruby 和 ROR 開發第四年~ 喜歡改善效能和重構程式碼雖然最近都是由 AI 代勞 平時興趣是去品嚐美食並留下 Google Map 評論