php GD на несколько ядер. Вопрос.

Тема в разделе "PHP", создана пользователем ZiX, 21 окт 2015.

Статус темы:
Закрыта.
Модераторы: latteo
  1. ZiX

    ZiX Коддинг, Парсинг

    Moderator
    Регистр.:
    9 июл 2011
    Сообщения:
    1.390
    Симпатии:
    580
    Привет! Проблема вот какая... имеется vds ubuntu 14.04
    apache2
    nginx
    mysql
    всё как обычно.
    Стоит isp 5;
    Вопрос: Если просто тыкать по страницам, то загружаются почти равномерно все 3 ядра. Но если я например меняю размер картинки или режу с помощью php GD то работает только 1 ядро!
    Почему так? картинки 500кб - 10мб поэтому хотелось бы задействовать все ядра.
    Смотрел через htop.
    Есть у кого какие идеи? Заранее спасибо!
    вот так с GD
    2015-10-21 00-15-12 Скриншот экрана.png
     
    Последнее редактирование: 21 окт 2015
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    PHP умеет использовать только 1 поток/ядро...

    Ну вернее не совсем так, просто мы кодить не умеем: Перейти по ссылке
     
  3. ZiX

    ZiX Коддинг, Парсинг

    Moderator
    Регистр.:
    9 июл 2011
    Сообщения:
    1.390
    Симпатии:
    580
    так загрузка страницы нормально делится по ядрам.... или я чтото не понял?
     
  4. Stesh

    Stesh

    Регистр.:
    3 фев 2009
    Сообщения:
    201
    Симпатии:
    70
    Отдельно взятые процессы раскидываются по ядрам. А в контексте одного процесса в распоряжении только логическое ядро.
     
  5. ZiX

    ZiX Коддинг, Парсинг

    Moderator
    Регистр.:
    9 июл 2011
    Сообщения:
    1.390
    Симпатии:
    580
    Есть какие-то костыли чтоб разбить процесс? не встречали?
     
  6. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    Ты когда страницу 1 открываешь в 1 окно - будет 1 ядро... А вот за счёт AJAX и прочего - делится по ядрам...

    По костылям - я кинул ссылку...

    PHP - реально крутой язык. На нём можно делать офигенные вещи, просто мы сами себе рамку поставили - только генератор HTML... На деле - можно даже GUI-приложения делать ))) Ну и работа с процессами - тоже есть... Ничего не мешает отдать обработку дочерним процессам.
     
  7. metsys

    metsys

    Регистр.:
    27 апр 2014
    Сообщения:
    450
    Симпатии:
    434
    полагаю ответы на такие вопросы надо искать у разрабов модуля php GD и сорцах модуля php GD а также в их мейллистах, багтрекерах (если есть такие) итп
    многие рекомендуют перейти на другие обработчики изображений. в других есть явное задание multithreading при компилировании.
    ключ Перейти по ссылке
     
    ZiX и Горбушка нравится это.
  8. Rumantic

    Rumantic Создатель

    Регистр.:
    23 апр 2012
    Сообщения:
    15
    Симпатии:
    5
    Если встал вопрос о разделении обработки картинок на разные ядра процессора, то видимо проект достиг такой точки, когда надо подумать об отдельном сервере для картинок. Сервер для картинок, сервер для БД.
     
  9. ZiX

    ZiX Коддинг, Парсинг

    Moderator
    Регистр.:
    9 июл 2011
    Сообщения:
    1.390
    Симпатии:
    580
    Тема закрыта! Решение найдено!
     
Статус темы:
Закрыта.