In <199808271330.UAA797394@Sky.inp.nsk.su> Eugene B. Byrganov (E.B.Byrganov@inp.nsk.su) wrote:
>> > Но неясен смысл: ЗАЧЕМ ?
>> Объясню ситуацию.
>> Есть несколько виртуальных серверов на одном хосте. Общий траффик высокий.
>> Но только одному из них нужен PHP. Его траффик составляет всего 8%.
>> Начальство считает, что это плачевно скажется на производительности.
>>
>> Кто-нибудь может это популярно, но авторитетно опровергнуть так, чтобы
>> я это показал технически образованному начальству или предложить другое
>> решение. PHP нужен для интенсивной настройки страниц под конкретных посетителей.
EB> Насчет авторитетно не уверен ;-), но популярно примерно так ═(сильно зависет
EB> от ОС) так: все так называемые DSO lib-ы на самом деле далеко не dynamic,
EB> а обыкнавенный static share lib - загружаются на момент старта программы,
EB> это можно хорошо увидеть strace-ом, и только если программа сама
EB> ручками грузит DSO в нужный момент - то это и есть dynamic. По всей
EB> видимости mod_so так и далает. Вывод один линковать надо с libphp.a
EB> сам mod_php.so.
Гы :-) Для того, чтобы сделать как-то иначе придется руками httpd собирать :-)
libphp линкуется не с httpd (еще чего не хватало), а с libphp.so, конечно :-))
EB> Но стоит ли игра свечь? Сам libphp.a не большой, у меня
EB> старая версия весит только 300к - и в памяти занимает не на много больше.
EB> Код который не работает - мертвый код, и работу не замедляет, а вот
EB> накладные расходы на загрузку DSO это есть. Как раз при больших загрузках,
EB> это и будет замедлять. И так если DSO занимает меньше 10% Real Mem, то
EB> для решения проблены не хватки RAM это не существено.
И вообще ни для чего несущественно. Ибо DSO в Apache не для того придуманы.
Все DSO Apache в любом случае загружет на старте -- они там еще с дуба не
рухнули и идеи подгружать модуль когда пришел к нему запрос у них нет (как
несложно догадаться почти всегда это будет не выигрыш, а проигрыш :-))...
Использование DSO может иметь смысл только для создания binary distribution
или при играх с настройкой сервера (тогда можно собрать все модули сразу, а
"вставить" только необходимые, а при необходимости включать остальные)...
Впрочем последняя проблема решается через AddModule и без всяких DSO...
P.S. "Как раз при больших загрузках, это и будет замедлять" -- не будет. Apache
загружает DSO только при старте httpd или перечитывании конфигурации. LoadModule
в .htaccess не предусмотрен (еще чего не хватало)...
"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.