Skip to content

Why does a cluster or node show requested memory with a milli (m) unit?

Article Number: 000020185

Environment

  • RKE
  • RKE2

Situation

Why does a cluster or node shows requested memory with a milli (m) unit?

Resolution

CPU resources in Kubernetes are measured in millicpus, or 1/1000th of a CPU core, and 1 CPU Core = 1000m. The API will change any request for a decimal point into millicpus. For example 0.1 is converted into 100m. One hyperthread is considered one core, or 1000m.

Memory resources in Kubernetes are mesured in bytes, and can be expressed as an integer with one of these suffixes: E, P, T, G, M, K - decimal suffixes, or Ei, Pi, Ti, Gi, Mi, Ki - binary suffixes (more commonly used for memory), or omit the suffix altogether. Lowercase "m" notation is not a recommended suffix for memory.

The "m" notation for memory might indicate a misconfiguration, where CPU units are recommended to use that suffix (example: 200m), and Memory units are recommended to use "Mi" (example: 128Mi).