#author("2020-09-22T03:46:25+09:00","default:ryuichi","ryuichi")
#author("2020-09-22T03:51:04+09:00","default:ryuichi","ryuichi")
* CPUやメモリーリソースを制限 Ver2系 [#f215fd8c]

** 前提 [#k6e9651d]

- CPUやメモリーリソースの制限は、Dockerfileの2系と3系では大きく変わっており、互換性がない。3系ではDocker Swarmを利用するようになっている。2系の中でもサポートされているオプションがかなり違うようだ。
-- https://stackoverflow.com/questions/52308815/resource-limits-specified-in-docker-compose-yml-not-taken-into-account-by-docker
- ここでは2系で説明する。

** 準備 [#f13c8557]
*** Dockerfile [#jd091e92]

 FROM ubuntu
 
 RUN apt-get update && apt-get install -y \
   stress
 
 CMD stress --cpu 8 --timeout 20

- Ubuntuにstressコマンドをインストールして実行する。stressはCPU負荷を強制するベンチマークツールで、今回は8コアを20秒間に設定している

*** docker-compose.yml [#bede3b9c]

 version: '2.4'
 services:
   myst:
     image: stress
     container_name: myst
     tty: true
     stdin_open: true
     cpus: '0.3'
     cpuset: 0,1

- ここではCPU使用率を30%、CPUコアをコア0とコア2に制限している。詳しくは次を参照。 https://docs.docker.jp/engine/reference/run.html#runtime-constraints-on-resources
- ここではCPU使用率を30%、CPUコアをコア0とコア1の計2コアに制限している。詳しくは次を参照。 https://docs.docker.jp/engine/reference/run.html#runtime-constraints-on-resources
- なお、ホストOSのマシンが8コア16スレッドなら、コンテナ内では16コアで認識される。


** 実行 [#f1f9850c]

 docker-compose up

- ホストOSがWindowsならタスクマネージャーでパフォーマンスを確認する

** 参考 [#lda9fb68]

- https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu-and-other-resources

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS