私は次の設定をしています:
- コンテナ内で実行されている Perl サービスと書き込みログ アウト
STDERR
- アーカイブのためにそれらのログをリモートサーバーに送信するlogspout
600 MB RAM のマシンで。
また、次の場所でログを定期的に切り捨てます。
/var/lib/docker/containers/CID/CID-json.log
ここで提案されているように、100% ディスクのシナリオを回避します。
問題
Docker デーモンは、最初は 1% の低いメモリ使用量で始まり、コンテナーを実行して 2 日後にはゆっくりと 40% に増加します。
参照
Docker デーモンのメモリ リークは、この問題とこの問題で話題になっています。しかし、どちらもコミット時にマージされたと言って閉じられています。dockerの最新のメジャー バージョン(Docker バージョン 1.4.0、ビルド 4595d4f) を実行していますが、単調に増加するメモリ使用量の問題に直面しています。
編集:私はこの実験を行いました:コンテナでbashプロセスを実行し、多くの行をSTDERRに出力すると、dockerデーモンプロセスのメモリ使用量が非常に速く加速します
docker はログのバッファリングを行い、基になるログ ファイル ( /var/lib/docker/containers/CID/CID-json.log
) がクリアされてもメモリを解放しませんか?
ログをクリアする方法はないようです。このコミットは、実行時間の長いタスクの問題を解決しますか?
docker デーモンのメモリ使用量が増加し続ける理由がわかりません。この問題をデバッグするにはどうすればよいですか?