В статье (http://apachedev.ru/2006/05/15/nastroyka-apache-ot-heanet/) даны практические советы повышения производительности Apache 2 от HEAnet (http://www.heanet.ie/) : выбор MPM, оптимизация конфигурации, использование sendfile и mmap, а также настройка модуля mod_cache.URL: http://apachedev.ru/2006/05/15/nastroyka-apache-ot-heanet/
Новость: http://www.opennet.me/opennews/art.shtml?num=7521
Ни в коей мере не пытаюсь сказать что труд по тестированию и написанию статьи был проделан зря. Но в дополнение:1 Для интересующихся расмотр тех же плюс еще некоторых тем в оригинале (от apache dev team):
http://httpd.apache.org/docs/2.0/misc/perf-tuning.html2. Sendfile:
> Использование sendfile включается по умолчанию во время компиляции в случае, > если Apache определит, что операционная система поддерживает эту возможность. > Следующая директива в конфигурационном файле включает использование sendfile:
> EnableSendfile On
Смотрим тут:
http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile
Default: EnableSendfile On3. Mmap, тоже самое:
http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap
Default: EnableMMAP On4. В добавок, про Checksum, IPV6 и sendfile, цитата из доки:
On Linux the use of sendfile triggers TCP-checksum offloading bugs on certain networking cards when using IPv6
Может попробовать что-то не Linux?5. MMap (к SendFile тоже относится):
With an NFS-mounted DocumentRoot, the httpd may crash due to a segmentation fault if a file is deleted or truncated while the httpd has it memory-mapped.
Т.е получается держать контент для апача на NFS очень невыгодно :( Тогда вопрос, на чем кластер делать?6. Решение со stripe raid na SCSI 15k очень интересное. Можно о нем поподробнее:
a. во сколько раз снизилась нагрузка на IDE (читай во сколько раз выросло кол-во страниц отданных за ед. времени)
b. как это работает если на apache обслуживает динамику? Т.е. будет ли он кешировать страницы сгенеренные php скриптами? Если да, то модуль использование модуля противопоказано. А для статики IMHO имеет смысл пользовать не Apache7. IMHO проще технически и для клиентов (ну не будешь же ту раз в 5 мин искать .htaccess в 60 GB контента) проблему с .htpasswd (точнее с AllowOverride)решить так:
<Directory />
AllowOverride None
</Directory>
<Directory /Path/to/document/roots>
AllowOverride All
</Directory>
Но тут думаю (не тестировал) зависит от глубины вложенности и нужно ли использовать wildcards. Т.е на путях типа /home/*/docroot (виртуальный хостинг - /home/domain.com/docroot, /home/domain2.com/docroot) разницы (заметной) не будет.
>5. MMap (к SendFile тоже относится):
>With an NFS-mounted DocumentRoot, the httpd may crash due to a segmentation
>fault if a file is deleted or truncated while the httpd
>has it memory-mapped.
>Т.е получается держать контент для апача на NFS очень невыгодно :( Тогда
>вопрос, на чем кластер делать?For installations where either of these factors applies, you should use EnableMMAP off to disable the memory-mapping of delivered files. (Note: This directive can be overridden on a per-directory basis.)
Т.Е. при NFS сделать EnableMMAP off
Нет, это-то как раз понятно (кстати тоже самое и с sendfile), но как говорят apache developers в результате выключения этих опций производительность существенно упадет. И мой (возможно риторический) вопрос заключался как раз в том, какую FS можно пользовать не теряя при этом производительность (читай не выключая mmap и sendfile).