如何乾淨地殺死卡住的 docker 服務?

如何乾淨地殺死卡住的 docker 服務?

使用具有 3.10 核心的 Centos7,docker 19.03.12。

最終,其中一個 docker 映像已滿,並將整個/var/掛載寫入 100%,導致 docker 服務和正在運行的容器崩潰。

現在還剩下 2 個我無法殺死的殭屍進程(使用kill -9killall

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 -shls -al在檢查文件時快速掛起/var/lib/docker

此外,service docker stop/start還掛起;top報告非常高的負載/等待時間(大約23為 4 核心機器)。

我的問題:xfs在不重新啟動機器的情況下,乾淨地停止寫入、殺死殭屍進程並重新啟動服務的最佳方法是什麼?

答案1

釋放一些磁碟空間。

您發布的內核訊息報告的錯誤是 28,「設備上沒有剩餘空間」。

相關內容