From:             [EMAIL PROTECTED]
Operating system: Linux
PHP version:      4.0.4pl1
PHP Bug Type:     cURL related
Bug description:  CURL/PHP causes lengthy Apache Keepalive

Greetings. I have Apache/1.3.14 (Unix) running with 
PHP/4.0.4pl1 installed as a module and CURL 7.7.1 added to 
that. Our web sites need to fetch a request from a remote 
ad server in real-time as each page is generated. If $adr 
is the request, I used to use: 

$success = @readfile($adr); 

But then I found CURL and saw that is (a) was more robust 
and (b) seems to be more efficient than readfile. So I now 
use CURL in he following way: 

$aje_ch = @curl_init($adr); 
@curl_setopt ($aje_ch, CURLOPT_TIMEOUT, 1); 
@curl_setopt ($aje_ch, CURLOPT_MUTE, 1); 
@curl_exec ($aje_ch); 
@curl_close ($aje_ch); 

This works great, except that if I have "Keepalive on" in 
my Apache configuration file, the httpd server sits in 
keepalive state for FAR longer when using CURL than it does 
when using readfile. In the course of 2 or 3 hours, my 
server would normally be at about 150 httpd processes 
running at any given point in time. But when using CURL, it 
jumps to 650 httpd processes, with the lions share (99%) of 
those sitting in the keepalive state for very long. It 
seems like the CURL requests are causing Apache to set its 
Keepalive timeout to something much higher than it should 
be. Setting "keepalive off" in Apache's conf file works 
around this problem, but decreases server efficiency. I'd 
love to solve this problem. 

Please help! :-) 

For the record, this was posted to the cURL bug tracker 
over on SourceForge 
(http://sourceforge.net/tracker/?func=detail&atid=100976&ai
d=418860&group_id=976), and we went through quite a few 
gyrations with no success.  Specifically, we tried 
disabling KeepAlive on the REMOTE server to see if that had 
any affect, and it did not.  It seems not to matter what we 
request from, rather that any requests using 
PHP/cURL/Apache result in the LOCAL Apache bloating out of 
control with KeepAlive requests.  Reverting back to 
readfile() based requests solves this problem but, well, 
cURL is better.  ;-)

All help would be appreciated, and I am available and 
willing to test anything on our servers.

Thanks! 

-Dave   


-- 
Edit Bug report at: http://bugs.php.net/?id=10673&edit=1



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to