NAS 延遲

我最近將我的 NAS 從 QNAP TS-231P 升級到 QNAP TS-932PX。新系統使用 4 顆 SSD,RAID 6 作為檔案分享,以及 5 顆 HDD,RAID 6 作為備份。此外,每晚還會執行一次雲端備份。

我們辦公室大約有 10 個人使用 NAS 進行檔案分享,而且 NAS 已加入 Windows Server 2019 的 Active Directory

一開始幾個月一切運作良好。不過,大約從上個月開始,使用者每天早上都回報效能非常緩慢。瀏覽資料夾或開啟檔案可能需要 2 到 30 秒

如果我早上重開 NAS,整天都會正常運作。但隔天早上又會出現延遲,唯一能再次解決的方法就是再重開一次。

我聯絡了 QNAP 技術支援,他們的高階技術人員也協助排查,但沒發現明顯問題。他們建議監控 swap 檔案,或可能加裝更多記憶體,但我覺得這不太合理,因為:

  • 記憶體使用率從未超過 40%
  • CPU 使用率維持在 10% 以下
  • 網路(2.5Gb)幾乎沒被用滿
  • 我已經將 NAS 從 Active Directory 移除再重新加入
  • 使用者、伺服器與 NAS 之間的 ping 延遲始終約 1 ms
  • 硬碟運作速度正常

經過 兩週的排查,我已經沒什麼頭緒了。接下來可能會嘗試將 NAS 從 Active Directory 移除測試,或是重設並重新格式化 NAS

感謝任何建議。

所以有幾件事要注意:

永遠不要假設 CPU 使用率 = CPU 負載。它們是不同的。你可能會看到低 CPU 使用率但高 CPU 負載,這絕對會影響你的系統。要查看 CPU 負載,請打開 SSH shell 並執行 top 指令。會有一行叫做 Load Average(負載平均值),包含三個數字。這些數字分別代表過去 1 分鐘、5 分鐘和 15 分鐘的平均負載或 CPU 正在處理的執行緒數量。如果負載平均值超過你裝置的核心數,那麼你就會發現速度變慢。例如,我的 TS-873A 有 4 個實體核心,每個核心可處理 2 個執行緒,也就是 8 個核心。所以當我的 TS-873A 超過 8 時就會開始變慢。如果你遇到速度問題,請在速度變慢時檢查這個數值。

image

我在 QNAP 上也遇過殭屍程序(zombie process)持續運行且消耗資源,卻沒有被正確關閉。大約一個月前我遇到過負載顯示極高的情況,結果發現是 Hybrid Backup Sync 裡的某個東西造成的。

你的 NAS 在夜間或其他時間有執行什麼程序或應用程式可能導致變慢嗎?備份會消耗大量資源,如果沒有在隔天前完成,會拖慢速度。其他應用程式也可能如此,等等。

解決步驟如下:

1.) 先查看 TOP,看看你的負載是多少,如果很高,檢查下方列表中是否有某個應用程式 CPU 使用率很高。

2.) 開始停止可能高用量的應用程式,例如 Container Station、Virtualization Station 等。從 App Center 停止應用程式。觀察幾分鐘,看使用率是否開始下降。如果有,那就找到問題應用程式。繼續這樣做直到找到佔用負載的應用程式。

3.) 停止問題應用程式後,重新啟動 NAS。

4.) NAS 重新啟動後,再啟動該應用程式。

5.) 監控你的負載,看看問題是否還會發生。

這些問題可能需要一些時間和精力來找出原因。如果你持續要求 QNAP 支援協助,他們會幫你。這過程需要和他們多溝通,你需要詳細說明你做了什麼。要求將案件升級。確保他們從 Helpdesk 登入你的 NAS 並檢查狀況。

這是在2月27日系統緩慢期間的狀態,我在其他緩慢期間的日子也看到類似的負載平均值

\[~] # top
Mem: 3710592K used, 325376K free, 54016K shrd, 1495552K buff, 298496K cached
CPU:  6.5% usr  0.0% sys  0.0% nic  0.0% idle 93.4% io  0.0% irq  0.0% sirq
Load average: 22.89 20.50 13.37 2/879 17322
PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
9727     1 admin    S    2314m 58.3   3  2.1 /sbin/hal_daemon -f
17316 14395 admin    R     3520  0.0   1  2.1 top
24832 17582 admin    S <  3060m 77.1   0  0.0 /usr/local/apache/bin/apache_proxy
29175     1 admin    S    1406m 35.4   1  0.0 {cc3-fastcgi} python /share/CACHED
14546     1 admin    S    1238m 31.1   1  0.0 /usr/local/sbin/qulogdb --defaults
26475     1 admin    S    1210m 30.4   0  0.0 {p2pagent} /share/CACHEDEV2_DATA/.
30866 18157 admin    S    1205m 30.3   3  0.0 {apache_proxys} /usr/local/apache/
31531     1 admin    S     967m 24.3   2  0.0 /usr/local/mariadb/bin/mysqld --de
15705 15704 admin    S     856m 21.5   0  0.0 /usr/local/sbin/ncd
12976     1 admin    S     855m 21.5   1  0.0 /usr/local/mariadb/bin/mysqld --de
23248     1 admin    S     838m 21.1   2  0.0 /usr/local/mariadb/bin/mysqld --de
15614     1 admin    S     486m 12.2   2  0.0 /usr/local/sbin/ncdb --defaults-fi
7338     1 admin    S     425m 10.7   2  0.0 /mnt/ext/opt/Python/bin/python ./
26437     1 admin    S     326m  8.2   0  0.0 tunnelagent
5698     1 admin    S     296m  7.4   1  0.0 /sbin/cs_qdaemon
11507     1 admin    S     266m  6.7   3  0.0 /mnt/ext/opt/Python/bin/python /mn
14644 14636 admin    S     260m  6.5   2  0.0 /usr/local/sbin/qulogd
14366     1 admin    S     260m  6.5   0  0.0 /usr/local/sbin/qulogd
17118     1 admin    S     260m  6.5   2  0.0 /usr/local/sbin/qulogd
31916     1 admin    S     249m  6.2   3  0.0 /usr/local/bin/qsyncsrv_monitor -p

這是現在沒有人在工作的時候

Mem: 3723328K used, 312640K free, 46592K shrd, 1653312K buff, 219584K cached
CPU:  0.9% usr  1.3% sys  0.0% nic 97.6% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 1.28 1.32 1.40 1/823 6903
PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
9838     1 admin    S    2251m 56.7   1  0.9 /sbin/hal_daemon -f
31602     1 admin    S     903m 22.7   2  0.0 /usr/local/mariadb/bin/mysqld --defaults-file=/etc/
9890     1 admin    S    46976  1.1   3  0.0 {nmd} python /usr/local/network/nmd/nmd.pyc
7426     1 admin    S    14912  0.3   0  0.0 /mnt/ext/opt/netmgr/util/redis/redis-server *:0
6856 28205 admin    R     4096  0.1   0  0.0 top
3808 17771 admin    S <  3060m 77.1   2  0.0 /usr/local/apache/bin/apache_proxy -k start -f /etc
29211     1 admin    S    1406m 35.4   0  0.0 {cc3-fastcgi} python /share/CACHEDEV3_DATA/.qpkg/Hy
14657     1 admin    S    1238m 31.1   3  0.0 /usr/local/sbin/qulogdb --defaults-file=/mnt/ext/op
26675     1 admin    S    1209m 30.4   0  0.0 /share/CACHEDEV2_DATA/.qpkg/CloudLink/bin/p2pagent
30877 18338 admin    S    1205m 30.3   2  0.0 /usr/local/apache/bin/apache_proxys -k start -f /et
13123     1 admin    S     855m 21.5   0  0.0 /usr/local/mariadb/bin/mysqld --defaults-file=/usr/
23639     1 admin    S     838m 21.1   0  0.0 /usr/local/mariadb/bin/mysqld --defaults-file=/etc/
15746 15742 admin    S     827m 20.8   2  0.0 /usr/local/sbin/ncd
15651     1 admin    S     485m 12.2   2  0.0 /usr/local/sbin/ncdb --defaults-file=/mnt/ext/opt/N
7388     1 admin    S     425m 10.7   3  0.0 /mnt/ext/opt/Python/bin/python ./manage.pyc runfcgi
27172     1 admin    S     328m  8.2   0  0.0 tunnelagent
5757     1 admin    S     296m  7.4   1  0.0 /sbin/cs_qdaemon
11649     1 admin    S     266m  6.7   1  0.0 /mnt/ext/opt/Python/bin/python /mnt/ext/opt/netmgr/
14759 14751 admin    S     260m  6.5   2  0.0 /usr/local/sbin/qulogd
31944     1 admin    S     249m  6.2   1  0.0 /usr/local/bin/qsyncsrv_monitor -pid:31940 -reg:/sh
23915     1 admin    S     248m  6.2   0  0.0 /usr/local/sbin/pp_qcoolied -f /etc/config/pp_qcool
4329     1 admin    S     227m  5.7   3  0.0 /sbin/lvmetad
20500     1 admin    S     219m  5.5   2  0.0 /usr/sbin/rsyslogd -f /etc/rsyslog_only_klog.conf -
30153     1 admin    S     194m  4.8   1  0.0 {php-fpm-proxy} php-fpm: master process (/etc/php-f
30157 30153 admin    S     194m  4.8   2  0.0 {php-fpm-proxy} php-fpm: pool www
30158 30153 admin    S     194m  4.8   1  0.0 {php-fpm-proxy} php-fpm: pool www
31833     1 admin    S     192m  4.8   3  0.0 /sbin/qsyncsrv_dbm -b
20970     1 admin    S     174m  4.4   1  0.0 /sbin/qShield
20965     1 admin    S     174m  4.4   3  0.0 qNoticeEngined: Write notice is enabled…
19864     1 admin    S     169m  4.2   1  0.0 /usr/local/bin/rfsd_qmonitor -f:/tmp/rfsd_qmonitor.
18780     1 admin    S     168m  4.2   2  0.0 /mnt/ext/opt/Python/bin/python2 /sbin/wsd.py
20967     1 admin    S     167m  4.2   2  0.0 qLogEngined: Write log is enabled…
10396 10393 admin    S     149m  3.7   0  0.0 /usr/local/bin/rates_monitor_start
18367 32316 admin    S     135m  3.4   2  0.0 /usr/local/samba/sbin/smbd -l /var/log -D -s /etc/c
4595 32316 admin    S     129m  3.2   0  0.0 /usr/local/samba/sbin/smbd -l /var/log -D -s /etc/c
24710 32316 admin    S     126m  3.1   3  0.0 /usr/local/samba/sbin/smbd -l /var/log -D -s /etc/c
3771 32316 admin    S     126m  3.1   1  0.0 /usr/local/samba/sbin/smbd -l /var/log -D -s /etc/c
9922  9890 admin    S     116m  2.9   2  0.0 {ncaas} python /usr/local/network/nmd/nmd.pyc
9923  9890 admin    S     116m  2.9   1  0.0 {qserviced} python /usr/local/network/nmd/nmd.pyc
32424 32316 admin    S     113m  2.8   2  0.0 /usr/local/samba/sbin/smbd -l /var/log -D -s /etc/c
32316     1 admin    S     113m  2.8   0  0.0 /usr/local/samba/sbin/smbd -l /var/log -D -s /etc/c
14751     1 admin    S     108m  2.7   2  0.0 /usr/local/sbin/qulogd
10729  9808 admin    S <   107m  2.7   0  0.0 /usr/local/samba/sbin/winbindd -s /etc/config/smb.c
15742     1 admin    S     106m  2.6   2  0.0 /usr/local/sbin/ncd
21592     1 admin    S     104m  2.6   2  0.0 /usr/bin/qsnapman
29655     1 admin    S      99m  2.5   2  0.0 /usr/bin/RTRR_MANAGER
9846  9808 admin    S <    98m  2.4   0  0.0 /usr/local/samba/sbin/winbindd -s /etc/config/smb.c
15727     1 admin    S    99520  2.4   0  0.0 /usr/local/sbin/ncloud
9847  9808 admin    S <  97152  2.3   0  0.0 /usr/local/samba/sbin/winbindd -s /etc/config/smb.c
9902  9808 admin    S <  96832  2.3   3  0.0 /usr/local/samba/sbin/winbindd -s /etc/config/smb.c
32321 32316 admin    S    95360  2.3   0  0.0 {cleanupd} /usr/local/samba/sbin/smbd -l /var/log -
32319 32316 admin    S    95232  2.3   3  0.0 {smbd-notifyd} /usr/local/samba/sbin/smbd -l /var/l
7037  9808 admin    S <  93312  2.3   2  0.0 /usr/local/samba/sbin/winbindd -s /etc/config/smb.c
9808     1 admin    S <  86912  2.1   0  0.0 /usr/local/samba/sbin/winbindd -s /etc/config/smb.c
19856     1 admin    S    77056  1.9   2  0.0 /sbin/rfsd -i -f /etc/rfsd.conf
30107 30105 admin    S <  73792  1.8   0  0.0 /home/httpd/cgi-bin/qsync/qsyncsrv.fcgi

我也把這些統計數據餵給了AI

https://x.com/i/grok/share/c0ff440f825b46b8a25c50b0050f0416

所以負載達到22.89會非常慢。

現在,你需要找出造成這種情況的原因。很難確切知道是哪個進程導致的。請檢查以下幾點:

1.) 你有在夜間執行備份嗎?
2.) 這些備份在早上前有完成嗎?
3.) 如果你夜間不執行備份,會發生什麼事?
4.) 當負載很高時,逐一停止應用程式。從像是Container Station、Virtualization Station、Web Server等開始,一個一個關閉。每次關閉後等幾分鐘,觀察負載情況。當你找到問題應用時,負載會很快下降。

不幸的是,你的TS-932PX是ARM A57 CPU。這比你的TS-231P稍微升級一點,但差距不大。如果你是在商業環境中使用這台NAS,你需要購買不同型號的NAS。ARM Cortex A57是一顆很棒的MPU,但真的只適合特定的嵌入式應用。它並不適合用來作為10人檔案伺服器。我很抱歉告訴你,這次升級你買錯NAS了。你至少應該換成X86架構的NAS,最低建議AMD Ryzen V1500B這種型號,例如TS-x73A NAS。更好的選擇是i5或i7,但這些價格會更高一些。

1個讚

這台 NAS 僅用於檔案分享,沒有作為任何伺服器主機。TS-231P 多年來運作良好,我只是為了增加儲存空間才升級到 TS-932PX。

如果早上重新啟動,這台 NAS 一整天運作都很快。備份會在夜間完成,早上並未執行。

你關於高負載平均值的建議目前是最有幫助的,讓我有了進一步排查的方向。

這絕對不是好現象。

順帶一提,如果真的只是空間問題,其實你可以直接升級 231P 裡的硬碟。我就是這麼做的(QNAP TS-231P-US 2x18TB Seagate Exos)。

這種情況我通常會懷疑儲存裝置。一般來說,我會建議檢查硬碟狀態和 SMART 診斷,不過我不確定你用 SSD 能看到哪些資訊(因為我自己的 NAS 沒有用 SSD)。

也許你可以貼出 SSD 型號,看看是否有人有相關經驗。

一定有某個瓶頸導致 CPU 負載延遲。

你也可以向 QNAP 提交支援單,由他們協助調查。

這些硬碟已經過測試,運行速度和IOPS都正常。我是從 QNAP TS-231P 遷移過來的。所以我正在考慮將整個系統重置,從頭開始全新設置。

5 顆 WD Red Plus 用於 RAID6 夜間備份

IOPS 73、117、77、125、113

MB/s 176、177、176、194

4 顆 WD Red SA500 2TB RAID6 儲存

IOPS 40434、40701、40627、40011

MB/s 537、537、538、538

所以有可能是你的備份留下了一些殭屍執行緒(zombie threads),沒有正確關閉。我以前也見過這種情況。

你用的是哪個備份應用程式?

如果你用的是 Hybrid Backup Sync,請這樣做:

1.) 關閉 HBS
2.) 重新啟動 NAS
3.) 啟動 HBS

在重啟前先關閉應用程式,可以終結所有這些殘留的進程,這樣它們就不會再啟動了。單純重啟的話,基本上會把事情恢復到原來的狀態。

我已經完全停用了備份服務,但隔天早上系統依然很慢。根據我最新的發現,這可能和交換檔(swap file)有關,因為它會增長到超過800MB。沒有人知道原因。技術支援今天會遠端連線協助。

我選擇TS-932PX是因為它支援的硬碟數量。4個2.5吋和5個3.5吋,非常方便。我一直以來都在用Synology NAS,這次會選QNAP是因為這個辦公室本來就有一台QNAP,讓我很容易轉移設定。現在有點後悔沒選Synology。

1個讚

那麼你在停用備份軟體後有重新啟動 NAS 嗎?

800 MB 的 swap 不應該是個問題。我的 swap 現在有 1GB,NAS 也運作得很好。

你有按照我建議的,慢慢關閉你正在執行的應用程式/服務來觀察狀況嗎?

另外,我剛才才想到沒問這個:你有在用 Qsirch 嗎?Qsirch 會佔用大量系統資源,直到它將整個硬碟建立索引完成。

根據你貼的 TOP 結果,我覺得你應該沒在用 Qsirch,不過還是得問一下。我回頭看了你貼的 TOP 結果。有一點很明顯:

首先,你有多少記憶體?

你有在用什麼需要 Apache 的服務嗎?那是內建的網頁伺服器。除非你有在跑某種網頁伺服器應用,否則不需要啟用它。這些應用程式都佔用了不少虛擬記憶體,而 %VSZ 這個數字才是真正讓人擔心的。我剛看了我的 TS-873A(裝了不少應用),雖然我的應用程式也都吃了不少虛擬記憶體,但沒有一個超過 12% Virtual Size。

根據你的 TOP 輸出,你已經用了 3.71GB 記憶體,只剩下 325MB 記憶體可用。這就是你的問題。你需要更多記憶體,尤其是如果有 10 個人共用你的 NAS。你現在還是用原本出廠的 4GB 嗎?

我建議你至少要裝 16GB,甚至 32GB。

這不是 QNAP 跟 Synology 的問題。這是 NAS 沒有配備足夠資源的問題。