2017-04-24 10 views
1

私は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 

enter image description here

は、コンテナメモリが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まで使用できることがわかっていますので、どのコンテナプロセスが実際に最大メモリを消費しているのかを知る必要がありますか?

答えて

1

各ドッキングウィンドウは、あなたがそれを使用することができます(... proc(5)を参照してください)通常どおり/proc/を搭載している場合

(例えば等...、 pmap(1)ランニング)
関連する問題