TS-873A CPU負載過高

所以想問問這裡有沒有 Linux 專家能幫幫我。我現在在我不太擅長的領域摸索。

我的 TS-873A 最近在 TOP 上顯示過高的 CPU 負載。經常看到數值在 40 到 50 之間,而且一直降不下來。系統幾個月來基本沒什麼變化。好像是在升級到 h5.2.8.33559 之後才開始注意到這個問題。但應該不是韌體的問題,我已經降級又升級過好幾次了,情況都一樣。

我有向 QNAP 支援開過工單,但他們目前只說「你安裝了很多應用程式,停用 QSirch、停用 Container Station 等等。」我都試過了——沒用,負載還是沒降下來。而且我也不覺得這些會有影響,因為這些應用程式已經跑了好幾個月都沒問題。

我本來以為問題有解,因為前兩天負載都很正常,大約在 5 左右。結果昨晚又突然飆高。奇怪的是,昨晚我根本沒在 NAS 上做什麼或跑什麼。

更奇怪的是,透過 NAS 的網頁介面存取時,速度並沒有像負載 50 那樣慢到不能用。雖然有變慢,但還沒到無法使用的程度。不過還是比正常慢。

我覺得可能有某個程序出錯,可能產生了一些殭屍程序(zombie process),佔用資源和空間。問題是我找不到是哪個。我已經試著關掉幾乎所有「高用量」的應用程式,但都沒影響 CPU 負載。

所以來這裡問問看是不是有什麼 Linux 清理要做,或是有什麼 cron job 之類的。我真的不太確定。

這部分取決於「消耗」CPU 的進程優先級,依我看這並不算異常。

可以查看「uptime」的輸出來看平均值。

[~] # uptime
 12:18:15 up 25 days, 21:38,  load average: 0.15, 0.13, 0.13

試著用「top -n 1 >[logfile]」透過 cron 任務執行,或用 sleep 迴圈腳本來了解情況。

也可以查看 procstat 的細節來看看發生了什麼事

問題可能根本不是 CPU。檔案系統問題、硬碟快滿,或其他多種因素都有可能影響。

你有試過回滾到 4.5 版韌體嗎?哈哈(開玩笑的——算半開玩笑)

你也可以參考這些工具(有些需要安裝)

謝謝你。長時間過高的 CPU 負載是不正常的。經過最近一次重啟後,幾個小時前我已經讓情況穩定下來了。

17:53:21 up 7:47, load average: 2.91, 2.88, 2.87

所以這很不錯——這才是應該有的狀態!

我真正想看到的是哪些進程造成了負載。Top 只顯示佔用 CPU 百分比最多的進程,但這些進程未必真的對負載有很大影響。

我會去研究你提到的其他工具,也許其中有些能提供一些線索……

還有,不——4.5 不是選項。我反正是跑 Hero……

資源監視器,進入「處理程序」,然後點擊「CPU」兩次,將排序從高到低。

那只顯示了 CPU 百分比,而不是 CPU 負載。這兩者非常不同。

好吧,我可能聽起來像個傻瓜,但 QNAP 的 Linux 發行版似乎沒有 apt 指令。我想安裝 htop

sudo apt install htop

在 QNAP 上要怎麼安裝這種「一般」的 Linux 指令?

我認為你需要安裝 entware 或同類軟體,或者運行一個包含「真正」Linux 發行版的容器(但這其實不是個好主意,因為這會帶來更多額外負擔)。

https://www.reddit.com/r/qnap/comments/nyyqj0/is_it_possible_to_upgrade_an_installed_qpkg_or/

啊。太好了!謝謝你!

嗯……我從 MyQNAP.org 軟體庫安裝了 Entware。沒有 APT 指令,或者路徑沒有定義到它……

抱歉,我無法提供進一步的建議。我從來沒有需要調查資源問題或直接安裝核心 Linux。

也許我只是運氣好,但我的系統在閒置狀態下使用的資源非常少。

login as: admin
admin@192.168.1.30's password:
[~] # uptime
 14:27:57 up 27 days, 23:47,  load average: 0.08, 0.07, 0.10

必須是 QTS 4.5! :smiley:

而且我懷疑你載入的東西有我多……

現在我還好,但我必須重啟才到這裡:

image

apt 不是 Entware(或 QTS)的一部分。Entware 使用 opkg。範例:

opkg install htop

沒有效果……

:frowning:

請確保您已透過 SSH 以 admin 使用者身分登入。

Sudo 不好用嗎?

Entware 可以在一般使用者帳戶上運作,但你必須先載入(source)Entware 的設定檔,這樣你的 session $PATH 才會更新。

不過,使用 admin 帳戶會比較簡單。 :wink:

1個讚

OK。這樣可以了。

所以看起來我必須用管理員帳號來執行任何有關 Entware 的操作。我安裝了 HTOP,但無法在我的一般帳號下運行。

要怎麼改變這個設定呢?

另外,你知道有沒有什麼工具可以顯示每個程序對負載平均值(Load Average)貢獻的情況嗎?這才是我真正想看的——到底是什麼在佔用資源。我覺得這個工具好像也沒辦法顯示這個……

你必須先載入 Entware 的 profile。請將 source 指令加入你的使用者 $HOME 下的 .profile 檔案。這個檔案預設是不存在的,所以你可能需要自行建立。

請用你偏好的使用者帳號透過 SSH 登入,然後執行以下指令:

echo '. /opt/etc/profile' >> $HOME/.profile

…然後登出 SSH 連線,再重新登入。現在你應該就可以使用 opkg 指令了。

1個讚

系統負載平均值這個指標真的很棘手。我用 Linux 已經超過 20 年了,至今還在摸索。:wink:

我從來沒有因為硬體問題(RAM、網卡、硬碟等等)導致負載平均值上升,所以也沒真的坐下來研究到底哪裡出了問題。

不過簡單來說,這不完全是 CPU 負載的問題。論壇上最近一次的案例,最後發現是有瑕疵的記憶體條導致進程進入等待狀態。

希望有更有經驗的人能幫你診斷這個問題,因為這已經超出我的能力範圍了。:nerd_face:

其實在 HTOP 中有相當多的自訂選項和資訊。讓我們來看看我在操作過程中會得到什麼,並檢查發生了什麼情況……