大约一个月前,我在 VMware ESXi 8.0U2 虚拟机(最新的 vSphere 版本)上安装了 Debian 12 上最新版本的 Docker。
我尝试让 VNC 运行,但其他优先事项占据了,所以现在我只是使用 Gnome 通过 VMware 远程控制台访问虚拟机。
它安装了最新版本的 VMware Tools:
$ sudo apt-get install open-vm-tools open-vm-tools-desktop
open-vm-tools is already the newest version (2:12.2.0-1+deb12u2).
open-vm-tools-desktop is already the newest version (2:12.2.0-1+deb12u2).
只有 1 个容器同时运行。我经常这样做docker image prune -f
并且docker system prune
每当虚拟机“独立”运行时(我没有通过 Gnome 上的远程控制台连接到它),它就会像冠军一样运行,并且永远不会宕机。
每当我访问虚拟机并执行操作时,它都会随机挂起,我的“修复”是重新启动虚拟机。当容器挂起时,尝试从另一台机器访问在容器上运行的 nginx 服务器会导致我们的反向代理返回Error 503 Service Unavailable - No server is available to handle this request
.
当执行此操作时,整个 Debian Docker 主机虚拟机完全锁定,不允许我单击/键入,并且屏幕冻结。我并没有做任何要求过高的事情。nano
我通常只是在终端或其他东西中编辑文件。
有时我在虚拟机上什么也不做,我只是通过 VMware 远程控制台连接到它 - 它就会宕机。它以随机的时间间隔执行此操作,但我通常会在崩溃之前得到大约一两个小时的时间,但这似乎是随机变化的,有时我会得到几个小时 - 最近我在崩溃之前得到的时间越来越少。
如果我等待并且不重新启动虚拟机,那么远程控制台最终会在 5-10 分钟后恢复正常,屏幕会解冻,我可以再次输入。Docker 守护进程死亡。我没有使用 Docker Desktop。它已安装,但未设置为在引导/登录时自动启动。
有时崩溃时没有容器在运行。我在那里使用的容器是一个非常简单的网络服务器,只有我可以访问。
有时(但并非总是),即使在虚拟机挂起时从 VMware Remote Console 中对虚拟机发出“重新启动”命令,第一次也无法正常工作(但通常第二次可以正常工作):
在 vSphere 中,当虚拟机挂起时,我[有时?] 看到CPU 维持 100% 使用率!我已将 CPU 核心从 4 个减少到 2 个,因为它导致具有 6c 12t Xeon E5-1650V3 的 VMware 主机服务器上的 CPU 消耗非常高。该虚拟机具有 8GB RAM。
我的任何其他(Linux、FreeBSD 和 Windows)非 Docker 虚拟机都没有问题。
请问我该从哪里开始尝试解决此问题?
我的感觉是,这要么与 VMware Tools 要么与 Gnome 有关。每当我运行 Dockerfile 构建(但有时也不执行任何操作)时,我注意到这些进程通常会消耗非常高的 CPU:
qemu-system-x86_64
gnome-shell
docker-scout
com.docker.backend
通常构建会成功完成,但这些进程在之后的一段时间内仍然会使用高 CPU - 有时会导致崩溃(当没有任何东西在构建时)。
我并不反对在全新安装的 Debian 上尝试一些东西,但我不相信如果我不改变我的设置中的任何其他内容,它会有帮助。
在这里。
我们的设置是:物理机运行 ESXi > 有一个用于 Debian/Docker 的虚拟机 > 有一个用于 nginx 的容器。
我最初误解了@GeraldSchneider 的评论- 我以为他的意思是卸载 Gnome Desktop(也许他也这么做了),但事实上,事后看来,卸载Docker Desktop 现在完全有意义。
感谢@AB 的评论指出:
我放弃了原来的安装并从头开始重新安装 Debian,遵循以下指南:
我也切换到了 KDE,现在 Docker Desktop 不再需要 Gnome 相关的东西了。只有时间才能证明一切,但响应时间似乎要快得多,而且还没有崩溃!🥳
另请参阅(但不要遵循指南):