|
|
|
| Здравствуйте! Столкнулся с такой проблемой: на сайте в сутки уников бывает где то 1200-1600.
на сервере дают 5% Нагрузки CPU в час.
Лог нагрузки:
27.02.2011 23:00 - 23:59 17.600%
27.02.2011 22:00 - 22:59 24.920%
27.02.2011 21:00 - 21:59 22.800%
27.02.2011 20:00 - 20:59 19.900%
27.02.2011 19:00 - 19:59 21.830%
27.02.2011 18:00 - 18:59 15.730%
27.02.2011 17:00 - 17:59 16.200%
27.02.2011 16:00 - 16:59 17.350%
27.02.2011 15:00 - 15:59 16.680%
27.02.2011 14:00 - 14:59 16.900%
27.02.2011 13:00 - 13:59 16.120%
27.02.2011 12:00 - 12:59 14.130%
27.02.2011 11:00 - 11:59 10.670%
27.02.2011 10:00 - 10:59 5.580%
27.02.2011 09:00 - 09:59 4.670%
27.02.2011 08:00 - 08:59 4.100%
27.02.2011 07:00 - 07:59 3.120%
27.02.2011 06:00 - 06:59 3.020%
27.02.2011 05:00 - 05:59 3.220%
27.02.2011 04:00 - 04:59 0.170%
27.02.2011 03:00 - 03:59 3.780%
27.02.2011 02:00 - 02:59 4.950%
27.02.2011 01:00 - 01:59 5.830%
|
На сервере стоит скрипт который отдает пользователю файлы со стороннего сервера и пользователи их скачивают через мой сайт соответственно. В среднем 1 файл весит 5мб. так же когда выводится список файлов (со стороннего сервера) для каждого файла получается его размер через сокеты анализируя HTTP заголовки.
Как можно снизить нагрузку ? я убрал информацию о размере файла - скрипт стал работать раз так в 2,5 быстрее. это существенно снизит нагрузку ? | |
|
|
|
|
|
|
|
для: fivem
(28.02.2011 в 00:47)
| | каким запросом вытягиваете размер файла? | |
|
|
|
|
|
|
|
для: Trianon
(28.02.2011 в 00:56)
| | Воспольовался решением из давнишней задачки
function filesize2($name)
{
$_GET['name']=$name;
if(isset($_GET['name']))
{ // получим ссылку и очистим её от возможных магических кавычек
$name = get_magic_quotes_gpc() ? stripslashes($_GET['name']): $_GET['name'];
// разберем её на составляющие
$url = parse_url($name);
$host = isset($url['host'])? $url['host'] : "www.softtime.ru";
$path = isset($url['path'])? $url['path'] : "/";
$port = isset($url['port'])? $url['port'] : 80;
if(isset($url['query'])) // вернем параметры запроса,
$path .= '?' . $url['query']; // если были в исходном URI
// попробуем соединиться с сервером
if(!($f = fsockopen($host, $port, $ern, $ers)))
die("Cannot connect to $host: Error #$ern ($ers)");
// и запросить заголовок (HEAD) отклика
fputs($f, "HEAD $path HTTP/1.0\r\nHOST: $host\r\nREFERER: $url\r\n\r\n");
// прочтем ответ
for($reply = ''; !feof($f); ) $reply .= fgets($f);
fclose($f);
// Если положительный ответ не пришел
if(!preg_match("|^HTTP/[\d]+\.[\d]+[\s]+200[\s]|i", $reply))
{ $lines= explode("\n", $reply); echo $lines[0]; } // покажем ответ
else // определим и напечатаем длину
if(preg_match("|\nContent-length:[\s]+([\d]+)|i", $reply, $res))
return $res[1];
else return 0;
}
else return 0;
}
|
| |
|
|
|
|
|
|
|
для: fivem
(28.02.2011 в 01:04)
| | Подскажите что можно сделать ? | |
|
|
|
|
|
|
|
для: fivem
(28.02.2011 в 16:17)
| | функция memory_get_usage показывает что в среднем скрипт хавает 2318520 памяти.
это может вызвать такую нагрузку на проц ? или все таки причина в скрипте который отдает файл с другого сервера. ?? | |
|
|
|