Vovanisa
Guest
Переполнение памяти
1. Есть сервер в локальной сети (Linux. Apache. Оперативка 1Gb. Диск 3 терабайта. 2 проца) с файловым архивом кин размером от 400Mb до 1.5 Gb.
2. Apach находится /data/vhosts/htdocs
Фильмы за пределами http в /data/download
3. Чтобы скачать фильм зарегенный юзер проверяется скриптом на наличие WMZ на счету и т.д. и если у него положительный баланс, то со счета снимается N-ая копеечка и он забирает себе файл с фильмом таким скриптом на PHP
$fp = fopen($File_Server, "rb");
$filesize=filesize($File_Server);
if($fp){
header("Content-Description: File Transfer");
header("Accept-Ranges: bytes");
header("Content-Length: ".$filesize);
header("Content-Disposition: attachment; filename=".$file_avi);
header("Content-Type: application/x-force-download; name=\"$file_avi\"");
header("Content-Transfer-Encoding: binary");
ob_start();
while(!feof($fp)){
$buffer = fread($fp,1024*256);
echo $buffer;
flush();
ob_flush();
}
ob_end_flush();
ob_end_clean();
fclose($fp);
}
На сервере находится порядка 100 юзеров и при одновременной скачке происходит переполнение оперативки, бешеный свап и сервер удачно "затормаживается и ложится на бочок"
Прошу помочь где проблема в скрипте ?
1. Есть сервер в локальной сети (Linux. Apache. Оперативка 1Gb. Диск 3 терабайта. 2 проца) с файловым архивом кин размером от 400Mb до 1.5 Gb.
2. Apach находится /data/vhosts/htdocs
Фильмы за пределами http в /data/download
3. Чтобы скачать фильм зарегенный юзер проверяется скриптом на наличие WMZ на счету и т.д. и если у него положительный баланс, то со счета снимается N-ая копеечка и он забирает себе файл с фильмом таким скриптом на PHP
$fp = fopen($File_Server, "rb");
$filesize=filesize($File_Server);
if($fp){
header("Content-Description: File Transfer");
header("Accept-Ranges: bytes");
header("Content-Length: ".$filesize);
header("Content-Disposition: attachment; filename=".$file_avi);
header("Content-Type: application/x-force-download; name=\"$file_avi\"");
header("Content-Transfer-Encoding: binary");
ob_start();
while(!feof($fp)){
$buffer = fread($fp,1024*256);
echo $buffer;
flush();
ob_flush();
}
ob_end_flush();
ob_end_clean();
fclose($fp);
}
На сервере находится порядка 100 юзеров и при одновременной скачке происходит переполнение оперативки, бешеный свап и сервер удачно "затормаживается и ложится на бочок"
Прошу помочь где проблема в скрипте ?