Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.17;
Скачать: CL | DM;

Вниз

Многопоточность в пхп, как лучше сэмулировать   Найти похожие ветки 

 
Nous Mellon_   (2008-06-30 11:51) [0]

Доброе время суток, возник вопрос для спецов в php и администрировании. Есть скрипт -- делает всякие выборки из мускул базы и создает файлики. Я бы хотел его сильно распараллелить. Есть мощный ксеон хочу пустить этот скрипт в n потоков так как друг от друга они не зависят. Вопрос -- как лучше сэмулировать многопоточность в пхп? Просто запусков 10 процессов фоном или лучше с помощью сокетов. Важно, именно с позиции скорости, как будет быстрее) Мб разницы особой вообще нет?


 
McSimm ©   (2008-06-30 11:55) [1]

Что значит "с помощью сокетов" ?
Скрипт из командной строки запускается или mod_php ?


 
Nous Mellon_   (2008-06-30 12:03) [2]

Ну во всех статьях в которых освещается проблема многопоточности в пхп, приводят в пример реализацию на неблокируемых сокетах. Я пытаюсь выяснить быстрее ли это чем просто n копий процесса пустить.
Скрипт пускается по крону


 
wicked ©   (2008-06-30 12:08) [3]

через http://php.net/pcntl-fork


 
Nous Mellon_   (2008-06-30 12:20) [4]

2wicked, спасибо, если можно чуть подробнее о преимуществах перед 2мя указанными способами


 
McSimm ©   (2008-06-30 12:23) [5]

Просто запускать несколько экземпляров, зачем тут fork ? Лишние проблемы с отслеживанием детей и их количества.

Сокеты это не реализация многопоточности, просто работа с сокетами (прием передача информации) может выполняться паралельно. Но к деланию всяких выборок и создаванию файликов в несколько потоков они отношения не имеют и помочь наверное не смогут.


 
Nous Mellon_   (2008-06-30 12:34) [6]

Спасибо, Максим. Я просто чего боюсь, пишут что при запуске параллельных процессов очень жестоко тратится память 15мб на каждый процесс, с другой стороны у меня и так там выборки некислые происходят, так что думаю выделенная память будет использована в любом случае...


 
McSimm ©   (2008-06-30 12:40) [7]

да, память тратится, если это действительно будет критично, то надо стоит посмотреть в сторону fork

Но при этом надо учитывать, что память чаще всего тратится из-за не очень экономного ее расхода в скрипте и правильно написанный скрипт сэкономит на порядки больше чем система при fork`ах
И второе - неправильно написанный механизм fork`ов может привести к большим проблемам, надо четко понимать его работу как с точки зрения ОС, так и особенности применительно к PHP


 
Nous Mellon_   (2008-06-30 14:21) [8]

ок, наверно стоит пооптимизировать скрипт и взять серв с 8гигами) Спасибо за помощь!


 
Мазут Береговой ©   (2008-06-30 18:26) [9]

А не проще ли сделать вебсервис и запускать кажды запрос на него - IIS самостоятельно создаст отдельные потоки для каждого запроса?


 
Ega23 ©   (2008-06-30 19:02) [10]

GCI - FastCGI?


 
Nous Mellon_   (2008-06-30 23:52) [11]

варианты переписать их пхп слишкои трудоемки и пока не рассматриваются)



Страницы: 1 вся ветка

Текущий архив: 2008.08.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
11-1192680509
homm
2007-10-18 08:08
2008.08.17
GRushControls 0.36


2-1215953221
Sick
2008-07-13 16:47
2008.08.17
Как изменить заголовок окна?


2-1216075012
DJ_UZer
2008-07-15 02:36
2008.08.17
кодировки, определение, открытие и преобразование


2-1215783986
MaximMar
2008-07-11 17:46
2008.08.17
Число, TDateTime


15-1214594861
stas
2008-06-27 23:27
2008.08.17
Посоветуйте фотоаппарат