次のような設定になっています:
- コンテナ内で実行され、ログを書き出すPerlサービス
STDERR
- ログスパウトログをリモートサーバーに送信してアーカイブする
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 デーモンのメモリ使用量が増加し続ける理由がわかりません。この問題をデバッグするにはどうすればよいでしょうか?
ベストアンサー1
ログのメモリ リークに関連する未解決の問題が少なくとも 1 つ残っています。参考: https://github.com/docker/docker/issues/9139