2017-01-18 16 views
1

PHP関数を使用して画像を切り取ったりサイズを変更したりすると、メモリ使用量が多いことが通知されます(imagecreatefromjpeg()imagecrop()imagecopyresampled()など)。PHPイメージを使用したメモリ使用量の増加

このクロップモジュールをCMSに実装して、50人が同時にクロップ関数を呼び出したとします。メモリ使用量に50を掛けてサーバーのメモリリソースをオーバーロードしますか?

もしそうなら、要求を待ち行列に入れたり、過負荷を防ぐにはどうすればよいでしょうか?

答えて

0

あなたの質問に直接答えは出ないかもしれませんが、私の経験から、1人のユーザーが少数のイメージでウェブサーバー全体を殺すことを望まないので、イメージ操作を別のサーバーで処理する方が常に優れています。

イメージが別のサーバーで処理されて死んでも、最悪のことはイメージが404を返すことですが、Webサーバー自体は正常に動作し続けます。

いずれにしても、ImageMagickなどのライブラリを使用することをお勧めします。それは使いやすく、私はあなたがそれを超えることができないメモリの制限を設定することができると信じています。

私が画像操作のために見つけた最良の方法はAWS Lambdaです。サーバーレスのnodeJSスクリプトを簡単に作成して、画像をダウンロードし、変更を行い、サーバーにアップロードし直すことができます。毎日何千ものイメージを処理する必要がなければ、ほとんど無料で実行することができます。同時に100回までの同時呼び出しを処理できます(基本的には100台のサーバーを一度に起動します)。理論的には、あなたの要求をキューに入れなければなりません。

関連する問題