Dockerデーモンの断続的なクラッシュデバッグ

Dockerデーモンの断続的なクラッシュデバッグ

私はECSクラスタの一部としてAWSの複数のホストでDockerを実行していますが、過去数週間でDockerデーモンが断続的にクラッシュし始めました。システムレベル(カーネル、OS、Dockerなど)では何も変更せず、全体の作業量は同じです。

システムは、CPU、メモリ、またはIOに重大なストレスを与えずに数日間正常に動作します。ある時点でdockerd-defaultプロセスが中断され、負荷が100以上に急増します。プロセスがブロックされたためです。回復できません。唯一のオプションはインスタンスを終了することです。

パフォーマンスチャートに100を超えるロードスパイクが表示されます。

デーモンがクラッシュすると、 dmesgカーネルはプロセスをスケジュールできないことを示します。

Apr 11 13:46:06 ip-172-31-84-92 kernel: [1356823.587223] INFO: task dockerd-default:1548 blocked for more than 120 seconds.

psプロセスが次のDsl状態にあることを示します。

1055 ?  Dsl  5684:45 /usr/bin/dockerd-default --bip=10.192.0.1/16 --fixed-cidr=10.192.0.0/16 --group=docker --pidfile=/var/run/docke.pid --storage-driver=overlay --raw-logs

lsofどのファイルハンドルがすべてをブロックしているかを調べるためにこのプロセスをテストしましたが、何も明確ではありません。そしてディスクIOも多くないのでそんな面で制限を置かないと思います。

私の質問は次のとおりです。

  • 似たようなことを経験した人はいますか?
  • インスタンスをシャットダウンせずに回復する方法はありますか?
  • デバッグの次のステップに関する提案はありますか?

参考までに、各コンポーネントのバージョンは次のとおりです。

Ubuntu:14.04.5 LTS
カーネル:4.14.12-041412-generic
ドッカー:18.06.1-ce

ベストアンサー1

おすすめ記事