Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何获取容器上特定进程的RAM、CPU和网络使用率_Logging_Docker_Virtual Machine_Centos7_Sysdig - Fatal编程技术网

Logging 如何获取容器上特定进程的RAM、CPU和网络使用率

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的工具从主机检索统计信息,而不

我正在看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。