PHP内存泄漏问题

时间:2013-11-25 04:20:39

标签: php apache memory-leaks

我正在使用以下脚本

<?php
set_time_limit(0);
if(isset($_GET['videoURL']) && $_GET['videoURL']!=''){
    $URL=$_GET['videoURL'];
    $URL=base64_decode($URL);

    //clear all previous buffers start a new one
    ob_end_clean( ); ob_start( );

    // open file
    $handle = @fopen($URL, 'rb'); 

    // Forward headers, $http_response_header is populated by fopen call
    foreach ($http_response_header AS $header) {
        header($header);
    }

    //send header information
    ob_clean(); flush(); 

    $chunksize = 8*1024;

    $buffer = ''; 
    while (!feof($handle) ) { 
      $buffer= @fread($handle,$chunksize); 
      print $buffer;
      ob_flush(); 
      flush(); 
    } 
    fclose($handle); 
    exit;
}
?>

将视频流式传输给用户。 apache2进程正常运行,直到一个进程突然开始填充RAM并导致服务器崩溃。

我不确定,但我相信它的内存泄漏问题。如果我使用PID终止进程,那么一切都会变得平滑,否则服务器就会停止。

请在这方面帮助我。

Apache配置:

<IfModule mpm_prefork_module>
    StartServers          1
    MinSpareServers       1
    MaxSpareServers      20
    MaxClients           256
   MaxRequestsPerChild  10
</IfModule>

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      5
    MaxSpareThreads      25
    ThreadLimit          10
    ThreadsPerChild      10
    MaxClients           112
    MaxRequestsPerChild   5
</IfModule>

0 个答案:

没有答案