linux系統減速調試,sys使用率高
我有一個遠端 linux 系統,昨天變得超級慢。由於我設置的遠端 luks 解鎖似乎無法可靠執行,並且在接下來的 10 天內我將無法物理訪問機器,我正在嘗試調試它而不是重新啟動。
我習慣使用的系統狀態工具是
htop
,dstat
並且由於我dstat
在 ssh 會話中執行,我可以看到從昨天 2021-09-09 08:51:42 開始,“sys”始終完全使用一個 cpu 核心 - 我猜測意味著核心?我看不到任何罪魁禍首程序或執行緒
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
這個
dpkg
過程可以解釋為我試圖以apt upgrade
你通常期望的速度的 1/1000 執行哪個執行(只是一種感覺,沒有測量它)。也許我的 btrfs 根文件系統有問題…?我找不到
btrfs-cleaner
inhtop
,我想我會研究更多關於那是什麼..我昨晚確實跑了
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 秒並且沒有給出任何回饋。有人對我有任何其他提示如何調試/解決這個問題嗎?
那些 btrfs 配額的問題。跑步
btrfs quota disable /
使系統再次可用:)