gpt4 book ai didi

docker - 如何从 docker stats 中找到 MAX 内存?

转载 作者:IT老高 更新时间:2023-10-28 12:42:46 26 4
gpt4 key购买 nike

使用 docker stats,您可以查看容器随时间的内存使用情况。

有没有办法在运行 docker stats 时找到内存使用的最高值?

最佳答案

如果您需要找到峰值使用量,您最好请求 .MemPerc 选项并根据总内存进行计算(除非您限制了容器可用的内存)。 .MemUsage 的单位会在容器的生命周期内发生变化,这会影响结果。

docker stats --format 'CPU: {{.CPUPerc}}\tMEM: {{.MemPerc}}'

您可以将正在进行的日志流式传输到文件(或脚本)。

要获得最初请求的最大内存:

(timeout 120 docker stats --format '{{.MemPerc}}' <CONTAINER_ID> \
| sed 's/\x1b\[[0-9;]*[a-zA-Z]//g' ; echo) \
| tr -d '%' | sort -k1,1n | tail -n 1

然后您可以向系统询问其总 RAM(再次假设您没有限制 docker 可用的 RAM)并计算:

awk '/MemTotal/ {print $2}' /proc/meminfo

您需要知道在使用上述超时时容器将运行多长时间,但如果 docker stats 在后台运行时没有此脚本提交的脚本,它可能会在容器中终止它完成。

...

此命令允许您生成 CPU/内存负载的时间序列:

(timeout 20 docker stats --format \
'CPU: {{.CPUPerc}}\tMEM: {{.MemPerc}}' <CONTAINER_ID> \
| sed 's/\x1b\[[0-9;]*[a-zA-Z]//g' ; echo) \
| gzip -c > monitor.log.gz

请注意,它通过管道传输到 gzip。在这种形式中,您每秒可以得到约 2 行,因此如果您不这样做,文件会迅速变大。

我建议将此用于基准测试和故障排除,而不是用于生产容器

关于docker - 如何从 docker stats 中找到 MAX 内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42809500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com