コンテナで実行した jvm からはリソースがどう見えているか
特にCPUコア数がどう見えてるのか気になったので。
環境
コンポーネント | バージョン |
---|---|
OS | Windows 10 Professional 10.0.17763 |
仮想環境 | Hyper-V |
minikube | v1.15.0 |
java | OpenJDK 11 |
こういうノードで試した。
kubectl get node/minikube -o yaml | yq read - status.capacity cpu: "4" ephemeral-storage: 44529848Ki hugepages-2Mi: "0" memory: 8154628Ki pods: "110"
単純に jshell で次のコードを実行しただけ。
System.out.println(Runtime.getRuntime().availableProcessors()); System.out.println(Runtime.getRuntime().maxMemory() / 1024 / 1024);
まとめ
limits.cpu
を四捨五入した値になるみたい。
limits.cpu |
availableProcessors() |
---|---|
なし | 1 |
500m 以下 | jshell がタイムアウトする |
500m | 1 |
1000m | 1 |
1500m | 2 |
2000m | 2 |
2500m | 3 |
3000m | リソース不足でコンテナが起動せず |