详解docker容器的资源监控方案_docker search查资源

createh52个月前 (03-03)技术教程11



docker资源的监控方案

如何监控docker容器整体的资源利用率呢?如何监控独立docker容器的资源利用率呢?

先说结论:前者用kubesphere或者rancher(大厂都是自己搞的监控系统);

后者使用命令docker stats 容器id

有一个坑需要大家了解! 如果使用命令 docker exec 容器id /bin/bash 在容器中执行命令,并使用top进行监控,监控的是整个宿主机的资源!

详解docker stats

接下来我重点介绍一下docker stats命令的使用

默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容,输出结果如下:ctrl + c 终止命令输出。

输出结果的参数含义如下:

[CONTAINER ID]:显示容器的 ID。

[Name]:显示容器名称。

[CPU %]:CPU 的使用情况。

[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。

[MEM %]:以百分比的形式显示内存使用情况。

[NET I/O]:网络 I/O 数据。

[BLOCK I/O]:磁盘 I/O 数据。

[PIDS]:PID 号。

如果不想持续的监控容器使用资源的情况,可以通过 --no-stream 选项只输出当前的状态:

docker stats --no-stream 容器id

我们还可以格式化docker stats 的输出结果,例如只显示容器id和cpu的信息,可以执行如下命令

docker stats --format "{{.ID}}: {{.CPUPerc}}"

docker stats --format 详细参数介绍如下:

.Container Container name or ID

.Name Container name

.ID Container ID

.CPU Perc CPU 利用率

.MemUsage Memory 使用情况

.NetIO Network IO

.BlockIO Block IO

.MemPerc Memory percentage (Windows不可用)

.PIDs Number of PIDs (Windows不可用)

docker资源日志图像生成思路

如果我们想生成漂亮的图形界面,实现思路如下,

1.执行命令 docker stats --format "{{.Container}}: {{.CPUPerc}}">file , 生成cpu数据(同理生成内存、磁盘以及网络等数据)

2.然后解析file中的数据,生成图形界面(可以考虑python的 matplotlib库)

相关文章

Java 输入输出(I/O)详解_java oj输入输出

Java 输入输出(I/O)详解Java 提供了丰富的类库来处理输入输出操作。这些类主要位于 java.io 包中。以下是关于 Java I/O 的详细讲解,分为几个部分:文件 I/O、标准输入输出、...

Java I/O不迷茫,一文为你导航_java +i+

来源于公众号我没有三颗心脏 ,作者我没有三颗心脏前言在之前的面试中,每每问到关于Java I/O 方面的东西都感觉自己吃了大亏..所以这里抢救一下..来深入的了解一下在Java之中的 I/O 到底是怎...

深入理解JAVA I/O系列一:File_java file操作

I/O简介 I/O问题可以说是当今web应用中所面临的的主要问题之一,大部分的web应用系统的瓶颈都是I/O瓶颈。这个系列主要介绍JAVA的I/O类库基本架构、磁盘I/O工作机制、网络I/O工作机制以...

Java I/O(2):NIO中的Channel_java channel实现原理

您好,我是湘王,这是我的头条号「湘王说」,欢迎您来,欢迎您再来~为了解决标准Java I/O令人难以忍受的效率问题,从JDK1.4开始,NIO出现了(Non-blocking I/O,官方称之为New...

第一个Java程序_第一个java程序教学设计

第一个Java程序描述使用 Java 实现,编写第一个程序,即 Java HelloWorld。Java HelloWorld新建一个 HelloWorld.java 文件,如下:然后在这个文件中写以...

Java中i++和++i如何理解其含义_java中i++与++i

事实上,在 C、C++、Java 等编程语言当中,i++ 与 ++i 均旨在递增变量 i 的值,只不过在表达式里的行为存有差异。这牵涉到前缀递增(++i)以及后缀递增(i++)的概念。后缀递增(i++...