kubernetes中的記憶體表示單位Mi和M的區別

wyfem發表於2021-09-09

記得以前看過一篇文章(現在找不到了),那篇文章講到了申請memory的單位M,它認為1M=1024K=1024x1024位元組,但在k8s中的M表示的意義是不同的,今天特意看了一下官方文件,並實驗了一把,特此記錄。
官網解釋:,Mi表示(1Mi=1024x1024),M表示(1M=1000x1000)(其它單位類推, 如Ki/K Gi/G
建立兩個pod, 一個申請1Mi, 另一個申請1M, 透過log來檢視他們的區別。
nginx1.yaml

apiVersion: v1kind: Podmetadata:  name: nginxspec:  containers:  - name: nginx1
    image: nginx:test
    ports:    - containerPort: 80    resources:      limits:        cpu: 200m
        memory: 128Mi
      requests:        cpu: 0.1
        memory: 1Mi

nginx2.yaml

apiVersion: v1kind: Podmetadata:  name: nginx2spec:  containers:  - name: nginx2
    image: nginx:test
    ports:    - containerPort: 80    resources:      limits:        cpu: 200m
        memory: 128Mi
      requests:        cpu: 0.1
        memory: 1M

nginx1.yaml(Mi)申請資源的資訊如下,可以看到Memory=1024*1024

I0716 11:05:43.555791   31331 factory.go:469] About to try and schedule pod nginx
I0716 11:05:43.555804   31331 scheduler.go:165] Attempting to schedule pod: default/nginx
I0716 11:05:43.555866   31331 predicates.go:565] Predicate: MilliCPU=100 Memory=1048576 NvidiaGPU=0 OpaqueIntResources=map[]

nginx2.yaml(M)申請資源的資訊如下,Memory=1000*1000

I0716 11:05:58.404826   31331 factory.go:469] About to try and schedule pod nginx2
I0716 11:05:58.404840   31331 scheduler.go:165] Attempting to schedule pod: default/nginx2
I0716 11:05:58.404904   31331 predicates.go:565] Predicate: MilliCPU=100 Memory=1000000 NvidiaGPU=0 OpaqueIntResources=map[]

         

             




作者:Mark_Zhang
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2894/viewspace-2820558/,如需轉載,請註明出處,否則將追究法律責任。

相關文章