RAM緩衝區大小持續增長

自從最近的韌體更新後,我遇到了 RAM 問題,最終會消耗 100% 的記憶體,並開始將正常程序的 RAM 使用量放入 Swap(交換空間)。

需要重啟系統才能解決這個問題,重啟後會恢復到「正常」使用狀態。

詳細資訊:
韌體:QTS 5.2.9.3410
NAS:TS-673A
記憶體:32GB ECC
網路設定:1 個埠,未標記 + 2 個 VLAN
正常程序的記憶體使用量:7 至 16 GB 之間
NAS 用途:Containerstation 主機 → Nextcloud、Plex、Nginx、HomeAssistant(約 20 個容器)

測試內容:
減少執行中的程序以維持穩定的 7GB 使用量
持續追蹤記憶體使用狀況

觀察結果:
開機後不久:7GB 使用,2GB buffer(緩衝區),17GB cache(快取),6GB 可用,0GB swap 使用
開機 4 小時後:7GB 使用,3GB buffer,16.5GB cache,4.5GB 可用,0GB swap 使用
16 小時後:9.8GB 使用,16.5GB buffer,5GB cache,0.7GB 可用,0.5GB swap 使用

看起來 buffer(緩衝區)會隨著時間增加而不會減少。它的空間會先從 cache(快取)中扣除,接著才會把正常的 RAM 空間移到 Swap。

有人知道是什麼原因會導致 buffer(緩衝區)大小持續增加嗎?

雖然你提供了硬體和韌體的細節,但如果你能說明你正在執行哪些程序,以及這台 NAS 所扮演的角色,會更有幫助。
這些設備非常多功能,任何情況都有可能發生。
QBoost 會釋放記憶體嗎?

這些數據看起來沒問題,至少是正常的。:+1:

你可能已經知道這個網站,但給還不知道的人參考:

你好,

沒有。你用的是哪個應用程式?

如果你使用 QVR Pro(自 QTS 5.2.x 起)只會使用快取。

我的 TS-264 QTS 5.2.9.3451 緩衝區沒有問題。

這次重開機是為了 QTS 更新。

17:00 QVR Pro 啟動

抱歉,我已經把它加到原始貼文裡了。給你參考:「NAS 使用情境:Containerstation 主機 → Nextcloud、Plex、Nginx、HomeAssistant(約 20 個容器)」

之前它也有執行 GPU 密集型容器,例如 Viseron(NVR)、CodeProjectAI、Wyoming-Whisper & Piper。這些我已經遷移出去,因為它們最先受到 Swap 使用的影響。

據我所知,目前沒有使用 QBoost,因為沒有安裝 SSD。
(編輯:我剛剛檢查了,QBoost 沒有安裝,我會再看看能不能在那裡做些什麼設定)

在快取方面,這是我所預期的,但緩衝區的使用情況卻不是如此。同樣地,它開始大量使用交換空間(Swap),甚至導致系統變慢。

記憶體不足殺手(out-of-memory killer)會被觸發嗎?

當(消耗更多 Swap 時),它會開始終止在容器中運行的進程。而緩衝區依然維持在高位。

目前使用 QBoost,情況如下:

這至少避免了需要重新啟動。我會在這個週末持續觀察,並確認問題是否再次發生。

我會建議你開一個支援單。你可能有一些殭屍程序(zombie processes)正在運行,沒有正確關閉,佔用了記憶體(RAM)。我以前也看過 CPU 時間出現過這種情況。我也遇過像 Hybrid Mount 這類應用程式開始佔用大量記憶體的狀況。

這裡有個建議,你甚至可以在開支援單之前先嘗試。建議你在 SSH shell 裡安裝 HTOP。這是一個比 TOP 工具更強大的版本,透過它你可以排序哪些程序佔用了大量記憶體。

找出這些程序或應用程式。然後在 App Center 裡停止這些程序。每一個都要這樣做。等所有程序都停止後,重啟 NAS。然後再逐一啟動每個應用程式。之後,監控你的記憶體使用情況,看看是否有改善。如果還是沒改善,再開支援單。

我會這樣建議,是因為單純重啟只會讓那些佔用資源的失控程序重新啟動。單靠重啟並不會重設它們。你需要先停止它們,然後再重啟。

QNAP 在你更新韌體(firmware)前也會提醒你,如果 NAS 已經運行很久,請先重啟。我建議你要重視這個提醒。我以前常常忽略這個訊息,直接更新韌體。結果 Hybrid Backup Sync 開始瘋狂佔用 CPU 時間。一開始看起來沒問題,重啟後一陣子又出現問題。後來和 QNAP 工程師合作,才發現先停止應用程式再重啟這個方法。這樣就解決了問題。這一切都是在一次韌體更新後發生的。

所以現在我都會在更新韌體前先重啟。雖然這樣整個流程會變久,但似乎可以避免奇怪的問題發生。

我會請我們的內部團隊嘗試重現這個問題。另外,請問您最近有安裝任何新軟體嗎?

我想我又找到了一個線索給你。

安裝了 QBoost 後,系統行為似乎變得更穩定,buffer(緩衝區)減少,現在由快取(cache)接管了。
但在此之前,swap(交換空間)使用量有些微增加。swap 幾乎從不減少,經歷了以下變化:

第 0 和 1 天:0MB

第 2 天:150MB

第 3 天:250MB

第 4 天:500MB

第 5 天:800MB

第 6 天:1400MB

第 7 天:1700MB

第 8 天:1600MB

目前狀態是在第 8 天。

如你所見,buffer 仍然很大,我現在認為我明白是什麼導致它增長:USB 磁碟的使用。

自從一次韌體(FW)更新後,我無法連接遠端 QNap 進行 HBS,作為臨時措施,我接上了一個 USB 硬碟來備份。
這是在這套系統進行韌體更新前幾天發生的(千萬不要在沒有妥善備份的情況下更新)。

NVR 軟體讓情況變得更糟,因為它也在使用自己的外接 SSD(以減少內部 HDD 的讀寫動作)。自從將 NVR 移走後,系統只在今天當機過一次,但時間很短。當時 swap 使用量與圖中顯示的差不多,不過 UI 無法載入來顯示 Cache/Buffer 的平衡。
有沒有什麼指令可以在命令列下顯示這兩者的平衡?這樣我就可以透過 SSH 登入來檢查兩者的狀態,因為我懷疑 buffer 佔用所有應用程式和快取的空間可能會導致這類問題。

找到了系統變慢的原因,結合其他問題,原因大概也就一目了然了:

快照(Snapshot)已啟用,但實際上它們並沒有啟用。

在英文論壇發佈截圖前,最好先把你的介面語言從荷蘭語切換成英語。

說得好。

這個問題還有發生嗎?如果有,請提交支援請求,我們的支援團隊很樂意進一步協助您。謝謝!