モヒカンは正義

プログラマー風林火山で言う「風のエンジニア」になりたい(比較的)若者Webエンジニアの備忘録

Docker for Macが路頭に迷わないようにたくさんメモリを食べられるようにする

こんにちは。

軽量でポータブルな開発&実行環境としてDockerが人気ですね。 僕は数年前までは開発環境にはもっぱらVagrantを使っていたのですが、最近は仕事でもプライベートでもDockerしか使ってないです。

f:id:pinkumohikan:20190209144001p:plain

Dockerは単純に捨てやすい開発環境という使い方もできるし、うまいこと作ると設定ファイルを差し替えたらすぐ本番で動かせるぞ、という使い方も出来ます。後者だと 12 factor appで言う 開発/本番一致 がしっかり出来て最高ですね。

さて、Dockerにはメモリ使用量の制限設定があり、それがネックになって開発中のプログラムの動きが鈍くなったり応答しなくなったことがあったので、誰かの役にたてばいいなと思ってメモリ使用量の増やし方をメモります。

1. Docker for Macへのメモリ使用量を確認する

まずは現状確認をしましょう。

Docker for MacのPreferencesを開きます。

f:id:pinkumohikan:20190209142106p:plain

f:id:pinkumohikan:20190209142123p:plain

次にAdvancedのタブを開き、Memoryの量を確認します。

f:id:pinkumohikan:20190209142158p:plain

メモリ使用量制限は2GBのようです。

2. 制限に引っかかっていることを確認する

プログラムの動きが鈍いのが本当にメモリ使用量制限のせいであるかを確認しましょう。

アクティビティモニタのメモリタブを開きます。

f:id:pinkumohikan:20190209142526p:plain

1.9Gぐらい使っているようですね。メモリ使用量制限の値が2GBだったので数字だけ見ると若干の余裕はありますが、瞬間的に引っかかって縮退した可能性が高そうです。

3. メモリ使用量制限の値を引き上げる

Docker for MacのPreferencesに戻って、2GBとなっていたところを引き上げます。いくらに引き上げるかは総メモリ量と他にどのぐらい同時作業するかによりますが、僕の場合はメモリ16GBマシンで同時に使うのはSlackとIntelliJぐらいなのでガツッと8GBにしました。

一度しか設定できないものではないので、これでもしほかが逼迫したら引き下げればいいよねぐらいの楽観です。

f:id:pinkumohikan:20190209142901p:plain

Apply & Restart を押して、dockerデーモンが上がってきたらdone。

4. プログラムがスムーズに動くようになったか確認する

すむーーーずになりました。

たまに起きていた動きがめちゃ遅になったり応答しなくなったりすることはなくなりました。やっぱりメモリやったんやな!

あとあと見たらdocker-composeでdb含む環境一式を立ち上げてバリバリ動いている状態だと4.7Gぐらいメモリ食ってたので、8GBっていう割り当ては妥当だった模様。

f:id:pinkumohikan:20190209143449p:plain