1. ホーム
  2. オペレーティングシステム
  3. その他のシステム

コンテナのメモリ使用量のシステムキャッシュの紹介

2022-01-23 11:37:16

原点です。

モニタリング(docker stats)では、コンテナのメモリを使い切っており、コンテナの中を覗いても、それ以上メモリを使用しているプロセスが見当たりません。

分析します。

docker statsの計算は間違ってはいけないのでしょうか?

sys/fs/cgroup/memory/docker/xxxxx/ にアクセスし、memory.usage が正しく計算されていることを確認します。

我々は、システムメモリがバッファ、キャッシュなどで部分的に占有されることを知って、linuxはまた、メモリのこの部分が使用されているカウントされます、コンテナのために、この"問題"もあるはずです、それはlinuxは、コンテナが占有するメモリでカウントするために、キャッシュが原因でコンテナになることを非常に高いです 検証することは簡単です、ちょうど大きなファイルをddコンテナに入るとあなたが知っているだろうと思います

大きなファイルをddingした後、docker statはより多くのメモリを使用することを示す

ホスト上: echo 3 > docker stat は /proc/sys/vm/drop_caches の後に使用されるメモリが少なくなることを示します。

この時点で、原因が特定される

質問です。

ホストの場合、メモリ使用量を計算する際に使用メモリからキャッシュ/バッファを引くことができますが、コンテナの場合、コンテナ部分からキャッシュ/バッファを引くとどうなるでしょうか?引かないと、誤報の原因にもなります

テストしてください。dd が生成するファイルキャッシュが使用するメモリは、inactive_file に対してカウントされます。