我已经在我的笔记本电脑 Dell Inspiron 5000(AMD Ryzen 5 2500U/8 GB RAM/1 TB HDD/Windows 10/39.62 cm(15.6 英寸)FHD/Vega 8 Graphics)上安装了 Ubuntu 18.04 Inspiron 5575
即使有时没有应用程序或有时只有 Chrome 有 7-8 个标签,操作系统也会随机冻结。我检查了内存占用量,还打电话给戴尔支持中心。他们确认硬件没有问题。
此外,有关更多信息,我有 8 GB 的空间和 100 GB 的文件系统分区,其余用于备份或其他存储。
我需要识别并解决这个问题。
free
命令的输出: total used free shared buff/cache available
Mem: 7863936 3474352 1285924 82252 3103660 4002564
Swap: 7812092 0 7812092
Run Code Online (Sandbox Code Playgroud)
lsblk
输出:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 3.7M 1 loop /snap/gnome-system-monitor/57
loop1 7:1 0 14.5M 1 loop /snap/gnome-logs/45
loop2 7:2 0 42.1M 1 …
Run Code Online (Sandbox Code Playgroud) Distro: Gentoo
systemd: 242
Run Code Online (Sandbox Code Playgroud)
有一段时间,在我这里的两个系统上,我都无法正确关闭(暂停、关闭电源、重新启动)。它通过关闭服务等获得大部分方法,然后停止。我必须使用魔法 SysRq 键来完成这项工作。
我终于启用了 debug-shell.service 并看了一下。事实证明,systemd 在某个时候挂在 100% CPU 上。通常有 1 或 2 个服务仍然有进程,其中一些是僵尸(我假设是因为 systemd 通常会删除它们但不工作)。
这就是我所能确定的所有内容。我还能做些什么来诊断问题?
编辑:示例截图(裁剪):https : //imgur.com/OVOozrI内容实际上差异很大,因为事物的顺序可能不同。
编辑 2:syslog 的相关部分。我看那里没什么有趣的。唯一没有“停止”的“停止”是Dovecot。但是,您可以在底部看到,它终于退出了。这似乎是在 systemd 开始挂起之前。我记得在调试 shell 中,Dovecot 被遗留为僵尸。不久前,我尝试关闭 Dovecot(成功)然后重新启动,但 systemd 仍然挂起。
所以,这件事多年来一直困扰着我。
这种情况发生在更多的程序中,而不仅仅是 dd ,但我发现这种情况经常发生在涉及原始文件系统操作的程序中。
当我使用 dd 进行复制时——例如,通过执行 来制作可启动 USB 磁盘sudo dd if=somelinuxdistro.iso of=/dev/sdb bs=64K status=progress
,就像我的所有信号都被应用程序忽略了。(或者在 的情况下由内核SIGKILL
)htop
显示 status D
,这显然意味着“不间断睡眠”。如果出现硬件故障,它可能会保持这种状态很长时间,并且在常规使用中,我似乎找不到任何方法将其与终端分离,以便我可以继续工作 - 通常我最终只是切换到不同的终端完成我的工作。
我以前查过这个,但我从未找到关于此状态的用途或内核为何拒绝终止处于此状态的进程的解释,或者建议做什么以避免浪费时间。(也没有任何关于发生这种情况时该怎么做的建议。)
简而言之: 我想要一种可靠地强制终止处于 D 状态的进程的方法,或者至少将它们与终端分离。我还想解释一下背景中发生的事情导致他们首先处于这种状态。