【问题标题】:How to get RAM, CPU, network usage on a specific process on a container如何获取容器上特定进程的 RAM、CPU、网络使用情况
【发布时间】:2016-07-01 17:08:54
【问题描述】:

我正在查看在 Centos7 虚拟机上运行的许多 Docker 容器。每个容器将运行多个进程。对于每个进程,我希望能够查看 CPU 网络和 RAM 使用情况,以确定容器何时开始过载。获得容器的 CPU 和 RAM 是不够的,因为 CPU 可能分配了 100% 的 RAM,但在进程中实际上有空闲的 RAM。我已经使用 Sysdig chisels 来获取单独进程的 CPU 使用率,但没有合并网络和 RAM 使用。特别是对于网络统计信息,我希望能够知道网络数据包丢弃的任何其他相关统计信息。理想情况下,我可以使用类似 Sysdig 的工具从主机检索统计信息,而不必使用容器内的资源来运行单独的日志生成器。

【问题讨论】:

标签: logging docker virtual-machine centos7 sysdig


【解决方案1】:

我相信您可以使用docker top <container id> 来查看容器中运行的所有进程,但这不会显示内存和cpu 使用情况等。

您可以按照 cmets 中的建议使用 docker stats <container id> 查看整个容器的总内存使用量、cpu 使用量、i/o 等。

或者,您也可以使用docker exec -it <container id> bash 登录到您的容器并亲自查看,但请注意,根据您的基础,您可能没有可用的bash,因此您可能必须使用sh

【讨论】:

  • 您实际上可以只使用docker attach <container id> 命令,这将允许您进入容器并使用容器具有的任何命令行工具。问题在于它现在是在容器上而不是主机上运行的进程,因此它会占用 RAM 和 CPU,如果您正在记录,那么还会占用容器上的磁盘空间和 I/O,而不是主机.
猜你喜欢
  • 2012-06-15
  • 1970-01-01
  • 2011-04-27
  • 2015-12-03
  • 2015-04-14
  • 1970-01-01
  • 1970-01-01
  • 2018-07-23
  • 1970-01-01
相关资源
最近更新 更多