我有一个远程 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
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 秒并且没有给出任何反馈。
有人对我有任何其他提示如何调试/解决这个问题吗?
那些 btrfs 配额的问题。跑步
使系统再次可用:)