2017-05-27 3 views
0

私のWebサービスはDockerコンテナで実行されています。中断シグナルがDockerコンテナに送信される原因は何ですか?

最近、多くのSystemExitエラーが発生しました。使用しているサーバー(gunicorn)がabortシグナルを受信したためです。

私はCPU Utilizationとを確認しましたが、どちらも正常ですが、使用率は50%未満ですが、これは理由がないようです。

私のサービスではリクエストに応じてダウンロードを行うかもしれないので、ファイルハンドラを使い果たしたことが原因だろうと思っていますが、ログに関連する例外は見られませんでした。

その他の理由でABORTというシグナルが発生する可能性がありますか?

+0

使用しているオーケストレーションのタイプは何ですか?なし、群れ、kubernetesなど? – Robert

+0

@RobertオーケストレーションはPAASベンダーによって提供されています。私はこれがボンネットの下に 'swarm'を使用していると信じています。 – satoru

+0

それは理由があるかどうかを確認する大きなポイントです。私の場合、AWS-ECSはベンダーであり、特定の状況下では、コンテナが強制終了され、再び開始されます(CPUまたはメモリの制限、または別の必須コンテナが存在するため) – Robert

答えて

0

PAASソリューションでソフト/ハード・メモリの制限をデバッグしようとすると、straceやsysdigのような種類のユーティリティを実行して終了理由を調べてみてください。

0

どのようにアプリケーションをコンテナ内で起動していますか? CMDまたはENTRYPOINTを使用してDockerfile内に言及するときは、プロセスを開始するEXECまたはSHELL形式を使用できます。 EXECフォームを使用すると、Dockerは実行中のプロセスに任意のシグナルを転送し、そこで処理できるようになります。これにより、あなたの中止の具体的な理由を理解することができます。