Logging 如何获取容器上特定进程的RAM、CPU和网络使用率
我正在看Centos7虚拟机上运行的许多Docker容器。每个容器将运行多个进程。对于每个进程,我希望能够看到CPU网络和RAM使用情况,以确定容器何时开始过载。获取容器的CPU和RAM是不够的,因为CPU可以分配100%的RAM,但在进程中实际上有剩余的RAM。我已经使用Sysdig凿子来获得单独进程的CPU使用率,但是没有将网络和RAM的使用结合起来。特别是对于网络统计,我希望能够知道丢弃的网络数据包的任何其他相关统计数据。理想情况下,我可以使用类似Sysdig的工具从主机检索统计信息,而不必使用容器中的资源来运行单独的日志生成器。我相信您可以使用Logging 如何获取容器上特定进程的RAM、CPU和网络使用率,logging,docker,virtual-machine,centos7,sysdig,Logging,Docker,Virtual Machine,Centos7,Sysdig,我正在看Centos7虚拟机上运行的许多Docker容器。每个容器将运行多个进程。对于每个进程,我希望能够看到CPU网络和RAM使用情况,以确定容器何时开始过载。获取容器的CPU和RAM是不够的,因为CPU可以分配100%的RAM,但在进程中实际上有剩余的RAM。我已经使用Sysdig凿子来获得单独进程的CPU使用率,但是没有将网络和RAM的使用结合起来。特别是对于网络统计,我希望能够知道丢弃的网络数据包的任何其他相关统计数据。理想情况下,我可以使用类似Sysdig的工具从主机检索统计信息,而不
docker top
查看容器中运行的所有进程,但这不会显示内存和cpu使用情况等
您可以按照注释中的建议,使用docker stats
查看整个容器的总内存使用率、cpu使用率、i/o等
或者,您可以登录到您的容器中,只需使用
docker exec-it bash
亲自查看一下,根据您的基础,您可能没有可用的bash,因此您可能必须使用sh
我相信您可以使用docker top
查看容器中运行的所有进程,但这不会显示内存和cpu使用情况等
您可以按照注释中的建议,使用docker stats
查看整个容器的总内存使用率、cpu使用率、i/o等
或者,您可以登录到您的容器中,使用
docker exec-it bash
自己查看一下,但是请注意,根据您的基础,您可能没有可用的bash,因此您可能必须使用sh
一个容器不应包含多个进程。您可以使用:docker stats
查看容器的总统计信息。是的,传统上docker容器只运行一个进程。一个容器中有多个进程的用例,但是docker文档谈到了运行多个进程[嗯,这是新的,非常有趣。有一个upvote;)容器不应该包含多个进程。您可以使用:docker stats
查看容器的总统计信息。是的,传统上docker容器只运行一个进程。但是,容器中有多个进程的用例:[和docker文档讨论运行多个进程[嗯,这是新的,非常有趣。请进行投票;)实际上,您可以使用docker attach
命令,这将允许您进入容器并使用容器中的任何命令行工具。问题是,它现在是一个在容器上运行的进程,而不是主机,因此它将消耗RAM和CPU,如果您重新记录,然后在容器(而不是主机)上重新记录磁盘空间和I/O。实际上,您可以使用docker attach
命令,该命令将允许您进入容器并使用容器拥有的任何命令行工具。问题是,它现在是在容器上运行的进程,而不是在主机上运行的进程,因此会消耗RAM和CPU,如果您正在记录,那么容器上的磁盘空间和I/O,而不是主机上的磁盘空间和I/O。