前景提要
HDC调试需求开发(15万预算),能者速来!>>>
一次执行 100个PHP进程,为什么只有一部份在运行,还有一些一直没有动,我用strace -p PID 看到的都是类似这样的: [user@server ~]$ sudo strace -p 29559 Process 29559 attached - interrupt to quit poll([{fd=7, events=POLLIN}], 1, 1000) = 0 (Timeout) poll([{fd=7, events=POLLIN}], 1, 0) = 0 (Timeout) poll([{fd=7, events=POLLIN}], 1, 1000) = 0 (Timeout) poll([{fd=7, events=POLLIN}], 1, 0) = 0 (Timeout) poll([{fd=7, events=POLLIN}], 1, 1000) = 0 (Timeout) poll([{fd=7, events=POLLIN}], 1, 0) = 0 (Timeout) poll([{fd=7, events=POLLIN}], 1, 1000) = 0 (Timeout) poll([{fd=7, events=POLLIN}], 1, 0) = 0 (Timeout) poll([{fd=7, events=POLLIN}], 1, 1000) = 0 (Timeout)
linux命令行下执行的PHP是这样的: php test.php 0,100 php test.php 100,100 php test.php 200,100 php test.php 300,100 php test.php 400,100 php test.php 500,100 php test.php 600,100 ....
这样的批量运行了有尽100个,test.php 里是用curl抓取网页的;
php-fpm 我设置了超时时间为0 :
slowlog = log/$pool.log.slow request_slowlog_timeout = 3s request_terminate_timeout = 0 log.slow中没有日志记录
php文中里CURL函数部分: $ch = curl_init(); $user_agent1='Mozilla/5.0 (Windows NT 5.1; rv:6.0) Gecko/20100101 Firefox/6.0'; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, 0); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); $content =curl_exec($ch); curl_close($ch);