人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの同時処理についての質問です。

複数の画像(100枚)を1枚に合成するPHPプログラムがあります。
サーバーにかなりの負担がかかっているのですが、
このプログラムに例えば同時に20人とか30人がアクセスした場合は
正常に動くのでしょうか?
実行が遅くなるだけなら問題ないのですが…。


●質問者: t_yasu
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP アクセス サーバー プログラム 画像
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● studioes
●27ポイント

それは、サーバ次第です。

例えば、消費メモリが多いときに、同時アクセスでシステムのメモリを使い切ってしまえば、メモリ不足エラーで停止します。

また、PHPのタイムアウト設定があれば、同時処理によってタイムアウトしてしまって途中終了することもあります(プログラムを複数同時に動かしたときには、単純に動作数倍では済まず、プログラムの切替オーバーヘッドや、ディスクのランダムアクセスによる応答低下で著しく低下することがあります)

TOP等で実行情報を取得して、上記点を確認してみてはいかがでしょうか。

◎質問者からの返答

早速ありがとうございます。

TOPで実行情報を取得とはどのようにするのですか?


2 ● Yota
●27ポイント

max_execution_time

http://www.php.net/manual/ja/ref.info.php

memory_limit

http://www.php.net/manual/ja/ini.core.php#ini.memory-limit

などの調整をしないと完結しない可能性が大きいと思います。

あとはプロセスを一つずつ増やしながら、やってみるしかないのではないでしょうか。

◎質問者からの返答

ありがとうございました。

私が借りているサーバーは「php.ini」が変更できない仕様なのです…。


3 ● Yota
●26ポイント

回答者2です。

それなら、set_time_limit ( 0 ) ;としてみるとか。

http://www.php.net/manual/ja/function.set-time-limit.php

それと

実行が遅くなるだけなら問題ないのです

とのことですが、仮に1時間もかかったらユーザはその間パソコンの電源を落とすこともできず、もういいやとなるのではないでしょうか。

かかる時間によっては、別途メールで送るとか、翌日アクセスしてもらうなどの方法も考えたほうがいいと思います。

◎質問者からの返答

私が何度か試してみたところ、100枚合成するのに30秒くらいかかっていて、特にエラーは出なかったのですが、他の方に試してもらうと数分待ってエラーが出たとこ報告もありまして…。教えていただいた方法も試してみます。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ