【PHP7】Out of memoryエラーでメモリ使用率が99.9%、サイトが真っ白。

NEWS
この記事は約3分で読めます。

はじめに

年末年始のお休みのときにWordPressのプラグインを色々インストールして自分のサイトを少しずつ充実させていこうとがんばっていたら、いきなりinternal server error 500が表示された。。

マジっすか!?と思いサーバにログインしてログを確認すると以下のエラーが。。

PHP Fatal error: Out of memory (allocated 2097152) (tried to allocate 73728 bytes)

メモリ不足ですか。。

結構久しぶりにサーバにログインしたのですが、やっぱり日頃からちゃんとメンテしないといけませんね。

以下の通り、php.iniの「memory_limit」の値を変更してみました。

;memory_limit = 128M
memory_limit = 256M

Apacheを再起動して様子をみます。

数十分後、スマホにアラートメールが届く。

メモリの使用率が90%超えだったので上記の設定変更では意味がなかったようです。。

Apacheを再起動したら一時的に事象が解消されるのを考慮すると、やはりApacheのチューニングが必要みたい。

色々調べながらhttpd.confをチューニングした結果、やっと解決しました!

チューニング内容は以下の通りです。

※httpd.confの抜粋

StartServers 3
ServerLimit 2
MaxClients 50
ThreadLimit 25
ThreadsPerChild 25
MaxRequestsPerChild 10000
MaxMemFree 2048
Timeout 300

KeepAlive On
MaxKeepAliveRequests 80
KeepAliveTimeout 15

最初は「ServerLimit 4」で「MaxClients 100」に設定してたのですが、相変わらずメモリ使用率99%になったので、上記の通りに変更しました。

数時間経ってもメモリ使用率が40%台で落ち着きました。

念のためもう少し様子を見ながら細かくチューニングしたいと思います。

とりあえず、解決してよかった!

<追記>

数カ月経ちましたが、一度もサイトが不安定にならなかったのでチューニングは成功したようです!

もっとApacheも勉強せねば。

コメント

タイトルとURLをコピーしました