昨日、リモート Linux システムが非常に遅くなりました。セットアップしたリモート luks のロック解除が確実に機能していないようで、今後 10 日間は物理的にマシンにアクセスできないため、再起動する代わりにデバッグしようとしています。
私が使い慣れているシステム ステータス ツールは でありhtop
、 ssh セッションで実行してdstat
いたため、dstat
昨日 2021-09-09 08:51:42 以降、1 つの CPU コアが常に「sys」によって完全に使用されていることがわかります。これはカーネルを意味していると思いますか?
原因となっているプロセスやスレッドは見つかりませんhtop
。
すべてのユーザー サービスを停止し、必須でないものをアンマウントしたところ、システムの応答が少し改善されましたが、それでもまだ期待したほど速くはありません (Intel i7 CPU と SSD を搭載しています)。
私は見つけた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
、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
接続されたディスクの 1 つに問題が発生し始めたため、数日前にこのシステムでのバックアップ設定を無効にしました。
私の btrfs ルートファイルシステムが を使用しているかどうかはわかりませんqgroups
が、 を実行したところbtrfs quota disable /
、約 10 秒かかり、フィードバックは返されませんでした。
この問題をデバッグ/解決する方法について他にヒントを持っている人はいますか?
答え1
問題は、Btrfsのクォータです。
btrfs quota disable /
システムを再び使用可能にしました :)