On Fri, 29 Jun 2001, Khimenko Victor wrote:
> > Так как же выгоднее (с точки зрения использования системных
> > ресурсов) компилить апач с PHP?
> >
> С этой точки зрения лучше линковать статически. Но выигрыш обычно в
> килобайт-два (причем расшренных - так что он, как правило, неуловим
> без особо тщательно выполненных измерений:-), так что обычно лучше
> слинковать динамически - для удобства. У меня вообще:
> -- cut --
> $ apache -l
> Compiled-in modules:
> http_core.c
> mod_so.c
> suexec: enabled; valid wrapper /usr/sbin/suexec
> $ ls -al ls -al /usr/lib/php/extensions
> total 418
> drwxr-xr-x 2 root root 664 May 24 10:24 .
> drwxr-xr-x 5 root root 320 May 24 10:24 ..
> -rw-r--r-- 1 root root 36140 Jul 30 2000
> apache-php_session.so
> -rw-r--r-- 1 root root 19528 Jul 30 2000 php_calendar.so
> -rw-r--r-- 1 root root 13272 Jul 30 2000 php_db_db1.so
> -rw-r--r-- 1 root root 13336 Jul 30 2000 php_db_db2.so
> -rw-r--r-- 1 root root 16472 Jul 30 2000 php_db_file.so
> -rw-r--r-- 1 root root 13880 Jul 30 2000 php_db_gdbm.so
> -rw-r--r-- 1 root root 18484 Jul 30 2000 php_dba_db1.so
> -rw-r--r-- 1 root root 20820 Jul 30 2000 php_dba_db2.so
> -rw-r--r-- 1 root root 21780 Jul 30 2000 php_dbase.so
> -rw-r--r-- 1 root root 9972 Jul 30 2000 php_filepro.so
> -rw-r--r-- 1 root root 24996 Jul 30 2000 php_ftp.so
> -rw-r--r-- 1 root root 54432 Jul 30 2000 php_gd.so
> -rw-r--r-- 1 root root 8056 Jul 30 2000 php_gettext.so
> -rw-r--r-- 1 root root 32152 Jul 30 2000 php_mysql.so
> -rw-r--r-- 1 root root 15000 Jul 30 2000 php_posix.so
> -rw-r--r-- 1 root root 33228 Jul 30 2000 php_session.so
> -rw-r--r-- 1 root root 8740 Jul 30 2000 php_sysvsem.so
> -rw-r--r-- 1 root root 11080 Jul 30 2000 php_sysvshm.so
> -rw-r--r-- 1 root root 9040 Jul 30 2000 php_yp.so
> -- cut --
> То есть в модули вынесено все, что только возможно. При этом реально
> возрастает только скорость загрузки Apache'е (впрочем не смертельно - даже
> на Pentium200MMX он стартует быстрее, чем за секунду - а так ли уж часто
> это происходит?)...
Апачевские модули лучше линковать статически.
Запускаем ./configure --enable-module=most --enable-shared=max && make.
Получаем 32 модуля в виде .so.
Запускаем size src/modules/*/*.so и убеждаемся, что ни у одного модуля,
кроме libproxy, сегмент данных не превышает 1К. Это значит, мы потеряли
по 3К в каждом модуле на сегменте данных. Допустим, мы подгружаем в Апач
20 модулей из 32. Это 20*3K=60К на Апач. Допустим, у нас работают 100
апачей. Это 6 потерянных мегобайт. Если стандартный Апач имеет около
500К-1М private memory, это 6-12 потерянных Апачей.
Что касается
> $ ls -al ls -al /usr/lib/php/extensions
> total 418
то число 418 меня просто пугает. Даже если в них сегменты данных
большие (в чем я не уверен), все равно в среднем теряется 2К на модуль.
Если используется 10 модулей, то на 100 Апачей мы теряем 2M.
Умножайте на свои цифры и считайте потери.
Игорь Сысоев
=============================================================================
= 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 =