manifestに「128Mi」と書くか「128M」で済ませるか、毎回検索している気がする。 requestsに書いた数字、桁を間違えていないか不安になる。 Miのつもりで書いたmが、実は別の意味だったら。 このツールは、KubernetesのCPUとメモリの数量表記をコア数・ミリコア・バイト・Ki〜Eiとk〜Eの各単位に一覧で変換し、紛らわしい単位との差も表示します。
使い方
- CPUの欄に「500m」や「0.5」「2」のように入力します。コア数とミリコアが並んで出ます。
- メモリの欄に「128Mi」「128M」「129e6」「2Gi」のように入力します。バイトと、Ki〜Ei・k〜Eの全単位での値が一覧になります。
- メモリの単位が Mi や M のように対になる単位を持つときは、数値はそのままで単位だけ入れ替えた場合の差が、入力欄の下の注意書きに出ます。
ここまでが基本の操作で、入力するたびに結果が更新されます。
- 不正な形式のときは、欄の下にエラーが出ます。メモリで大文字の K を使った場合や、CPUに Mi などを付けた場合も、理由つきで止まります。
仕組み・計算式
換算の根拠は、Kubernetes公式ドキュメントの「Resource units in Kubernetes」と、「Meaning of CPU」「Meaning of memory」の節です。CPUの1は1コアで、ミリコアの m は1000分の1です。つまり 500m は 0.5 コアで、1000m が 1 コアになります。
メモリは、1024のべき乗の Ki・Mi・Gi・Ti・Pi・Ei と、1000のべき乗の k・M・G・T・P・E が使えます。1000倍側の k だけ小文字なのは、仕様がそう決めているからです。2進接頭辞の Ki・Mi などは IEC 80000-13 で定められた記号と同じ体系です。単位のない数値はバイトで、129e6 のような指数表記も使えます。
式にすると、こうなります。
バイト数 = 数値 × 接頭辞の倍率
Ki=1024, Mi=1024², Gi=1024³ / k=1000, M=1000², G=1000³
メモリの m は、CPUと同じ「1000分の1」です。単位がバイトなので、128m は 0.128 バイトという意味になります。公式ドキュメントにも、メモリに 400m と書くと 0.4 バイトの要求になるという趣旨の注意があります。
計算例
ツールの換算ロジックと同じ式を node で実行して確かめた値です。
例1: CPU の 250m。 0.25 コアです。逆に 1.5 と入れると 1,500m になります。
例2: 128Mi と 128M。 128Mi は 134,217,728 バイトで、128M は 128,000,000 バイトです。数字は同じ128なのに、128Mi のほうが約 4.8576% 大きくなります。ツールで 128M を入れると、128Mi として読んだ場合との差が同じ割合で出ました。
例3: 1Gi と 1G。 1Gi は 1,073,741,824 バイトで、1G は 1,000,000,000 バイトです。差は約 7.3741824% あります。単位が大きくなるほど差が開くので、1Ti と 1T では約 9.9512% 違います。
例4: 境界値の 128m。 メモリ欄に 128m を入れると、バイトは 0.128 になります。128Mi のつもりで、Mが小文字になり i が抜けただけで、桁が9つ違う値です。
意外だったのは、129e6 が 129M とまったく同じ 129,000,000 バイトになることでした。これは Mi に直すと約 123.02Mi です。
よくある間違い
メモリに小文字の m を付ける。 CPUで 500m と書き慣れていると、メモリでも「m = メガ」と思ってしまいますよね。メモリの m は 1000分の1バイトです。128Mi のつもりなら Mi、128MB のつもりなら M と書いてください。確かめるなら、ツールのメモリ欄に入れて、バイトが 0.128 と出るかを見ます。
Mi と M を同じものだと思う。 128Mi は 134,217,728 バイトで、128M は 128,000,000 バイトです。既存の manifest の M を Mi に書き換えるときは、その分だけ要求量が変わります。上限ぎりぎりで運用しているコンテナなら、効いてくる差です。
大文字の K を使う。 1000倍の接頭辞は小文字の k だけです。128K と書くと、このツールはエラーを返します。1024倍にしたいなら Ki です。
よくある質問
Q. 128Mi と 128M は、どちらを書けばいいですか?
A. 迷うなら Mi を使っています。1024ベースの値で、メモリの上限として読みやすいからです。ただし好みが分かれる部分で、既存の manifest が M で揃っているなら、そちらに合わせるほうが差分は小さく済みます。
Q. 単位を付けない数値は、どう扱われますか?
A. バイトとして扱われます。ツールに 1073741824 を入れると、1Gi と同じ 1 Gi として表示されました。
Q. CPU に Mi のような単位を付けられますか?
A. 付けられません。CPUで使えるのは、コア数の小数と m だけです。ツールでも、CPU欄に Mi などを入れると専用のエラーが出ます。
Q. 0.5 と 500m は、どちらが良いですか?
A. 実行上の意味は同じです。ツールでは 0.5 を入れると 500m、500m を入れると 0.5 と、どちらも両方の表記で表示されます。公式ドキュメントでは 0.1 のような小数よりも、100m の形が勧められています。
関連ツール
最終更新・根拠の確認日: 2026-10-19 · カテゴリ: 開発・データ