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
リンク先は以前読みました。
特定のクライアントのアクセスで10秒以上時間がかかるのでURLの内容とは違うと思います。
同時アクセス数は多い時間帯で1秒5~10程度です
Jakarta Commons-HttpClient/3.0が複数立ち上がってるのではないでしょうか?
それか、Jakarta Commons-HttpClient/3.0はSPAMERがよく使うので、一定以上受け付けないように
なってるのかもしれません。
送信元がJakarta Commons-HttpClient/3.0で当方にアクセスしています。
一定以上受け付けないように設定しているのは当方のサーバの設定なのでしょうか。
それとも送信元が送信して受信は拒否しているのか、パケット追ってみます。
echoだけではなく他のスクリプトも書かれています。
直前では
header('Content-Type: application/xml; charset=UTF-8');
を実行していてその後のechoで出力する内容は
RSSのデータです。
headerの前にはデータベースから情報を取得する処理をしています。