如何评估linux中speccific command/docker的CPU和Mem使用情况?
我正在为docker中运行的脚本编写yaml文件,并由kubernetes协调。有没有办法评估特定命令或docker的资源利用率,或者为POD设置cpu和mem限制的最佳实践是什么 编辑如何评估linux中speccific command/docker的CPU和Mem使用情况?,linux,docker,resources,kubernetes,Linux,Docker,Resources,Kubernetes,我正在为docker中运行的脚本编写yaml文件,并由kubernetes协调。有没有办法评估特定命令或docker的资源利用率,或者为POD设置cpu和mem限制的最佳实践是什么 编辑 大多数脚本将在短时间内运行,因此很难获取资源信息。我只是想找到一个工具来最大限度地利用cpu和mem,该工具的工作原理类似于time,用于打印执行时间。您可以使用docker stats命令查看容器的统计信息 比如, docker stats containera containerb CONTAINER
大多数脚本将在短时间内运行,因此很难获取资源信息。我只是想找到一个工具来最大限度地利用cpu和mem,该工具的工作原理类似于
time
,用于打印执行时间。您可以使用docker stats
命令查看容器的统计信息
比如,
docker stats containera containerb
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
containera 0.00% 24.15 MB / 1.041 GB 2.32% 1.8 MB / 79.37 kB 0 B / 81.92 kB
containerb 0.00% 24.95 MB / 1.041 GB 2.40% 1.798 MB / 80.72 kB 0 B / 81.92 kB
或者,请参阅使用docker top在容器中运行的进程
有限的资源
Docker compose(与Docker本身一样)允许您为容器设置资源限制,例如,限制使用的最大内存量、cpu共享等
阅读中的本节,以及上的docker run参考。您可以使用docker stats
命令查看容器的统计信息
比如,
docker stats containera containerb
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
containera 0.00% 24.15 MB / 1.041 GB 2.32% 1.8 MB / 79.37 kB 0 B / 81.92 kB
containerb 0.00% 24.95 MB / 1.041 GB 2.40% 1.798 MB / 80.72 kB 0 B / 81.92 kB
或者,请参阅使用docker top在容器中运行的进程
有限的资源
Docker compose(与Docker本身一样)允许您为容器设置资源限制,例如,限制使用的最大内存量、cpu共享等
请阅读中的这一部分,以及上的docker run参考。该问题有一些很好的答案:
TL;DR:/usr/bin/time-v
或使用valgrind
这将帮助您了解需要分配多少内存作为应用程序的限制,但CPU有点不同。如果你的应用程序是CPU受限的,那么不管你设置了什么限制,它都会使用你给它的所有CPU。此外,在Kubernetes中,您将内核(或毫内核)分配给应用程序,因此了解任何特定机器上使用了多少%的CPU并不总是非常有用,因为这不容易转化为内核
你应该给你的应用程序提供尽可能多的CPU核心,让你的应用程序在可接受的时间内成功。这将取决于成本和集群中可用的内核数量。这还取决于你的应用程序的架构。例如,如果应用程序不能利用多个核,那么多给它一个核就没有多大用处了
如果您有任何不再运行的应用程序,您可以尝试安装。如果您安装了Heapster,那么Kubedash将使用Kubernetes的内置指标来显示平均和最大CPU/内存利用率。当试图找出分配给特定应用程序的请求和限制时,它会有很大帮助
希望有帮助 这个问题有一些很好的答案:
TL;DR:/usr/bin/time-v
或使用valgrind
这将帮助您了解需要分配多少内存作为应用程序的限制,但CPU有点不同。如果你的应用程序是CPU受限的,那么不管你设置了什么限制,它都会使用你给它的所有CPU。此外,在Kubernetes中,您将内核(或毫内核)分配给应用程序,因此了解任何特定机器上使用了多少%的CPU并不总是非常有用,因为这不容易转化为内核
你应该给你的应用程序提供尽可能多的CPU核心,让你的应用程序在可接受的时间内成功。这将取决于成本和集群中可用的内核数量。这还取决于你的应用程序的架构。例如,如果应用程序不能利用多个核,那么多给它一个核就没有多大用处了
如果您有任何不再运行的应用程序,您可以尝试安装。如果您安装了Heapster,那么Kubedash将使用Kubernetes的内置指标来显示平均和最大CPU/内存利用率。当试图找出要分配给特定应用程序的请求和限制时,它会有很大帮助
希望有帮助 谢谢!大多数Docker都在短时间内运行,我认为很难通过top或ps等工具进行监控。我读过“资源的运行时约束”,这很有用,但我很好奇如何设置适当的限制。提前感谢。docker stats
通过docker remove API获取其数据。如果您正在实现自动化,则可以收集这些统计数据并将其存储在堆栈中。或者使用>“我很好奇如何设置适当的限制。”这是一个很难回答的问题,因为这实际上取决于您的用例。最好总是在容器上设置内存限制,以防止容器耗尽主机的所有可用内存,并(可能)导致内核“OOM”杀死随机进程。谢谢!大多数Docker都在短时间内运行,我认为很难通过top或ps等工具进行监控。我读过“资源的运行时约束”,这很有用,但我很好奇如何设置适当的限制。提前感谢。docker stats
通过docker remove API获取其数据。如果您正在实现自动化,则可以收集这些统计数据并将其存储在堆栈中。或者使用>“我很好奇如何设置适当的限制。”这是一个很难回答的问题,因为这实际上取决于您的用例。最好总是在容器上设置一个内存限制,以防止容器耗尽主机的所有可用内存,并(可能)导致内核“OOM”杀死随机进程。清楚而详细,这是非常有用的!非常感谢!清晰而详细,这是再好不过的帮助了!非常感谢!