0

Docker Engine API (Json API) を使用して Docker コンテナを起動するバックエンド サーバー プログラムがあり、Docker コンテナあたりの CPU コア数をたとえば 1 に制限したいと考えています。

Docker Engine API ドキュメントには、コンテナーの CPU 設定を構成するためのいくつかのオプションがあります。 https://docs.docker.com/engine/api/v1.24を参照してください。

"HostConfig": {
     "CpuPercent": 80,
     "CpuShares": 512,
     "CpuPeriod": 100000,
     "CpuQuota": 50000,
     "CpusetCpus": "0,1",
     "CpusetMems": "0,1"
}

これを使用することもできますCpusetCpusが、どの Docker コンテナーがどの CPU コアに割り当てられているかのリストを保持する必要があるため、これは非常に面倒です。(コンテナがどの CPU コアで実行されているかは気にしません。複数の CPU コアを使用することを避けたいだけです。)

また、各 docker コンテナーがすべての CPU コアの 12.5% のみを使用するように設定することもできCpuQuotaます。これは、8 つの CPU コアを持つサーバーの 1 つの CPU コアに相当します。このアプローチの問題は、異なる数の CPU コアを持つ別のサーバーでバックエンド プログラムを実行すると、CpuQuota12.5% の設定が 1 つの CPU コアに対応しなくなることです。

上記のオプションはどちらも扱いにくく、理想とはほど遠いものです。コンテナごとの CPU コアの数を設定するための、より優れた/より簡単な方法があるに違いありません!

4

1 に答える 1