misty
Новичок
утечка памяти в скрипте, за час сжирает гиг оперативы
скрипт отдает мп3файл пользователю, в момент когда около 20 человек одновременно качают файлы, апач сжирает от гига до двух после чего сервер виснет, работает через nginx+apache. php версии 5.1.2
вот скрипт, из-за которого скорее всего происходит утечка, еслик то-то сталкивался или видит тут мои ошибки, буду счастлив если укажиет на них.
Утечка заключается в том, что отдавая контент нджинксу, память не освобождается (
скрипт отдает мп3файл пользователю, в момент когда около 20 человек одновременно качают файлы, апач сжирает от гига до двух после чего сервер виснет, работает через nginx+apache. php версии 5.1.2
вот скрипт, из-за которого скорее всего происходит утечка, еслик то-то сталкивался или видит тут мои ошибки, буду счастлив если укажиет на них.
Утечка заключается в том, что отдавая контент нджинксу, память не освобождается (
PHP:
$attachment = 'attachment;';
if(!$content = @file_get_contents($row['path'].$row['fname'])){
$content='error';
$row['fname'] = 'error.html';
$row['size'] = strlen($content);
$attachment = '';
header('Content-type: '.mime_content_type($row['path'].$row['fname']));
header('Content-Disposition: '.$attachment.' filename='.$row['fname']);
header('Content-length: '.$row['size']);
echo $content;
exit;
}
if ($row['fname'] != 'error.html') {
$range = (int) substr($headers['Range'], 6);
$content = substr($content,$range);
header('HTTP/1.1 206 Partial Content');
header('Accept-Ranges: bytes');
header('Content-Range: bytes '.$range.'-'.($row['size']-1).'/'.$row['size']);
} else {
header("HTTP/1.0 200 OK");
}
header('Content-type: '.mime_content_type($row['path'].$row['fname']));
header('Content-Disposition: '.$attachment.' filename='.(($conv_charset)?iconv($in_charset, $out_charset,$row['fname']):$row['fname']));
header("Content-length: ".($row['size'] - (int)$range));
echo $content;
exit;