bounty将在3天后过期。回答此问题可获得+50声望奖励。DeltaIV希望奖励现有答案。
有没有办法按照容器的内存使用情况来显示Docker统计信息?
我使用下面的命令来显示容器及其名称,并希望按内存使用情况对结果进行排序。
docker stats --format "table {{.Name}}\t{{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
未排序的结果如下所示。
NAME CONTAINER CPU % MEM USAGE / LIMIT
kafka3.interactive.8a38c338742464ffb04d6f23fc6485391318d103 0d68b7fd49a0 1.39% 359.5 MiB / 4.833 GiB
kafka2.interactive.8a38c338742464ffb04d6f23fc6485391318d103 7e5541b0b883 1.22% 309.4 MiB / 4.833 GiB
kafka1.interactive.8a38c338742464ffb04d6f23fc6485391318d103 dff07c6d639c 0.68% 267.4 MiB / 4.833 GiB
service2.interactive.8a38c338742464ffb04d6f23fc6485391318d103 0f20a7e75823 0.06% 617.8 MiB / 4.833 GiB
consulakms.interactive.8a38c338742464ffb04d6f23fc6485391318d103 b5972262194d 3.82% 10.32 MiB / 4.833 GiB
service1.interactive.8a38c338742464ffb04d6f23fc6485391318d103 be56185a37bf 0.09% 596.3 MiB / 4.833 GiB
consumer1.interactive.8a38c338742464ffb04d6f23fc6485391318d103 05145beb209c 0.06% 574.6 MiB / 4.833 GiB
consul1.interactive.8a38c338742464ffb04d6f23fc6485391318d103 3298a8159064 0.67% 10.57 MiB / 4.833 GiB
consul3.interactive.8a38c338742464ffb04d6f23fc6485391318d103 4a1bbbd131ad 3.12% 9.664 MiB / 4.833 GiB
zookeeper2.interactive.8a38c338742464ffb04d6f23fc6485391318d103 040f00b4bbc7 0.09% 42.45 MiB / 4.833 GiB
consulbootstrap.interactive.8a38c338742464ffb04d6f23fc6485391318d103 45268a11f2f4 3.62% 11.46 MiB / 4.833 GiB
zookeeper3.interactive.8a38c338742464ffb04d6f23fc6485391318d103 331772b27079 0.12% 51.27 MiB / 4.833 GiB
consul2.interactive.8a38c338742464ffb04d6f23fc6485391318d103 77b63171e6b5 1.07% 12.59 MiB / 4.833 GiB
zookeeper1.interactive.8a38c338742464ffb04d6f23fc6485391318d103 c5ad82730598 0.08% 43.17 MiB / 4.833 GiB
service3.interactive.8a38c338742464ffb04d6f23fc6485391318d103 610da86c6949 3.79% 546.7 MiB / 4.833 GiB
squid.interactive.8a38c338742464ffb04d6f23fc6485391318d103 928ddbb197fa 0.01% 144.2 MiB / 4.833 GiB
5条答案
按热度按时间ttp71kqs1#
要按
Mem Usage
字段排序,可以使用以下命令:GNU/Linux:
docker stats --no-stream --format "table {{.Name}}\t{{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" | sort -k 4 -h
MacOS操作系统:
docker stats --no-stream --format "table {{.Name}}\t{{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}" | sort -k 9 -n
单击此链接查看
docker stats
的--format
选项的所有可用选项:www.example.comhttps://docs.docker.com/engine/reference/commandline/stats/#formattinglbsnaicq2#
命令仅按内存排序
jaql4c8m3#
请确保您的区域设置的小数点分隔符是一个点。如果它是不同的排序将无法工作。
这就是为什么我使用这个命令(Linux),注意
LC_ALL=en_US.utf8
:omhiaaxx4#
在前面的答案的基础上,我创建了下面的函数,并将其放入别名文件中。
它每秒捕获一次dockers统计数据,然后生成4个表,按CPU %、MEM使用、NET I/O和BLOCK I/O降序排序。
此外,这也会保留表格标题:-)
h4cxqtbf5#
我不喜欢使用
watch
方法所带来的延迟(比直接使用docker stats
要慢得多),所以我编写了以下代码:与
docker stats
相比,无额外延迟。