Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re[2]: [apache-rus] PHP dynamicaly



In <Pine.LNX.4.02.9808271538320.22875-100000@frodo.dyn.ml.org> Stanislav Malyshev a.k.a Frodo (frodo@sharat.co.il) wrote:
>> Есть несколько виртуальных серверов на одном хосте. Общий траффик высокий.
>> Но только одному из них нужен PHP. Его траффик составляет всего 8%.
>> Начальство считает, что это плачевно скажется на производительности.

SF> Пардон, но даже если он весь статический, код грузится один раз, данные
SF> делаются copy-on-write, т.е. если PHP не пользуются, он вообще почти не
SF> будет заметен, если я правильно понимаю. Отожрет немного больше памяти при
SF> старте, ну и по чуть-чуть с каждого процесса, и все. Если сам Handler не
SF> работает, почему это должно сказаться на производительности?

При создании каждого Child'а будет требоваться несколько лишних миллисекунд и
каждый child потребует на 2-4K больше памяти. Все. Если используеются нормальный
*nix (FreeBSD или Linux или ..., ну в общем не Solaris :-)), то можно сказать,
что каждый child обрабатывает по 100000 запросов и свести эффект практически к
нулю. Конечно если у сервера каждый килобайт на счету (PHP требует на ОЧЕНЬ
загруженном сервере (который временами обрабатывает по 200-300 запросов
одновременно) где-то мег-полтора; это играет роль если сервер уже находится на
пределе -- скажем сервер на 486DX33 с 8Mb RAM и 100000-500000 hit'ов в день,
чего в реальной жизни я не встречал, хотя в теории такая комбинация возможна :-)
то можно подумать об отказе от PHP совсем или запуске нескольких httpd (хотя
здесь нужно считать -- в большинстве случаев это приведет опять же к проигрышу,
а не к выигрышу; ситуация когда это будет выигрыш: один виртуальный сервер
обрабатывает *тысячи* запросов *одновременно* (прикиньте какой канал для этого
нужен :-)), а второй использует PHP :-))

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

SF> Ну показать можно только benchmark...

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

P.S. Насчет "замечательной" идеи вынесения PHP в shared library. Если есть
только одна программа, которая использует библиотеку (в нашем случае httpd и
libphp), то превращение этой библиотеки в shared приводит к ЗАМЕДЛЕНИЮ как
работы (на некоторых архитектурах процессоров -- к Intel'у не отностися)
так и startup'а (всегда, в том числе и на Intel'е). А хотелось вроде бы
обратного ?








Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.