私は85台のコンテナを作成しており、すべてのコンテナはLinuxマシン上で同じ.netコアアプリケーションイメージを実行しています。 すべてのコンテナでのREST呼び出しは同じですが、すべてのコンテナで使用されるメモリは異なります。dockerコンテナで実行中のプロセスのメモリ使用量を取得する方法は?
これは、すべてのコンテナが同じイメージを実行しているため、使用されるメモリが異なる理由と、REST呼び出しが同じ理由を理解していないことです。
私は、次の方法を使用することにより、コンテナが使用するメモリを取得することができる午前:私は知っている統計以上から
1)ドッキングウィンドウの統計
CONTAINER- 7827fe8127eb
CPU - 0.00%
MEM USAGE/LIMIT - 67.1MiB/7.666GiB
MEM % - 0.85%
NET I/O - 76.4kB/6.19kB
BLOCK I/O - 42.7MB/0B
を、私のコンテナが使用するメモリは67.1メガバイトです
2)その後、コンテナの中に入って、実行中のプロセスとそのプロセスで使用されているメモリを調べようとしました。今、「ドッキングウィンドウの統計」から得た統計情報
docker exec -i -t 7827fe8127eb /bin/bash
top
は、コンテナメモリが67メガバイトである、と言うが、その後dotnet
プロセスによって使用されるメモリは何ですか?
"RES"
カラム値はプロセスメモリを提供しますか? RES
のサイズは92.70 MBで、コンテナメモリよりも大きいサイズです。
3)私は、コンテナーの統計情報を取得するために、ドッカーエンジンAPIを使用しました。しかし、どのプロパティがコンテナメモリを指定しているのかは正確には分かりません。
"memory_stats": {
"usage": 72302592,
"max_usage": 84365312,
"stats": {
"active_anon": 47865856,
"active_file": 6664192,
"cache": 24477696,
"dirty": 4096,
"hierarchical_memory_limit": 9223372036854772000,
"inactive_anon": 8450048,
"inactive_file": 9318400,
"mapped_file": 16236544,
"pgfault": 118960,
"pgmajfault": 104,
"pgpgin": 120339,
"pgpgout": 105242,
"rss": 47824896,
"rss_huge": 8388608,
"total_active_anon": 47865856,
"total_active_file": 6664192,
"total_cache": 24477696,
"total_dirty": 4096,
"total_inactive_anon": 8450048,
"total_inactive_file": 9318400,
"total_mapped_file": 16236544,
"total_pgfault": 118960,
"total_pgmajfault": 104,
"total_pgpgin": 120339,
"total_pgpgout": 105242,
"total_rss": 47824896,
"total_rss_huge": 8388608,
"total_unevictable": 4096,
"total_writeback": 0,
"unevictable": 4096,
"writeback": 0
},
"limit": 8231383040
},
ここでは67.1 MBも見つかりません。
まず、すべてのコンテナで使用されるメモリが異なるため、同じイメージを実行しているため、実行されるREST操作も同じです。
一部のコンテナは93MBまで使用できることがわかっていますので、どのコンテナプロセスが実際に最大メモリを消費しているのかを知る必要がありますか?