Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > php генератор картинки вешает httpd


Автор: jone31 11.9.2012, 21:22
есть скрипт, который генерирует превью большой картинки(большой всмысле ~300кб) для галереи... 
так вот если в галереи маленькая (1-2 картинки) то все отрабатывает нормально, однако если в галерею добавить более 5 картинок, то при загрузке страницы, на скрипт обрушивается больше 5 запросов и генератор превью вешает апач... и соответственно весь сайт, помогает только ребут апача... но фишка в том что это происходит "раз в два года"(всмысле не часто, но и не редко)... 

превью картинки загружаются с img src, 

Код

    header("Content-type: image/jpeg");
    if( $_GET["height"] ){ $height = $_GET["height"]; } else { $height=200; }
    if( $_GET["width"] ){ $width = $_GET["width"]; } else { $width=200; }
    $rgb=0xffffff;
    $size = getimagesize($source);
    $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
    $icfunc = "imagecreatefrom" . $format;
    if (!function_exists($icfunc)) return false; 
    $x_ratio = $width / $size[0];
    $y_ratio = $height / $size[1];
    $ratio       = min($x_ratio, $y_ratio);
    $use_x_ratio = ($x_ratio == $ratio);
    $new_width   = $use_x_ratio  ? $width  : floor($size[0] * $ratio);
    $new_height  = !$use_x_ratio ? $height : floor($size[1] * $ratio);
    $new_left    = $use_x_ratio  ? 0 : floor(($width - $new_width) / 2);
    $new_top     = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2); 
    $img = imagecreatetruecolor($width,$height);
    imagefill($img, 0, 0, $rgb); 
    $photo = $icfunc($source);
    imagecopyresampled($img, $photo, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]);
    imagejpeg($img);
    imagedestroy($img);
    imagedestroy($photo);


в момент отработки скрипты в логи ничего плохого не выкидывает(ни апач, ни php)... просто молча виснет... 

превью генерится в доли секунды, и почему вешается апач не могу понять... не ужто не выдерживает 5 запросов в секунду к скрипту?

Автор: jone31 11.9.2012, 21:38
хотя нет, все таки нашел в апаче строчку:
Цитата

server reached MaxClients setting, consider raising the MaxClients setting


хотя в httpd.conf стоит 
Цитата

MaxClients         150


!?!?!?!

Добавлено через 1 минуту и 56 секунд
хотя этот вопрос наверно уже в другой раздел...

Автор: ksnk 11.9.2012, 22:43
Это как это? Каждый раз когда нужно просмотреть всю галерею, на сервере начинается пересборка картинок? Обычно превьюшки и картинки наиболее часто использующихся размеров генерятся на этапе загрузки картинки и в дальнейшем сервер не грузят.

Цитата(jone31 @  11.9.2012,  21:22 Найти цитируемый пост)
 не ужто не выдерживает 5 запросов в секунду к скрипту?

Сессия, случайно, не используется? Если от одного пользователя 5 запросов в секунду - может просто блокироваться сессия.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)