TVS-882 網頁介面無法使用——「伺服器忙碌或網路已斷線!」

大家好,希望你們一切安好。

從 5.2.8.??? 以前的韌體開始(問題初現),到最新的 5.2.9.3499 版本,情況越來越嚴重,我的 TVS-882(Intel 四核心,約 2018 年,原生 16GB + 32GB 擴充)就出現以下狀況:

每當我連到 Web UI 時,無論是 Firefox(Windows 10/11、Linux Mint)或 Chrome(Win 10/11),瀏覽器都常常卡在「正在完成 TLS 握手」連我的 NAS,不論是用直接 IP 或我分配的內網域名。有時(通常等 40 到 180 秒),UI 才會載入。嘗試登入時,要嘛只花幾秒鐘就完成「帳號」到「密碼」流程,要嘛要花好幾分鐘。一旦登入流程很慢,通常從藍色「載入中……」畫面進入 UI 也要等上 3-5 分鐘。

進到 UI 後,任何操作——開 App 視窗、顯示系統資訊、顯示主控台等——都經常要等 30 多秒,操作幾乎完全無法使用。SSH 同樣瘋狂——通常還沒要求我輸入密碼連線就斷掉,即使能進去,連線最多也撐不過 45 秒。

我還是能直接接到 NAS,本機進 CLI(HDMI 螢幕+USB 鍵盤)。

現在網路為四個 port 中的兩個連線:一個是主網關,另一個專給 VM station(目前沒跑任何 VM)。我的網路設備用 Ubiquiti,負責內網 DHCP 和 DNS。NAS port 和 VM 都有正確 IP,是我在路由器那邊用固定 IP 指定(不在 DHCP 範圍內)。

不確定有沒有關係,但遠端用 VM Station 控制台連 VM 時,畫面經常直接變空白(即便已設到「中」或「low256」畫質)。

我能連 UI(或 CLI)時,看到的系統資訊都正常:

  • CPU 低於 50% 使用率
  • 記憶體低於 10% 用量
  • 網路流量僅幾 KB/s
  • 幾乎沒有硬碟活動

我最近唯一的大變動是 1 月 26 號裝回 Container Station,但我根本沒跑過任何 container。後來把它移除,問題也還是在。之前網路是 2/2 trunk:1+2 作為主網關,3+4 用於 VM Station,但…老實說根本用不到流量這麼大,過度規劃。

我試過:

  1. 此說明重設 .qos_config
  2. 官網這步驟用 CLI 手動重裝最新版韌體
    1. 當下好像有改善…但一小時後舊狀重現
  3. 停止/移除一些不用的應用程式:
    1. Container Station
    2. Qsync
    3. Qsirch
    4. Qfile(?)
    5. 其他還有一些…

我現在不知道接下來怎麼辦。資料是安全的——雖然 FTP 連線常常也撐不久,想備份有困難。或許從 NAS CLI 主動傳,比較有機會成功備份吧。VM 的話我就不知道怎麼處理了……

如果需要我提供其他資訊協助排查請告訴我,非常感謝!

我可以提供一些建議,因為我的 TS-873A 有時也會出現 CPU 使用率異常高的情況。

首先,你提到「TLS handshake」(TLS 握手)。我推測你正在使用 HTTPS?在你的區域網路(LAN)裡,其實沒有這個必要。我不建議你在 LAN 上使用安全的網頁連線。

第二,CPU 使用率並不是很重要的數據,相較於「CPU Load」(CPU 負載)來說。CPU 負載大致代表目前 CPU 正在處理的執行緒數量。你設備上的 i5-6500 處理器有 4 核心 4 執行緒,所以當負載數字超過 4,NAS 就會因為資源瓶頸而開始變慢。即使一個執行緒沒有占用大量 CPU 時間,也算在負載裡面。

要檢查發生什麼事,你需要以 SSH 登入 NAS,並執行 Linux 指令 top

你會看到如下的畫面:

第三行的 Load Average(負載平均)就是最重要的數字。我這邊顯示的是我的 TS-873A,處理器為 Ryzen V1500B。它有 4 核心 8 執行緒,所以只要負載值低於 8 就沒問題。你的 NAS 負載超過 4 就要注意了。這些負載數字分別代表 1 分鐘、5 分鐘及 15 分鐘的平均值。

根據這些資訊,你就有機會找出哪個程序在搗蛋。不過也有可能抓不到。所以我還有個小秘訣要提供:

  1. 把你能關掉的 App Center 應⽤程式全部關閉。
  2. 關機,直到 NAS 完全關閉。
  3. 重新開機。
  4. 再啟動你的應用程式。

有時候會有「殭屍執行緒」殘留在應用程式中,佔用資源。照理來說應該會自動終止,但實際上沒有。單純停止/啟動應用程式沒辦法真的清理掉這些執行緒,因為這樣只是把應用程式恢復到原本的狀態。就算重開機也不能徹底解決。你必須在應用程式都停止的情況下,把 NAS 做一次完全斷電。

我多次在更新韌體時遇到這種情況。QNAP 也會提醒,如果 NAS 長時間運作,建議在更新韌體前先重新開機。我非常建議你先重開機再升級韌體,然後再重開一次,這樣流程會順利得多。倘若直接升級,可能會有進程殘留,產生麻煩的殭屍執行緒。

最後,如果還是解決不了,可以申請技術支援。他們一開始會問你一堆問題,例如「你是否用了第三方記憶體?」這種有點無謂的問題。但你就堅持請他們遠端進入機器,幫你清除那些系統無法自動終止的殭屍進程。

我幾乎可以肯定,你的 NAS 裡就是有這樣的問題……

等你測完 load(負載)數字後記得回報你的狀況喔!

你還可以考慮的一件事是,你其實可以很輕鬆地升級你 NAS 上的 CPU。我把我的 TVS-672XT 從 i3 升級到了 i7,差異非常明顯。你的 i5-6500 的 CPU mark 分數是 5600,而 i7-8700T 的 CPU mark 分數有 10,218——快了兩倍。你可以在 eBay 上用大約 80 美元買到一顆這樣的處理器。

不確定 i7-8700T 是否跟你的插槽相容。我有一台 TVS-882,我把它升級成 i7-7700。4 核心 8 執行緒,CPUMark 分數 8658。跑得很順!

太好了,謝謝你。

你提到內部連線使用 TLS,這個點很有道理。目前我確實只對外開了一個埠口,不過我並沒有在上面設置 SSL,所以我準備關掉它看看會不會改善狀況。(……如果我能把控制面板加載起來的話!)對我來說,網站只對外開一個埠,這樣的風險算是可以接受。

好的,top 顯示……在我觀察的時候,三個平均負載指標都沒超過 0.85。我讓它跑了大約 30 分鐘,一邊在 Web UI 裡亂晃,試著了解發生什麼事。我注意到有很多 QVS 任務,不曉得那是什麼。在 Web UI 裡東摸西摸的時候,資源監控器顯示有大約 20 個 zombie 程序。

我把所有能停的應用全都停掉後,Web UI 明顯順暢很多。我不太確定是哪個時間點它開始不再頻繁斷線,下次重新啟動那些應用時我會注意看。然後我讓它完全關機,靜置大約 10 分鐘再啟動,可是還是顯示有 20 個 zombie 程序,且沒有額外開其他應用。最主要的 zombie 程序有「python3」和「manaRequest.cgi」。

好了,我啟動了 Plex 伺服器,一切都很正常。啟動 Virtualization Station 之後……幾乎馬上就跳出了錯誤通知。看來得寫個客服單了……真開心。

感謝你的指點!

關於換 CPU 的提議也很不錯,我本來以為它是焊死在主機板上的。i7-8700T 看起來是不錯的選擇,我會去找找看。第 9 代的應該也相容,不過我想比起 8 核 8 執行緒,我比較偏好 6 核 12 執行緒,即使它是舊一代。

看起來兩者都是用 LGA 1151 插槽。但我用 ChatGPT(購買請小心)快速查了一下,它建議只用第 6 代和第 7 代的核心,並列出了你現在用的 i7-7700。它沒有列出任何第 8 代或第 9 代的核心。再繼續查下去……

沒錯,i7-8700T 並不能用在原本搭配 i5-6500 的主機板上。即使插槽一樣。謝謝 @Franklin 指出這點。

所以看來還是 i7-7700 最適合。

呃,我會非常小心在 NAS 上開啟 Web 連接埠,除非你是在 Docker 容器裡運行那個特定的應用程式。QNAP 在資安被攻擊這方面的記錄並不是很好。提醒你要特別注意!

QVS 任務跟網路和 Virtual Switch 虛擬交換器有關。這部分我們晚點再說……

殭屍行程是經常會出現的,所以不用太擔心。他們就是運行完結束、需要被作業系統清理掉的執行緒。你可以試著用指令列去殺掉它們,但很多時候你 kill 它們時已經不存在了,因為系統早把它們清掉了。不過有些時候殭屍行程沒被清掉會掛在那邊,我們要消滅的是這些留著的,不過據我所知(AFAIK)幾乎不可能知道哪些殭屍行程沒被清掉。

manaRequest.cgi 是一個一直在運行的管理請求程序,Python 也是一直開著的。

OK,這樣看來你的 Virtualization Station(虛擬化工作站)設置有問題。所以我們要一件一件慢慢測試才找得出問題。假如你的網路設定出了什麼狀況(比如 Network 和 Virtual Switch),就可能有這類問題。記得確認你的虛擬交換器(virtual switch)設置沒出現 loop 或類似狀況。有可能就是這個問題。

所以,請先在 Virtualization Station 裡關掉所有 VM,然後停止 Virtualization Station,最後關機重新啟動 NAS。再啟動 Virtualization Station,看看沒跑任何 VM 時問題會不會馬上發生。如果一開就有事,那就真的該送 ticket。如果沒發生,再一台一台啟動 VM,觀察是哪一台一啟動問題就出現。找到那一台時,就停掉它,看看問題會不會消失。找看看這台 VM 有什麼特別的地方。

VM 很吃 NAS 資源。如果你跑多台 VM 有問題,真的很建議升級 CPU。如果你的用途只是單一任務/應用,也可以考慮用 Container(容器)代替 VM,效能會高很多。

不客氣。

OK,這裡我給了你錯誤資訊!請參考我和 Franklin 的其他回覆……第八代 CPU 不支援你的主機板。

我幾年前就研究過升級了。我本來以為是插槽的問題,但現在有點想起來,好像是主機板上的Intel晶片組才是關鍵。

我今天早上稍微查了一下,覺得你說得沒錯。我主要是想確認一下這款主機板是否能支援新一代的處理器。我用的 TVS-882 搭載的是 Intel「SKYBAY」主機板,版本是「Default string」,BIOS 為「QZ02AR02」。這些資訊我都查不到什麼可靠或有用的資料(好吧,扣除「Default string」…),不過我記得有聽說過六代消費級主機板需要更新 BIOS 才能跑七代。下單前我會再做足功課,避免出錯。

感謝!

記下來了。這個就是單一應用,所以我會看看能不能把它遷移到 docker 容器裡。我想我其實不需要它有 GUI 之類的介面……

OK。所以你的 Virtualization Station 佈署有些問題。

也許吧……我昨晚沒管它,今天玩了一個多小時目前沒發現有什麼問題。不過我還是把其他應用都關掉了——只有 Plex、VM Station 和這台 VM 還在運行。現在我也搞不清楚問題出在哪裡了。

你提到要注意 Network and Virtual Switch,我覺得你是對的,雖然沒辦法說出確切原因。我接下來這幾天會慢慢把其他應用一個一個打開試看看情況。希望‘全部關掉、關機、冷啟動’這幾個步驟能夠解決核心問題,或許我之前遇到的只是單純的小故障吧。

話說回來,現在我多了一個很棒的參考,如果之後再遇到狀況就知道該怎麼做了。此外,之後做 firmware 更新前我也會記得先來個冷啟動。我本來就會提前重啟一下,不管系統有沒有要求,不過多一個冷啟動當作額外保險也是合理的。