Kubernetes中内存单位Mi和M的区别,你知道吗?

开源
相信大多数人经常对kb、Kb、KiB、Mb、MiB、MB、TB、GB、bytes/s、bits/s、bps等之间的区别感到很困惑,反正我是困惑过。在区分它们之前,需要先了解一些关键的概念。

在kubernetes中会经常使用到Mi这个单位,刚接触kubernetes的同学应该很疑惑这个单位和M的区别吧,不求甚解的同学使用了很久的kubernetes后可能还不知道它们的区别(这种同学需要注意提高一下自我要求了)。

问题背景

相信大多数人经常对kb、Kb、KiB、Mb、MiB、MB、TB、GB、bytes/s、bits/s、bps等之间的区别感到很困惑,反正我是困惑过。在区分它们之前,需要先了解一些关键的概念:

  • 数据大小和数据速度的表示之有显著的差异,度量方法也不同。
  • 不仅仅是“b”(比特)和“B”(字节)有区别,“k”和“K”或“m”和“M”也有区别。
  • 大写的“K”/“M”用于存储行业,小写的“k”/“m”用于电信行业,有的人在写文档的时候可能会因为搞混二者而使用错。

在计算机软件世界里,KB是1024B,MB是1024KB即,可以依此类推下去,必须是2的次幂。但是在标准国际单位(International System of Units)或电信行业中(包括计算机硬,例如电脑的内存条如果是1M,意思就是1000*1000B而不是1024*1024B)中M是10的次幂。

kubernetes中的表示法

kubernetes为了防止这些问题的出现,采用了新标准,即使用M(Megabyte)表示1000*1000B,使用Mi(Mebibyte)表示1024*1024B。

看个例子

下面通过一个例子来具体看一下,分别创建两个pod, 一个申请1Mi, 另一个申请1M, 通过log来查看下他们申请内存容量的详细信息。

nginx-Mi.yaml:

apiVersion: v1
kind: Pod
metadata:
name: nginx-Mi
spec:
containers:
- name: nginx-Mi
image: nginx:latest
ports:
- containerPort: 80
resources:
limits:
cpu: 200m
memory: 128Mi
requests:
cpu: 0.1
memory: 1Mi

nginx-M.yaml:

apiVersion: v1
kind: Pod
metadata:
name: nginx-M
spec:
containers:
- name: nginx-M
image: nginx:latest
ports:
- containerPort: 80
resources:
limits:
cpu: 200m
memory: 128Mi
requests:
cpu: 0.1
memory: 1M

nginx-Mi相关日志有如下一行,可以看出 Memory=1024*1024。

predicates.go:565] Predicate: MilliCPU=100 Memory=1048576 NvidiaGPU=0 OpaqueIntResources=map[]

nginx-M相关日志有如下一行,可以看出 Memory=1000*1000。

predicates.go:565] Predicate: MilliCPU=100 Memory=1000000 NvidiaGPU=0 OpaqueIntResources=map[]


责任编辑:姜华 来源: 今日头条
相关推荐

2024-01-01 08:25:53

ViewSurface框架

2023-06-01 08:15:04

CentOS红帽

2015-08-24 09:23:25

2022-03-13 18:53:31

interfacetypeTypeScript

2023-12-29 22:41:12

同步架构业务

2019-01-07 13:01:08

Linux惊叹用法命令

2021-08-29 18:01:57

HTTP协议版本

2023-12-12 08:41:01

2021-04-29 22:31:51

显卡硬件芯片

2021-12-06 20:00:59

人工智能AI自动化

2015-05-26 09:42:34

路由器交换器

2021-02-06 21:57:40

Debug模式Release

2020-06-18 09:04:59

CC++程序

2022-04-12 08:02:52

云原生Kubernetes使用率

2018-05-11 15:53:59

2023-02-27 07:56:55

IngressKubernetes

2022-06-08 07:34:25

InnoDBdeleteMySQL

2022-03-10 08:25:27

JavaScrip变量作用域

2019-12-12 09:23:29

Hello World操作系统函数库

2021-07-27 08:02:45

DTO 软件Pojo
点赞
收藏

51CTO技术栈公众号