docker stats
を使用すると、時間の経過とともにコンテナのメモリ使用量を確認できます。ドッカーの統計情報からMAXメモリを見つける方法は?
docker stats
の実行中にメモリ使用量の最高値を確認する方法はありますか?それはコンテナによって最高のメモリを与える
docker stats --no-stream | awk '{ print $3 }' | sed '1d'|sort | tail -1
:
docker stats
を使用すると、時間の経過とともにコンテナのメモリ使用量を確認できます。ドッカーの統計情報からMAXメモリを見つける方法は?
docker stats
の実行中にメモリ使用量の最高値を確認する方法はありますか?それはコンテナによって最高のメモリを与える
docker stats --no-stream | awk '{ print $3 }' | sed '1d'|sort | tail -1
:
次のコマンドを使用することができます。
は私がコマンドを説明してみましょう:
--no-stream : Disable streaming stats and only pull the first result
awk '{ print $3 }' : will print MEM USAGE
sed '1d' : will delete first entry that is %
sort : it will sort the result
tail -1 : it will give last entry that is highest.
私は@pl_rockによってhereと集約されたデータからサンプリングスクリプトを取りました。しかし、注意してください。sort
コマンドは文字列の値を比較するだけなので、結果は通常間違っています(ただし私にとっては問題ありません)。 また、ドッカーが間違った番号を報告していることに気付くこともあります(つまり、物理RAMよりも多く割り当てられたmem)。ここで
はスクリプトです:
#!/bin/bash
"[email protected]" & # Run the given command line in the background.
pid=$!
echo "" > stats
while true; do
sleep 1
sample="$(ps -o rss= $pid 2> /dev/null)" || break
docker stats --no-stream --format "{{.MemUsage}} {{.Name}} {{.Container}}" | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0 }' >> stats
done
for containerid in `awk '/.+/ { print $7 }' stats | sort | uniq`
do
grep "$containerid" stats | sort -r -k3 | tail -n 1
done
私はこれが何であれ、コンテナの現在の値が瞬時チェックで最もメモリを使用していることを教えてくれますね。私の質問は、ドッカーの統計情報が稼働している間に(非瞬間的に)すべてのコンテナの中で最高の記憶を探していることです。 – BMitch
申し訳ありませんが、私はより具体的であったはずです。私は長時間にわたって単一のコンテナに対してドッカー統計を実行し、その時間に使用された最大メモリを把握したいと考えています。たぶん "時計"ドッカーの統計情報のようなものです。CONTAINER --no-stream | ????? – grayaii