Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нагрузка CPU на сервере
 
 автор: fivem   (28.02.2011 в 00:47)   письмо автору
 
 

Здравствуйте! Столкнулся с такой проблемой: на сайте в сутки уников бывает где то 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 быстрее. это существенно снизит нагрузку ?

  Ответить  
 
 автор: Trianon   (28.02.2011 в 00:56)   письмо автору
 
   для: fivem   (28.02.2011 в 00:47)
 

каким запросом вытягиваете размер файла?

  Ответить  
 
 автор: fivem   (28.02.2011 в 01:04)   письмо автору
 
   для: 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 в 16:17)   письмо автору
 
   для: fivem   (28.02.2011 в 01:04)
 

Подскажите что можно сделать ?

  Ответить  
 
 автор: fivem   (28.02.2011 в 18:16)   письмо автору
 
   для: fivem   (28.02.2011 в 16:17)
 

функция memory_get_usage показывает что в среднем скрипт хавает 2318520 памяти.
это может вызвать такую нагрузку на проц ? или все таки причина в скрипте который отдает файл с другого сервера. ??

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования