web-dev-qa-db-ja.com

Dockerコンテナーを単一のCPUコアに制限する

私は一貫した条件でコードを実行するシステムを構築しようとしていますが、これが可能だと思う1つの方法は、同じレイアウトでドッカーコンテナでさまざまなプログラムを実行し、同じ量のメモリを予約するなどですCPU使用率の一貫性を保つ方法を理解できないようです。

私が見つけることができる最も近いものは「CPU共有」です。ドキュメントを理解すれば、システム上で実行されている他のコンテナ/他のプロセスやシステムで利用可能なものに関してCPUの使用を制限できます。コンテナをCPU使用量の絶対量に制限することはできないようです。

理想的には、単一のCPUコアの使用に制限されるdockerコンテナーをセットアップしたいと思います。これはまったく可能ですか?

22
mavix

Dockerの新しいバージョンを使用する場合、--cpuset-cpus=""docker runを使用して、割り当てるCPUコアを指定できます。

docker run --cpuset-cpus="0" [...]

LXCをデフォルトの実行環境として使用する古いバージョンのDocker(<0.9)を使用する場合、--lxc-confを使用して、割り当てられたCPUコアを構成できます。

docker run --lxc-conf="lxc.cgroup.cpuset.cpus = 0" [...]

どちらの場合も、最初のCPUコアのみがdockerコンテナーで使用可能になります。これらのオプションは両方とも dockerヘルプで で文書化されています。

34
dcro

コンテナリソースの割り当てに関するチュートリアルを提供しようとしました。

https://Gist.github.com/afolarin/15d12a476e40c173bf5f

3
Amos Folarin