• ベストアンサー

サーバのスペックについて

宜しくお願いします。 PHPのプログラムで、画像のアップロード時に一つの画像につき5種類の解像度に分けるプログラムを作っています。一度にアップロードできる画像枚数は3枚です。携帯用の画像なので、各端末に合わせ、リサイズと画像容量を調整しているのですが、画像容量を調整する箇所で、100回の繰り返し処理を各画像毎に行っており、1枚の画像で500回、計1500回の繰り返し処理を行っています。そのうち、実際に画像を作成する工程を行っているのは半数の750回程だと思います。その処理を行わせると、サーバの反応が非常に遅いんです。これは、サーバスペックの問題なのか、私のネットワーク環境なのか判断がつきません。サーバスペックの問題だった場合、どれくらいのスペックが必要なのでしょうか? サーバスペック CPU:pen4 2.4GHz(占有サーバ) メモリ:1GB 回線速度 FTTH(gooのベンチで常時10M程度) アップロードする画像 容量:168KB サイズ:1000×500Pixel サーバや回線の問題ではなく、プログラムが無茶なんでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

接続帯域に平均10Mあれば、とくに画像の転送で苦労することはないと思います。PHPベースの2ちゃんねるブラウザ(P2)を2000年モデルのCeleronサーバーで運用した場合、極端にもたつく経験をしたことがあるので、PHP処理+750~1500回の画像処理がボトルネックになっている気がします。

nikuq
質問者

お礼

ありがとうございます。 やはり、プログラムを見直します。

その他の回答 (2)

noname#17587
noname#17587
回答No.2

私もパフォーマンスを見るのに賛成 ネットワークよりサーバリソース見てみればどうでしょう Linux系ならtop、Windows系なrタスクマネージャやパフォーマンスモニタで見てください

  • 0KG00
  • ベストアンサー率36% (334/913)
回答No.1

サーバのOSが解りませんが、Linux系ならMRTGなどを用いてボトルネックがどこになっているのかを探ってみては。 個人的には、プログラムの書き方がまずいと思います。さすがに、画像の伸縮を1回のアップで1500回はなあ...1回の処理で0.1秒としても1分以上かかりますね。ディスクアクセスならもっと遅いでしょうし、メモリに展開にしても劇的に早くはならないでしょう。入り口の時点で機種を判別して解像度を取得して、解像度毎の繰り返し処理をなくしては如何でしょうか?100回というのも良くわかりませんが...

参考URL:
http://www.iin.gr.jp/~taka/server/mrtg.html
nikuq
質問者

お礼

ありがとうございます。 やっぱりプログラムがきびしいのでしょうか・・・。 もうちょっと考えてみます。

関連するQ&A