ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

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

[apache-talk] =?KOI8-R?Q?Re=3A_=5Bapache-talk=5D_=F0=CF=DE=C5=CD=D5_=D4=C1=CB=3F?=




On Fri, 29 Jun 2001, Khimenko Victor wrote:

> > > Апачевские модули лучше линковать статически.
> >
> > Некоторое время назад тут это обсуждалось, вроде все согласились, что
> > единственно применение динамических модулей -- бинарная дистрибуция
> > модуля. Во всех остальных случаях особого выйграша от них заметить не
> > удается, только недостатки.
> 
> Не только. Они позволяют тебе в любой момент подключить или отключить
> определенный модуль (а для этого могут быть разные причины: когда в
> системе после upgrade glibc у нас перестала работать Berkeley DB и
> обрушивала все программы с ее использованием в кору мы выкинули
> mod_rewrite, временно переделали те места, где он пользовался и в таком
> виде Apache отлично прожил месяц, пока я собирался его Upgrade'ить) и
> вообще "собирать конфигурацию по вкусу" без перекомпиляции.

Я это делаю в течение минуты, если не меньше. См. ниже.
 
> P.S. Собственно если вы все равно собираете "особую конфигурацию под
> конкретный сервер", то лучше все линковать статически, разумеется.
> Но перед тем, как вы вообще зейметесь этой деятельностью подумайте:
> а оно вам надо ? Действительно - статическая линковка выгоднее, если у
> вас ОДИН сервер. Всегда. Но часто ли так бывает ? Если вы можете
> использовать версию Apache из дистрибутива OS или если у вас серверов
> (не обязательно машин, но верверов!) более одного (а хотя бы и два :-),
> то вы вступаете в ту самую область "бинарной дистрибуции", где как раз
> динамические модули и бывают полезны...

У меня больше 20 серверов и Апача я пересобираю очень просто

make <имя машины>
sudo make test
sudo make install

Скачиваются нужные дистрибутивы, если их ещё нет на этой машине,
собирается нужная конфигурация, тестируется конфиг-файл,
устанавливается новый бинарь, старый апач прибивается, а новый
запускается.

> P.S. BTW насчет потерь: все ваши рассуждения про потерянные килобайты
> сегмента data верны ТОЛЬКО в случае МОДИФИКАЦИИ этих данных после fork'а.

Совершенно верно.

> А что такого все эти модули модифицируют в своих данных ??? Там в основном
> текстовые строки (и структура Apache'овского модуля, но она после fork'а
> не модифицируется уже).

Насчет php не знаю, но за Апачевские модули я спокоен.
В их крошечных сегментах данных среди прочего живёт GOT, в которой
живут адреса внешних функций, в том числе функций Апачи, всякие ap_*.
А поскольку линковка lazy, то они они правильными становяться не
сразу. Некоторые функции вызываются первый раз уже после форка.
Достаточно одной на модуль.

Игорь Сысоев

=============================================================================
=               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                 =



 




Copyright © Lexa Software, 1996-2009.