【りそーすりみっと】
リソースリミット とは?
最終更新:
💡 CPUやメモリの使用に、上限を設ける
処理が使用する資源に設ける上限。KubernetesのCPU・メモリを例に、requestsとの違い、制限時の挙動と単位を解説します。
📌 このページのポイント
- このページはKubernetesのCPU・メモリ制限を中心に説明
- requestsは配置判断等に使う要求量、limitsは使用の上限
- CPU制限では、使えるCPU時間が制限される
- メモリ制限では、OOMでプロセスが終了する場合がある
リソース制限は、何を止めるの?
requestsも上限?
requestsは、必要とする資源の要求量だよ。スケジューラーはこれを使って配置先の余力を判断する。条件が許せば、コンテナは要求量を超えて使えるので、上限とは別なんだ。
CPUのlimitを超えようとしたら終了?
メモリも、同じように少し遅くなるだけ?
どうやって数値を決める?
実際の負荷とピーク、遅延や終了の記録を見て調整しよう。一律に何倍と決めるのではなく、処理に必要な量と同じ場所で動くほかの処理への影響を確かめるんだ。
もっと詳しく知りたい人へ
500mというCPUの設定は、何を表す?
CPUのmはミリCPUで、1000mが1 CPU、500mが0.5 CPUです。1 CPUは実行環境に応じて物理コアまたは仮想コアに相当します。ノード全体の50%という意味ではありません。
メモリのMiとMは同じ?
Miは2の累乗、Mは10の累乗の単位です。メモリのmはミリバイトで、CPUのミリCPUと意味が違います。CPUの設定をまねてメモリに400m等を書くと、意図した容量になりません。
📖 おまけ:英語の意味
「Resource Limit」 = 資源の使用量の上限
💬 資源の種類や実行環境で制限の方法は変わります。このページではKubernetesのコンテナでよく使うCPUとメモリを例にします。