查看事件日志继续往下走。
我在 Ubuntu Server 21.04 上,在 aarch64 上运行内核 5.11.0-1015-raspi。
下次发生此类情况时,需要做好哪些最有效的准备才能顺利进行诊断?
偶尔在频繁使用后我会开始遇到一些奇怪的问题,例如:
- 一些本应不执行任何操作的进程显示单个核心的使用率为 100%
top
(最近在 bash 脚本在 dev 事件文件上的 inotifywait 上循环时发生了这种情况) - 这些和少数其他进程不会终止
kill -9
(除了这个之外,我原本以为 inotifywait 会立即终止) - 系统可能会保持服务运行,但 ttys 可能会停止处理输入或输出,包括串行 tty
swapoff /path/to/swap
即使不再使用交换空间,也可能无限期挂起systemctl shutdown
可能会无限期挂起,或者系统可能会部分关闭然后挂起- USB 键盘灯可能停止响应
- 用户输入后,登录提示可能会等待很长时间,然后在仅显示部分密码提示后挂起
- 按键可能会丢失
- 有时 tty 上会重复出现内核消息,指示同一个挂起任务
- 当无限期无响应时,我没有在打开的、或 tty 上看到任何
dmesg --follow
内核journalctl --follow
恐慌 - 大写锁定灯在这台机器上似乎完全不起作用。大写锁定灯在我的 aarch64 olimex teres 上也似乎不起作用。
我最近更新了系统,希望这些问题会减少,但我想知道我还能做些什么来帮助诊断或处理这些问题。我费了很大劲才插入一根串行电缆,结果令我非常惊讶的是,串行终端本身可以在输出中途无限期地挂起。
这通常与过多的交换分配(超过可用 RAM)有关,但有些问题(例如不会运行的奇怪进程)kill -9
对我来说不仅仅意味着内存抖动,而且释放内存后问题也不会消失,尽管我对 Linux 内核没有经验。
理想情况下,我希望最终将问题缩小到内核中的错误、硬件问题或受损系统。
事件日志:
2021-08-09
之后systemctl isolate graphical
,systemctl isolate multi-user
systemd-journal 占用了 99% 的 CPU,日志被淹没,org.gnome.Shell@x11 正在等待停止。 systemctl status
说没有这样的服务。我试过了journalctl | pastebinit
。恐怕在我得到 URL 之前,界面就停止响应了。
这次似乎不是虚拟内存问题,但这是我在冻结之前得到的内存输出:
free -h
:https://paste.ubuntu.com/p/3c5tSTgGc4(这是在取消交换时拍摄的;它确实完成了取消交换)
sysctl vm.swappiness
:https://paste.ubuntu.com/p/cpvJw4Nd8f
UTC 时间 10:29,我的 tmux 会话冻结了。我切换到 tty3 并尝试登录。tty 挂起并显示密码。UTC 时间 10:32,风扇高速旋转了大约 1 分钟。
我有一个离线系统连接到串行终端,并且打开了 dmesg。最后几行是关于 rfkill 的,已手动复制到我的手机上:
[225366.651144] md: data-check of RAID array md4
[225724.680213] rfkill: input handler enabled
[225745.716506] rfkill: input handler disabled
[225751.439369] rfkill: input handler enabled
10:33 tty3 显示“登录 60 秒后超时。”,但从未显示密码提示。它挂起,没有显示另一个登录提示。我在 10:35 左右向串行 tty 发送了一个 ^C,它被回显给我,但没有输出终端提示来表明 dmesg 被中断。10:36 或 10:37 串行 tty 输出/回显回车符。没有新的输入。风扇再次旋转。10:39 串行 tty 显示一个提示,处理待处理的回车键,然后再次挂起。10:42 有串行提示!11:00 但我仍在尝试执行提示中的任何命令。它非常慢,但不会从缓冲区丢失击键(我有时会发生这种情况)11:01 系统在串行和 tty3 上响应。它因 oom 而杀死了 pastebinit。
lshw-C 内存:https://paste.ubuntu.com/p/x5GMkHRktS