前言

如果你也是 Proxmox VE 的長期使用者,大概都有過這樣的經驗:打開 Proxmox 的 Web 管理介面,剛開始一切正常,記憶體佔用看起來很健康。但過了幾天、甚至幾個小時之後,那個分頁的記憶體使用量就像吹氣球一樣——從 200MB 慢慢膨脹到 1GB、2GB,甚至有人回報飆到 4GB 以上。

這個問題從 2013 年就被回報過,到現在 2026 年還沒被官方正式修復。今天我們就來仔細聊聊這個「長青問題」,以及目前能找到哪些解法。

- 廣告 -

問題全貌:一個從 2013 年延續至今的記憶體黑洞

原始回報(2021 年)

Proxmox 官方論壇上有一個標題為「Proxmox web UI memory leak - starts at 200MB, gradually increases to gigabytes」的討論串(連結 ),由使用者 marcosscriven 於 2021 年 12 月提出。

他的回報重點如下:

  • 瀏覽器影響範圍:在 Safari 和 Firefox 上都觀察到同樣的問題
  • 作業系統:macOS 和 Windows 都有發生
  • 增長幅度:從初始約 200MB,幾天內增長到超過 1GB
  • 最嚴重的頁面:Console 和 Summary page 是重災區
  • 使用情境:喜歡把這個分頁固定在瀏覽器上,方便隨時監控

Proxmox 的官方員工 dcsapak 回應時,詢問了具體是哪個頁面,並建議用瀏覽器的 DevTools(F12)做 memory allocation profile 來分析記憶體洩漏的具體位置。

Firefox 使用者的災情報告

另一位使用者 rdmitry0911 在 2024 年 3 月補充了一個更驚人的數據:

在 Firefox 上,只開了 Proxmox 的分頁,3 個小時內從 200MB 飆到 2.5GB。但他同時提到,用 Google Chrome 開啟同一個 Proxmox 介面,就沒有這個問題。

這個發現非常關鍵——它暗示了問題可能不是 Proxmox 後端造成的,而是跟特定瀏覽器的 JavaScript 引擎或渲染機制有關。

最新的災情(2025-2026)

到了 2025 年,這個問題依然活躍:

  • Ember(2025/04):在 disks 頁面也觀察到了同樣的記憶體增長
  • VivienM(2025/08):確認 Chrome 上正常,推斷是 Firefox 特定問題
  • ReenigneArcher(2026/06 最新回覆):Firefox 記憶體飆到 4GB+ 依然發生

更早的歷史(2013 年)

這個問題其實可以追溯到 Proxmox 2.2 時代。2013 年 2 月,使用者 mir 在另一個論壇 thread 中回報:

  • Chrome 24 上,25 分鐘內從 120MB 飆到 800MB+
  • 登入後才會開始洩漏(未登入時維持在 91MB)
  • 推測跟 ExtJS frameworkrickshaw 圖表庫 有關

從 2013 到 2026,跨越了 13 年,這個記憶體洩漏問題依然存在于 Proxmox 的 Web UI 中。

根因分析:到底是什麼在洩漏?

ExtJS 框架的圖表元件

Proxmox 的 Web UI 基於 ExtJS 框架開發,這個框架負責了整個管理介面的渲染。其中最可能的洩漏來源是即時監控圖表(CPU、記憶體、網路、磁碟 I/O 等)。

這些圖表會持續從後端 API 輪詢(polling)最新的系統狀態資料,並在前端不斷更新 DOM 元素。如果圖表元件在更新時沒有正確清理舊的 DOM 節點或事件監聽器,就會造成記憶體洩漏。

為什麼 Firefox 特別嚴重?

多位使用者一致反映 Chrome 沒有這個問題。可能的原因包括:

  1. V8 引擎的記憶體回收機制更積極,能更有效地回收不再使用的 DOM 元素
  2. Firefox 的 Gecko 引擎在處理 ExtJS 的某些特定 DOM 操作時,可能有未最佳化的記憶體管理
  3. Proxmox 的圖表渲染(可能基於 Canvas 或 SVG)在 Firefox 上有已知的效能問題

Console 頁面是重災區

使用者回報,開啟 VM 或 Container 的 Console(終端機)頁面時,記憶體增長最為明顯。這跟 VNC/noVNC 的渲染機制有關——Console 頁面需要持續接收並渲染來自虛擬機端的文字輸出,如果前端沒有正確地截斷過長的輸出歷史,記憶體就會持續增長。

目前找到的解法

解法一:改用 Chrome / Chromium(最推薦)

這是目前最簡單、最有效的解法。多位使用者回報,在 Chrome 或 Chromium-based 瀏覽器(Edge、Brave 等)上,Proxmox Web UI 的記憶體使用量非常穩定,不會有明顯增長。

操作方式:安裝 Chrome 或 Edge,用這個瀏覽器開啟 Proxmox Web 管理介面即可。

解法二:定期重新整理分頁

如果你必須使用 Firefox(比如某些企業環境只部署了 Firefox),可以定期重新整理分頁來釋放記憶體:

  • 建議每 2-4 小時重新整理一次
  • 或者關閉不需要的 Console 分頁,只保留 Summary page

解法三:減少同時開啟的 Console 數量

每個開啟的 Console 分頁都會持續消耗額外記憶體。如果你同時監控多台 VM 的 Console,記憶體增長會更快。

建議做法:只在需要操作時開啟 Console,用完就關閉。

解法四:用 DevTools 做 Memory Profile

如果你想知道具體是哪些 JavaScript 物件在洩漏記憶體,可以用 Chrome DevTools 的 Memory 面板:

  1. 開啟 Chrome DevTools(F12)
  2. 切換到 Memory 標籤
  3. 點擊 Take heap snapshot
  4. 等一段時間後再拍一次
  5. 比較兩次 snapshot 之間的差異

這可以幫你找出到底是哪個元件在持續佔用記憶體。

解法五:等待 pve-manager 更新

Proxmox 的 Web UI 原始碼在 GitHub 上開源。雖然目前沒有專門針對這個 memory leak 的 issue 被標記為已修復,但官方持續在更新 pve-manager。

追蹤方式:定期檢查 pve-manager 的 release notes,看是否有相關修復。

補充:PVE 6.8.12-13 Kernel 的記憶體洩漏

需要特別注意的是,Proxmox 論壇上還有一個不同的記憶體洩漏問題,發生在 kernel 層級:

  • 問題:PVE 6.8.12-13 版本的 kernel 會隨著時間持續消耗記憶體,直到系統當機
  • 解法:downgrade 到 6.8.12-11 版本即可解決
  • 狀態:這是 kernel 層級的問題,跟 Web UI 的記憶體洩漏無關

如果你遇到的是系統整體記憶體持續增長(不只是瀏覽器分頁),建議檢查一下 kernel 版本。

總結

Proxmox Web UI 的記憶體洩漏是一個從 2013 年延續至今的長青問題,已經超過 13 年還沒被官方正式修復。雖然 Proxmox 的開發團隊持續更新 pve-manager,但這個問題似乎因為「影響範圍有限」(只有部分使用者、特定瀏覽器)而沒有被優先處理。

目前最實在的建議

  1. Firefox 使用者:考慮安裝 Chrome 或 Edge 來開啟 Proxmox Web UI
  2. Chrome 使用者:恭喜,你目前沒有這個問題
  3. 長期開啟 Console 的使用者:用完就關,不要讓它一直開著
  4. 追求完美的使用者:用 DevTools 做 memory profile,追蹤最新 pve-manager 版本是否有修復

希望 Proxmox 團隊未來能正式修復這個問題,畢竟一個管理介面不應該因為開啟幾天就吃掉好幾個 GB 的記憶體。

- 廣告 -

參考資料