私は一貫した条件でコードを実行するシステムを構築しようとしていますが、これが可能だと思う1つの方法は、同じレイアウトでドッカーコンテナでさまざまなプログラムを実行し、同じ量のメモリを予約するなどですCPU使用率の一貫性を保つ方法を理解できないようです。
私が見つけることができる最も近いものは「CPU共有」です。ドキュメントを理解すれば、システム上で実行されている他のコンテナ/他のプロセスやシステムで利用可能なものに関してCPUの使用を制限できます。コンテナをCPU使用量の絶対量に制限することはできないようです。
理想的には、単一のCPUコアの使用に制限されるdockerコンテナーをセットアップしたいと思います。これはまったく可能ですか?
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ヘルプで で文書化されています。
コンテナリソースの割り当てに関するチュートリアルを提供しようとしました。