Оптимизация скрипта по использованию памяти

Sirius

PHP+MySQL=LOVE
Оптимизация скрипта по использованию памяти

Всеизвестно, что php-скрипты исполняются на сервере, а следовательно едят его ресурсы. Всё бы ничего, но при увеличении количества юзеров нагрузка становится ощутимой. Так для каждого юзера в память загружается очередной php-файл? Я знаю, что можно сделать например так, как реализовано в chat.php.spb.ru - заходит юзер, программа загружается в память, заходит второй юзер, используется таже программа в памяти и т.д. Если нет юзеров, программа выгружается или может быть сидит как демон!

Кто-нибудь может посоветовать где прочитать об этом алгоритме, командах более подробно?
 

AnToXa

prodigy-одаренный ребенок
хм.
решений несколько.
1. Юзать всяческие кэши. APCCache, ZendAccelerator и т.п.
2. Писать демона на пхп, что в общем-то не лучший выбор.
3. Не изврашаться и написать демона на чем-то нормальном для системного программирования, на C/С++ например
4. КУПИТЬ НАКОНЕЦ-ТО НОРМАЛЬНОЕ ЖЕЛЕЗО
 

clevel

Новичок
3. Не изврашаться и написать демона на чем-то нормальном для системного программирования, на C/С++ например
а где почитать можно про эту технологию подробнее?
 

AnToXa

prodigy-одаренный ребенок
демон - неинтерактивная прога, которая постоянно сидит в памяти.

пример - апач
 

Sirius

PHP+MySQL=LOVE
Демон - это прекрасно!

А нельзя написать демона на пхп - какая разница - он займёт в памяти определённое место и остальные проги будут проходить через него!
Я знаю, что демон используют некоторые скрипты - к примеру чаты, списки рассылок! Чаты chat.php.spb.ru, voodoo chat, 452-maillist (по-моему использует сокет) и т.д.
 

AnToXa

prodigy-одаренный ребенок
можно. напиши на пхп :)
сделай set_time_limit (0); и запусти что-нить вроде
/usr/local/bin/php твой_скрипт, который типа демон :)
 

Sirius

PHP+MySQL=LOVE
set_time_limit (0); - это значит вечно или 0 секунд?

А не имея ssh запустить демона нельзя?

И есть ли готовые примеры демонов на пхп? Хочу посмотреть принципы их работы!
 

Tronyх

Новичок
А есть ли статьи по деманам, желательно принцип его написания
 

AnToXa

prodigy-одаренный ребенок
а что там такого особенного. просто пхп скрипт, который чего-то делает и не выгружается из памяти...

принцип написания - надо следить за ресурсами
 

Sirius

PHP+MySQL=LOVE
Типа принимать параметры других скриптов - например формы отсылки, обрабатывать и генерировать страницы?

А он не сдохнет от большого количества запросов?
 

С.

Guest
Потом этот демон начнет выделять памать для сеансов работы с каждым индивидуальным юзером и все вернется на круги своя.

Есть такой демон уже. Апач называется.
 

Sirius

PHP+MySQL=LOVE
Апач держит несколько сайтов - и иногда умирает от глупых прог, тем самым снося все процессы. А так будет умирать только тот самый демон - нанося вред только самому скрипту работающему на демоне!

Многие большие проекты (поедающие много оперативки - такие как чат, поиск в интернете) должны работать на демонах!

Получается, что нужно писать демон только на перле или с - и вдобавок слушать другой (не апачевский) порт!
 

AnToXa

prodigy-одаренный ребенок
Апач держит несколько сайтов - и иногда умирает от глупых прог, тем самым снося все процессы.
глупые проги - не проблема апача :)

Получается, что нужно писать демон только на перле или с - и вдобавок слушать другой (не апачевский) порт!
можно сделать модуль в апач, который будет пересылать необходимые данные демону, или те же самые простенькие программки, которые будут с ним общаться.
 

Sirius

PHP+MySQL=LOVE
можно сделать модуль в апач, который будет пересылать необходимые данные демону, или те же самые простенькие программки, которые будут с ним общаться.
Это избавляет от использования другого порта - это хорошо!
Требует доступа к системному администрированию - это плохо!

Ну хорошо, второе отложим - если задача настолько большая, то можно и попросить админа сервера!

А где прочитать про написание таких модулей?
 

AnToXa

prodigy-одаренный ребенок
в яндексе :)
и еще почитай apidoc апачевский
 

clevel

Новичок
по каким ключевым словам искать? на слово демон всякую чушь выдает...
 
Сверху