我有一個遠端 Linux 系統,昨天變得超級慢。由於我設置的遠端 luks 解鎖似乎工作不可靠,並且在接下來的 10 天內我將無法實際訪問機器,因此我正在嘗試調試它而不是重新啟動。
我習慣的系統狀態工具是htop
,dstat
並且由於我dstat
在 ssh 會話中運行,我可以看到從昨天 2021-09-09 08:51:42 開始,一個 cpu 核心始終被“sys”完全使用 - 我猜測意味著內核?
我在 中看不到任何罪魁禍首的進程或線程htop
。
我已經停止了所有用戶服務並卸載了所有不必要的東西,這使得系統響應再次好一點,但仍然沒有達到應有的速度(使用帶有 SSD 的 Intel i7 CPU)。
我發現了https://tanelpoder.com/posts/high-system-load-low-cpu-utilization-on-linux/並安裝了引用的https://0x.tools/得到這個結果psn -G syscall,wchan
:
=== Active Threads ========================================================================================
samples | avg_threads | comm | state | syscall | wchan
-----------------------------------------------------------------------------------------------------------
100 | 1.00 | (btrfs-cleaner) | Running (ON CPU) | [running] | 0
100 | 1.00 | (dpkg) | Disk (Uninterruptible) | fsync | btrfs_commit_transaction
100 | 1.00 | (systemd-journal) | Disk (Uninterruptible) | ftruncate | wait_current_trans
1 | 0.01 | (sshd) | Running (ON CPU) | [running] | 0
1 | 0.01 | (thermald) | Disk (Uninterruptible) | [running] | ec_guard
1 | 0.01 | (thermald) | Running (ON CPU) | [running] | 0
這個過程可以透過我嘗試以你通常期望的 1/1000 的速度運行來dpkg
解釋(只是一種感覺,沒有測量)。apt upgrade
也許我的 btrfs 根檔案系統有問題...?我找不到btrfs-cleaner
in htop
,我想我要進一步研究那是什麼......
我昨晚確實運行了一次btrfs scrub
,速度非常快,沒有發現任何問題:
# btrfs scrub status /
UUID: 2f38e0ad-7f16-4a36-8096-b7981d47b4ff
Scrub started: Thu Sep 9 23:59:00 2021
Status: finished
Duration: 0:00:24
Total to scrub: 53.09GiB
Rate: 1.78GiB/s
Error summary: no errors found
但是當我使用 nano 修改根分割區上的設定檔時,載入和儲存速度非常慢。
我剛剛偶然發現了這一點:https://www.reddit.com/r/btrfs/comments/fmucrq/btrfs_snapshots_make_entire_system_lag_cpu_usage/其中有一則評論聽起來與我的問題類似:
每次啟動時和快照後,btrfs-transacti 和 btrfs-cleaner 都會完全耗盡核心,導致巨大的延遲
只是這表明它在啟動和創建快照時只持續幾分鐘,但btrbk
幾天前當其中一個連接的磁碟開始出現問題時,我已經禁用了該系統上的備份設定。
我不確定我的 btrfs 根檔案系統是否正在使用qgroups
,但我只是運行了btrfs quota disable /
大約 10 秒,並且沒有給出任何回饋。
有人對我如何調試/解決這個問題有其他提示嗎?
答案1
問題出在那些btrfs配額。跑步
btrfs quota disable /
使系統再次可用:)