書籍「Laravelの教科書」Laravel13対応サポートガイド公開中 → ダウンロードはこちら

WindowsでLaravel Sailを使うとメモリ不足でかたまってしまう原因を解説

Laravel Sailで環境構築!

WindowsにLaravel Sailの開発環境を作ると、Windows全体が固まったりすることがあります。これはLaravel Sailのせいというより、「WSL2のせい」だと考えられます。

このあたり、少し深堀していきますね。

Laravel Sailでトラブルになっている方の参考になればと思います。

なお、今回の現象が起こったのはWindows10環境です。

Junko
Junko

わたし自身、Laravel Sailを使おうとしましたが、マシンによってはうまくいかず悩んで調べました。

WindowsでLaravel Sailを使ったら画面が固まる現象

Laravel Sailは、Dockerを使った開発環境です。

Windows環境でDockerを使うには、先にWSL2を入れておきます。

WSL2は、Windows Subsystem for Linux の略です。これによって、仮想マシンを使い、Linux環境を実現できます。

この部分の手順は別の記事にまとめています。

このような形でWSL2とDockerをいれてLaravel Sail環境を構築すると、フリーズしてしまったりする場合があります。

最初のうちは問題ないものの、途中からトラブルが頻発したりします。

同じ状況になったときには、タスクマネージャー/プロセス をチェックしてみてください。パフォーマンスを見てみると【vmmem】という項目がすごい容量を取っている可能性があります。vmmemは、WSL2のプロセスとなります。

上記は問題ない時のプロセスをキャプチャしたものですが、すでに4GBもメモリが取られています。なお、メモリだけではなくCPUの処理負荷もすごいことになったりする場合もあります。

WindowsでLaravel Sailを使ったら画面が固まる原因

なぜこのようなことになってしまうのか。

どうやら、WSL2がLinuxを基準にメモリサイズをどんどん増やし、Linuxはどんどんキャッシュを増やすという悪循環が発生するようです*。

*参考:WSL2によるホストのメモリ枯渇を防ぐための暫定対処

少し昔のものになりますが、WSL2のスレッドでも、この件で物議を醸しだしていました。スレッド名は次のとおりです。

「WSL 2 consumes massive amounts of RAM and doesn’t return it
(WSL 2は大量のRAMを消費して、それを返さない)」

WindowsでLaravel Sailを使ったら画面が固まるときの対策?

ではどうしたらよいのか??

とりあえずWSL2を再起動すると、しばらくは改善するかと思います。

ですがまた発生した場合には、どうしたら良いのか。

サイト上でよく見かける回答は、「メモリに制限を加えればよい」というものです。WSL2が暴走しないように、あらかじめ制限を加えてしまえばよいわけです。

先程も言及した参考記事に、この部分の解説もあります。

ただLaravel Sail環境でこれを行うと、途中で止まってしまったりと開発に支障がでることがあります。

制限をかけたことでWindows自体は無事に稼働しますが、開発中のプロジェクトには、問題が出てきてしまう可能性があるのです。

他の解決方法としては、試していませんが、WSL2を使わずVirtual Boxを使ってDockerを入れる手もあります。

さいごに

ということで、もやもやっとした感じで終わりますが^^;

なんとなく原因が分かってスッキリはした、と思っていただけたら嬉しいです。

なおわたしは現在、Laravel Sailは実際の開発には使っていません。Xampp(ザンプ)をメインに使って、開発を進めています。

こちらについては、下記で分かりやすく解説してます。ご興味あれば併せてご覧ください。

Linux環境を使いたい場合は、以前から使っているHomesteadを使用したりします。Homesteadは、Virtual Boxを使うので、今回のような問題は起こりません。

Homesteadの解説記事は、下記のとおり。

併せて参考にしてください。

Junko
Junko

結局のところ、現時点ではWindows環境ならXAMPP(ザンプ)が一番使いやすいと思います。

Laravel Sailで環境構築!

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版Laravel13への対応に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel13に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した書籍を出版しました。 書店やAmazon等のオンラインショップにて販売中
最新版Laravel13対応用サポートガイド(PDF)あり
詳しくは下記ボタンをクリック

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。

全国書店やAmazon等のオンラインショップにて販売中

最新版Laravel13対応用
サポートガイド(PDF)あり
書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました