自從最近的韌體更新後,我遇到了 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 會釋放記憶體嗎?
你好,
沒有。你用的是哪個應用程式?
如果你使用 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)已啟用,但實際上它們並沒有啟用。
在英文論壇發佈截圖前,最好先把你的介面語言從荷蘭語切換成英語。
這個問題還有發生嗎?如果有,請提交支援請求,我們的支援團隊很樂意進一步協助您。謝謝!