Linux

linux系統減速調試,sys使用率高

  • September 10, 2021

我有一個遠端 linux 系統,昨天變得超級慢。由於我設置的遠端 luks 解鎖似乎無法可靠執行,並且在接下來的 10 天內我將無法物理訪問機器,我正在嘗試調試它而不是重新啟動。

我習慣使用的系統狀態工具是htopdstat並且由於我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-cleanerin 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 秒並且沒有給出任何回饋。

有人對我有任何其他提示如何調試/解決這個問題嗎?

那些 btrfs 配額的問題。跑步

btrfs quota disable /

使系統再次可用:)

引用自:https://serverfault.com/questions/1077160