2

ユーザーが画像をアップロードするサイトがあります。これらの画像は、さまざまな寸法にサイズ変更されます。私は現在、サーバーでそれを行っていますが、AWS などで処理することを考えていました。それは良い考えですか?

4

3 に答える 3

7

私は EC2 と専用サーバーを同様のタスクに使用してきました。ここにいくつかのヒントがあります。

  1. できるだけ少ない IO を使用します。ImageMagick のようなものを使用するつもりなら、ディスクへの書き込みは io リソースの浪費であることを知っておいてください (とにかくキャッシュしたい場合を除きます)。PHP/GD では、http 応答で jpeg を直接送信できます。

  2. できるだけ早く RAM を解放する: 可能な限り、ソースとサイズ変更された画像を解放します。サーバーがメモリをスワップアウトする可能性を排除します。

  3. EC2 は、コンテキスト スイッチを使用すると非常に遅くなります。そのため、できるだけ少なくしてみてください。Gimp のようなプロセッサは非常に遅いです (スケールダウンには専用で 0.2 秒、EC2 で 7 秒かかりました)。また、ImageMagick は非常に遅いです。可能であれば、すべての処理に PHP/GD を使用してください。

  4. 最大メモリを設定することを忘れないでください。メモリ内にイメージの 2 つのコピーが必要になります (ソースと縮小)。

  5. 最後になりましたが、リアルタイムで開始します。mysql キューと外部デーモンの過剰なソリューションから始めないでください。これらを長期的に維持するのは難しいでしょう。ロケットを作る前にリアルタイムで試してみてください。

幸運を!

于 2008-10-27T00:03:23.377 に答える
2

画像を処理するのにどれくらいの時間がかかり、処理が予想される数を把握する必要があります。

サーバーが負荷のピーク時にリアルタイムでそれらを処理できる場合は、今は心配する必要はありません。

サーバーが負荷を処理できるが、リアルタイムで処理できない場合は、サーバー上にキューを作成し、cron ジョブまたはデーモンに要求の外で画像を処理させると思います。キューが大きくなり始めたり、サーバーが過負荷になったりした場合は、別のマシンに移動できます。

その他のマシンが負荷を処理できない場合は、キューを処理するマシンを簡単に追加できるはずです。

その時点で、あなたはおそらくかなり洗練されており、オンデマンドのスケーリングなどのために EC2 を利用し始めることができます。

于 2008-10-25T15:33:10.730 に答える
0

大規模なスケールアウトとロードの必要性が予想される場合は、EC2 サーバーを使用してサイズ変更を行い、それらを S3 に保存できます。最終的には、成長と予算に応じて、多くの要因に依存します。サーバーの現在の負荷はどのくらいで、容量に近づいていますか? 画像のサイズを変更するのに必要なサイズと CPU の量はどのくらいですか? また、画像をキャッシュして再利用できますか? 画像はどのように使用されていますか?

于 2008-10-25T11:35:49.073 に答える