使用具有 3.10 内核的 Centos7,docker 19.03.12。
最终,其中一个 docker 映像已满,并将整个/var/
挂载写入 100%,导致 docker 服务和正在运行的容器都崩溃。
现在还有 2 个僵尸进程我无法杀死(使用kill -9
or killall
:
ps axjf | grep docker
1 30215 30215 30215 ? -1 Ds 0 0:00 [docker-entrypoi]
1 32063 32063 32063 ? -1 Zsl 0 0:00 [dockerd] <defunct>
同时,/var/log/messages
我得到:
kernel: XFS (dm-8): Failing async write on buffer block 0xb78170. Retrying async write.
kernel: XFS (dm-8): metadata I/O error: block 0xb78170 ("xfs_buf_iodone_callback_error") error 28 numblks 8
似乎某些 IO 仍在尝试写入一些数据。这似乎在无限循环中重复,我不知道如何阻止它。
du -sh
并在检查文件ls -al
时快速挂起。/var/lib/docker
此外,service docker stop/start
还会挂起;top
报告非常高的加载/等待时间(大约23
4 核机器)。
我的问题:在不重新启动机器的情况下,干净地停止xfs
写入、杀死僵尸进程并重新启动服务的最佳方法是什么?
释放一些磁盘空间。
您发布的内核消息报告的错误是 28,“设备上没有剩余空间”。