[Typo3-UG Russia] Hosting + php-accelerator

Larionov Dmitriy ldmitry at onet.ru
Sat Jun 18 13:32:40 CEST 2005


Здравствуйте, уважаемые all !

Читая ваши отзывы, помимо всего, я нашел неправильное понимание моего
слова "дешевизна" в выражении:

>   Про mod_php и все акселераторы под него, считаю, что их используют
>   из-за дешевизны и незнания альтернатив.
>   Друзья, дешевизна враг хорошего!

это вызвало упоминания платных систем от Sun и HP и т.д. Хочу
прокомментировать что я имел ввиду. Сорри за неуточненку раньше!

Дешевизна ресурсов! mod_php, равно как и CGI PHP экономит ресурсы по сравнению с FastCGI PHP, т.к. при
mod_php фактически запускается количество экземпляров интерпретаторов
PHP равное количеству запущенных экземпляров httpd. Через CGI, один
интепретатор запускается на каждый запрос, умирающий после отработки,
это дешево по памяти, но сам запуск и коннект к СУБД прогружает, и время отклика увеличивается
очень значительно, поэтому CGI не дешево по процу, что хуже всего.
FastCGI крутится в памяти постоянно. В связи с этим (ответ Валере
Романчеву) массовые хостеры используют именно mod_php (одна из
причин, не считая незнания альтернатив). Если у тебя тысяча юзеров, даже по 6 мегов (средний размер
кода интерпретатора PHP) по минимуму, на этих абонентов выходит 6
гигов ОЗУ (по одному PHP на сайт). А mod_php дешево - очень дешево! Дальше более реальный рассчет:

По сути, 4 экземпляра PHP (в среднем достаточно, что бы обслужить
сайт с посещаемостью порядка 10 заходов в минуту на Typo3) сожрут от
24 (6*4) до 152 (32*4 + 24, где 32 - лимиты памяти на один экземпляр,
приемлимые для Typo3) т.е. по максимому 32$ (долларов) памяти, считая планку
1024 с ECC примерно равной 215$ (или 14$ беря планки по 512 без ECC
стоимостью 47$).
Добавляя на каждые 8 гигов ОЗУ стоимость платформы (сервер с
отказоустойчивой конфигурацией дисков и достаточным для работы всего
хозяйства процом и количеством ОЗУ на саму ОС, веб-сервер и СУБД)
несем накладные расходы около 4000$ на каждые 54 клиента (или порядка
2000$ если берем дешевые тачки по 1000$ каждая, но втыкаем туда максимум по 4 гига). Т.е.
(здесь по максимуму) размещение одного клиента обходится в 74+32 = 106$. Если брать по 10$
в месяц, окупаемость - 10 с небольшим месяцев, не считая обслуживания (затраты на
персонал и резервное копирование). Вот почему массовые хостеры не
используют эту технологию, даже если знают о ней. И я думаю теперь Вы
понимаете откуда берутся (иногда) цены на хостинг 50$ (а клиенты считают
их запредельными).

Если вы полагаетесь на безопасность PHP (а статистика по уязвимостям
известна), ваш выбор - хостинг за 10$, если у вас критичное приложение
- цена на порядок выше, но в этом сегменте IMHO уже не используют PHP. ;-)

У меня крутятся cайты которые мы разрабатывали для своих
клиентов - их десяток с мелочью на Typo3, и кроме них, отдельные специальные
проекты не на Typo3, типа бизнес-каталог Одинцовского района (www.openbiz.ru),
собственно сайт компании (www.onet.ru), некоторые внутренние сайты и некоторые вещи типа helpdesk
сделанные на всём чём угодно. Я реально использую разные настройки PHP, так
как не всегда разработчики делают всё правильно и например
используют /tmp, что мешает ограничить им каталоги через
open_base_dir, или делают вещи несовместимые с safe_mode. Я не хочу
сказать, что дурные разработчики или ещё что-то, разработчики
классные по другим показателям, просто так бывает. И знать как решить эту проблему на
хостинге должен уже (может быть увы) админ.

Более того, я даже для некоторых сайтов используют отдельные
компиляции FastCGI (абсолютно нормальная возможность в данном случае). А ещё я могу понизить приоритет
выполнения какому-то сайту, т.к. используется UNIX-овый механизм
многозадачности. Обращаясь к товарищу Дмитрию Дуплерову, особо
указываю, что такое не снилось ни одному приложению PHP исполняемому
mod_php.

Абсолютно реальная проблема - сайт нашей локальной сети на e107 (есть
CMS такая) регулярно DOSится. К сожалению, проблема в уязвимости самой
e107. Но до тех пор, пока я не запустил его как FastCGI, эта проблема сказывалась
на всех остальных сайтах ибо либо прогружался apache (в случае
mod_php) либо прогружался весь сервак процессом запуска CGI (в случае
php как CGI).

Хочется особо похвалить Typo3, в отличие от e107, и многих других CMS,
она держит коннекты к MySQL постоянно, а не глупо переподключается при
каждом заходе (в случае FastCGI каждый экземпляр PHP держит отдельный
коннект), и несмотря на все наезды, относительно быстро возвращает
результат, что позволяет держать меньше запущенных экземпляров PHP и
экономить память (e107 при той же нагрузке, требует в полтора раза
больше, и, кроме этого, e107 вообще любит память).

Почему решение с полностью изолированными экземплярами apache (chroot) и
виртуальными машинами хуже на мой взгляд? Только на мой! По мне,
слишком много нужно ресурсов - нужно держать в ОЗУ кусок операционки
и как минимум один отдельный экземпляр apache (который каждый весит по
32 мега). Я честно говоря даже не пытался. Проблемы будем решать по
мере поступления, вот если через apache начнуть DOSить и експлойтить,
и под угрозу встанет обслуживание единым веб-сервером, тогда и
придется ещё вложиться.

Я не хочу сказать, что у меня на хостинге всё идеально. Нихрена.
Так же как и во всем, времени вечно не хватает. Но я не гну пальцы,
что меня никто не поломает. Просто делюсь опытом, вот случилось -
прогружали через PHP, я их их высадил отдельно. Я абсолютно трезво
понимаю, что у меня не заработает авторизация через PHP и прочие
приколы основанные на возврате специфичных заголовков http. Но, во
первых у меня хостится только мне известное, а во вторых, у меня ведь
_есть_возможность_ запустить mod_php для отдельно взятого сайта, на
том же apache с open_base_dir конечно (будет хулиганить или объявят
уязвимость - удалим).


C наилучшими пожеланиями,
Ларионов Дмитрий
Начальник отдела системной интеграции и веб-услуг, компания "Открытая сеть".
Tелефон: +7(095)590-6078
e-mail: ldmitry at onet.ru
web:    http://www.onet.ru/




More information about the TYPO3-russia mailing list