phpのecho等で非常に遅いことがあります。

echo,print,ob_start&ob_end_flushでも同様の状態になります。
apacheのTimeout(120)までechoの処理が戻ってこないことがあります。

この事象が発生するクライアントは以下の4つで
64.94.67.203 Jakarta Commons-HttpClient/3.0
219.111.56.223 FreshReader/2.1.09072100 (id: ...
218.45.22.71 FreshReader/2.1.09070701 (id: ...
211.14.9.248 Y!J-BRO/YFSJ crawler (compatible; Mozilla 4.0; MSI...
特に64.94.67.203からのアクセスでリソースが圧迫されています

このような現象の原因と対処法を教えてください。

環境
centos5.4
Apache2.2.3
PHP5.3.0

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/01/05 17:40:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:km1967 No.1

回答回数541ベストアンサー獲得回数40

ポイント27pt

リストアップされているのは全てボット(エージェント)だが

echoだけの行なのか、他のスクリプトが書かれているのかが分からないと

何とも言えない

id:hisugawa

echoだけではなく他のスクリプトも書かれています。

直前では

header('Content-Type: application/xml; charset=UTF-8');

を実行していてその後のechoで出力する内容は

RSSのデータです。

headerの前にはデータベースから情報を取得する処理をしています。

2009/12/29 18:26:47
id:chinjoh No.2

回答回数103ベストアンサー獲得回数5

ポイント27pt

http://screw-axis.com/2009/07/05/php-performance-echo-print/

同時アクセス数が多いのが原因では?

id:hisugawa

リンク先は以前読みました。

特定のクライアントのアクセスで10秒以上時間がかかるのでURLの内容とは違うと思います。

同時アクセス数は多い時間帯で1秒5~10程度です

2009/12/29 18:21:54
id:pah00 No.3

回答回数208ベストアンサー獲得回数5

ポイント26pt

Jakarta Commons-HttpClient/3.0が複数立ち上がってるのではないでしょうか?

それか、Jakarta Commons-HttpClient/3.0はSPAMERがよく使うので、一定以上受け付けないように

なってるのかもしれません。

id:hisugawa

送信元がJakarta Commons-HttpClient/3.0で当方にアクセスしています。

一定以上受け付けないように設定しているのは当方のサーバの設定なのでしょうか。

それとも送信元が送信して受信は拒否しているのか、パケット追ってみます。

2009/12/29 18:33:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません