Kubernetes中內(nèi)存單位Mi和M的區(qū)別,你知道嗎?
在kubernetes中會(huì)經(jīng)常使用到Mi這個(gè)單位,剛接觸kubernetes的同學(xué)應(yīng)該很疑惑這個(gè)單位和M的區(qū)別吧,不求甚解的同學(xué)使用了很久的kubernetes后可能還不知道它們的區(qū)別(這種同學(xué)需要注意提高一下自我要求了)。
問(wèn)題背景
相信大多數(shù)人經(jīng)常對(duì)kb、Kb、KiB、Mb、MiB、MB、TB、GB、bytes/s、bits/s、bps等之間的區(qū)別感到很困惑,反正我是困惑過(guò)。在區(qū)分它們之前,需要先了解一些關(guān)鍵的概念:
- 數(shù)據(jù)大小和數(shù)據(jù)速度的表示之有顯著的差異,度量方法也不同。
- 不僅僅是“b”(比特)和“B”(字節(jié))有區(qū)別,“k”和“K”或“m”和“M”也有區(qū)別。
- 大寫的“K”/“M”用于存儲(chǔ)行業(yè),小寫的“k”/“m”用于電信行業(yè),有的人在寫文檔的時(shí)候可能會(huì)因?yàn)楦慊於叨褂缅e(cuò)。
在計(jì)算機(jī)軟件世界里,KB是1024B,MB是1024KB即,可以依此類推下去,必須是2的次冪。但是在標(biāo)準(zhǔn)國(guó)際單位(International System of Units)或電信行業(yè)中(包括計(jì)算機(jī)硬,例如電腦的內(nèi)存條如果是1M,意思就是1000*1000B而不是1024*1024B)中M是10的次冪。
kubernetes中的表示法
kubernetes為了防止這些問(wèn)題的出現(xiàn),采用了新標(biāo)準(zhǔn),即使用M(Megabyte)表示1000*1000B,使用Mi(Mebibyte)表示1024*1024B。
看個(gè)例子
下面通過(guò)一個(gè)例子來(lái)具體看一下,分別創(chuàng)建兩個(gè)pod, 一個(gè)申請(qǐng)1Mi, 另一個(gè)申請(qǐng)1M, 通過(guò)log來(lái)查看下他們申請(qǐng)內(nèi)存容量的詳細(xì)信息。
nginx-Mi.yaml:
nginx-M.yaml:
nginx-Mi相關(guān)日志有如下一行,可以看出 Memory=1024*1024。
nginx-M相關(guān)日志有如下一行,可以看出 Memory=1000*1000。