Ubuntu 14.04 コンテナーで Java アプリケーションを実行しています。アプリケーションは、読み取りと書き込みを高速化するために OS ページキャッシュに依存しています。コンテナーには一時停止コマンドが発行され、docker のドキュメントによると、cgroup フリーザーhttps://www.kernel.org/doc/Documentation/cgroups/freezer-subsystem.txtをトリガーします。
一時停止したコンテナのダーティ ページとページキャッシュはどうなりますか? それらはディスクにフラッシュされますか? それとも、コンテナ スコープのページキャッシュの概念全体が間違っていて、すべてのコンテナのダーティ ページが Docker ホスト レベルで管理されているのでしょうか?
ドッカーホストfree -m
:
user@0000 ~ # free -m
total used free shared buffers cached
Mem: 48295 47026 1269 0 22 45010
-/+ buffers/cache: 1993 46302
Swap: 24559 12 24547
容器docker exec f1b free -m
user@0000 ~ # docker exec f1b free -m
total used free shared buffers
Mem: 48295 47035 1259 0 22
-/+ buffers: 47013 1282
Swap: 24559 12 24547
コンテナーが一時停止すると、コンテナーから見たメモリを確認できません。
FATA[0000] Error response from daemon: Container f1 is paused, unpause the container before exec