In <19635.000311@webclub.ru> Alexey V. Meledin (avm@webclub.ru) wrote:
AM> День добрый!
AM> Может быть кто-нибудь знает.
AM> Когда Апач собран с DSO и все модули через него подключается, то
AM> каждый демон занимает 3Мб. (из них PHP занимает 1Мб).
AM> Аналогичная конфигурация при статичном подключении - 1,8 Мб/демон.
AM> При DSO резидентом сидит где-то 1,8Мб.
AM> Посему задам следующие достаточно наивные вопросы:
AM> 1. Насколько при DSO падает/повышается производительность и за счет
AM> чего?
ОЧЕНЬ существенно замедляется процесс старта -- на порядки. На что обычно
можно не обращать внимание (как часто вы сервер перезапускаете?). Скорость
работы если изменяется, то на неизмеримую величину. В действительности
единственная проблема -- с mod_perl'ом и всякими Oracle'ами :-( Дело в том,
что кто-то ОЧЕНЬ умный придумал загружать модули в память дважды: то есть
их сначала загружают, потом они читают конфигурацию (и если написано, что
у вас с Oracle'ом persistent connection, то и будет установлено соединение
с Oracle'ом :-), а потом их выгружают из памяти и загружают все по новой.
На ##%$% это сделано -- теперь уже никому неведомо, но гемору от этого -- выше
крыши. Особенно в случае DSO (в случае статической линковки хоть библиотеки
из памяти не выкидываются).
AM> 2. По идее механизм DSO предусматривает использование всеми
AM> демонами одних и тех же разделяемых модулей, но почему тогда размер
AM> процесса 3Мб?
Именно поэтому. Когда ты линкуеш статически, то все ненужные в данном процессе
функции избиблиотек не линкуются. Когда загружаешь динамически, то к размеру
процесса прибавляется объем всех библиотек. У меня Apache вообще занимает
в top'е за 40MiB :-)
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =