Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: многоядерное программирование на php

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: в какую сторону копать?
manking
Отправлено: 03 Ноября, 2010 - 19:44:41
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Можно ли нагрузить 2 - 4 и.т.д ядер в процессоре средствами PHP или надо настраивать операционную систему , веб сервер и другие компоненты системы?

В паралельном и многопоточном программировании пока не разбираюсь. Огорчение

Где нибудь можно посмотреть статьи или книги, где бы на примере PHP показывалось, как нагрузить все ядра?

Например в freebsd командой top показывается
CPU1 99%.
CPU0 0%
во время выполнения скрипта.
 
 Top
Мелкий Супермодератор
Отправлено: 03 Ноября, 2010 - 20:50:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




В рамках одного скрипта - многопоточности нет. (исключение: запуск других приложений в фон)
Превосходно параллелится, если несколько обращений к серверу.

(Отредактировано автором: 03 Ноября, 2010 - 20:51:03)



-----
PostgreSQL DBA
 
 Top
manking
Отправлено: 03 Ноября, 2010 - 23:50:36
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Мелкий пишет:
В рамках одного скрипта - многопоточности нет. (исключение: запуск других приложений в фон)
Превосходно параллелится, если несколько обращений к серверу.


А какие функции за это отвечают?

Ну а смысл в использовании например 8 ядерных процессоров вместо 2 ядерных, получается пропадает?
Я могу цикл распаралелить и получить выигрышь в производительности?
 
 Top
OrmaJever Модератор
Отправлено: 04 Ноября, 2010 - 01:43:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




manking пишет:
Ну а смысл в использовании например 8 ядерных процессоров вместо 2 ядерных, получается пропадает?
Я могу цикл распаралелить и получить выигрышь в производительности?
Мелкий пишет:
Превосходно параллелится, если несколько обращений к серверу.

Я думаю мелкий имел ввиду что если ты сам будешь запускать скрипт то он будет грузить только одно ядро. Но если этот скрипт запустишь ты и сосед то он разделится на 2 ядра Улыбка


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
JustUserR
Отправлено: 04 Ноября, 2010 - 12:19:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




manking Возможность распределение нагрузки по обеспечению выполения нескольких PHP-скриптов в различных потоках - обеспечивается конструкционными особенностями используемого web-сервера и интерфейсом подключения PHP-интерпретатора В частности механизм многопоточности может быть реализован в Apache - при использовани модуля раширения mpm_threading


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Мелкий Супермодератор
Отправлено: 04 Ноября, 2010 - 16:34:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




manking пишет:
Ну а смысл в использовании например 8 ядерных процессоров вместо 2 ядерных, получается пропадает?

Повторю ещё раз, более развёрнуто:
Один скрипт для одного клиента работает в одном потоке. Но если одновременно этот скрипт запрашивают 2 клиента - одновременно работают 2 потока, по потоку на обращение. Если обратятся 20 клиентов - 20 потоков и так вплоть до значений, установленных в конфиге апача.
Из-за этого веб-серверы линейно масштабируются от количества вычислительных ядер вплоть до предела сети, накопителей и памяти.

manking пишет:
Я могу цикл распаралелить и получить выигрышь в производительности?

Нативными средствами - нет.
Есть возможности такие:
0) сделать и скомпилить модуль к апачу, выполняющий нужные функции в несколько потоков
1) сделать внешнее приложение и вызывать его для расчётов


-----
PostgreSQL DBA
 
 Top
JustUserR
Отправлено: 05 Ноября, 2010 - 13:47:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Мелкий пишет:
Нативными средствами - нет.
Парамтеры выполнения серверного приложения типа CGI-скрипта обеспечиваемого при обработке пользовательского запроса в общем случае может быть настроено произвольным образом - в частности в качестве соответствующей программы обработки на windows-серверах может использоваться некоторое C#-приложение - которое обеспечивает встроенное распараллеливание ресурсов при работе на .NET framework 4 при установке соответствующего значения
Таким образом возможность использование параллельной обработки пользовательской информации при запросе - может быть осуществлено вне зависимости от конфгурации web-сервера


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Extalionez
Отправлено: 07 Апреля, 2011 - 20:54:23
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Извиняюсь, может уже было или не в тему, но с googl'а я сюда попал. Вот в чём вопрос:
Как распределить php сценарий на несколько СЕРВЕРОВ А?! ?
Простите за столь мало понятный вопрос, но понятнее у меня не получилось.
 
 Top
OrmaJever Модератор
Отправлено: 07 Апреля, 2011 - 21:01:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Extalionez погуглите nginx. Очень хороший сервер который может распределять нагрузку на несколько серверов.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB