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

createh52周前 (03-03)技术教程2



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、标准输入输出、...

10分钟看懂 Java IO 底层原理_java底层是用什么语言写的

来源:cnblogs.com/crazymakercircle/p/10225159.html前文我们提到了 Java I/O,顺着这个坡,我们进入 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 IO 中常用的目录和文件操作,用到的时候从这里拷贝就行了

文件是操作系统对磁盘上数据的组织形式。文件包括文件路径和文件名,比如:/Users/Calvin/Desktop/demo.txt 复制代码文件名的后缀其实是文件名的一部分,文件不一定要有后缀,但是一...

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

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