一、Docker容器(container)
容器是镜像的运行时实例。正如从虚拟机模板上启动 VM 一样,虚拟机和容器最大的区别是容器更快并且更轻量级——与虚拟机运行在完整的操作系统之上相比,容器会共享其所在主机的操作系统/内核。
容器依赖于宿主机才能运行。宿主机可以是笔记本,是数据中心的物理服务器,也可以是公有云的某个实例。
在下面的示例中,假设宿主机是一台需要运行 4 个业务应用的物理服务器。服务器启动之后,所选择的操作系统会启动。在 Docker 世界中可以选择 Linux,或者内核支持内核中的容器原语的新版本 Windows。其中OS 占用了全部硬件资源。在 OS 层之上,需要安装容器引擎(如 Docker)。容器引擎可以获取系统资源,比如进程树、文件系统以及网络栈,接着将资源分割为安全的互相隔离的资源结构,称之为容器。每个容器看起来就像一个真实的操作系统,在其内部可以运行应用。按照前面的假设,需要在物理机上运行 4 个应用。因此,需要划分出 4 个容器并在每个容器中运行一个应用,如下图所示。从更高层面上来讲,容器是操作系统虚拟化(OS Virtualization)——容器将系统资源划分为虚拟资源。
二、grafana指标
1 )cpu
在grafana面板中,cpu limit指标数据为100% * count(core)
因此在推算cpu负载时,单一core的负载百分比为:cpu usage/count(core)
2 )memory
容器监控的内存相关指标
1、container_memory_rss:常驻内存集(Resident Set Size),是分配给进程使用实际物理内存
2、container_memory_usage_bytes:当前使用的内存量,包括所有使用的内存,不管有没有被访问
3、container_memory_cache:高速缓存(cache)的使用量
4、container_memory_swap:虚拟内存使用量
5、container_memory_working_set_bytes:当前内存工作集(working set)使用量
container_memory_usage_bytes = container_memory_rss + container_memory_cache + container_memory_swap
container_memory_working_set_bytes = container_memory_cache + container_memory_rss
3 )Network Traffic
在grafana面板中网络流量检测数据单位为Mbps
Mbps是megabits per second的缩写,是一种传输速率单位,指每秒传输的位(比特)数量。1Mbps代表每秒传输1,000,000位(bit),即每秒传输的数据量为:1,000,000/8=125,000Byte/s。
因此可得到:1Mbps=0.125MB/s