« : Июль 09, 2009, 12:09:35 »
0
Чтобы воспользоваться советами вы должны иметь доступ к конфигурационным файлам сервера Apache (httpd.conf) и базы данных MySQL (my.cnf). Убедитесь, что у вас имеются необходимые привилегии для доступа и редактирования этих файлов (эту информацию вы можете узнать у своего хостера).
- Компилируйте Apache с как можно меньшим количеством модулей. Перед компилированием, отредактируйте файл /apache_1.x.x/src/Configuration, добавьте комментарий »#» перед каждой строкой начинающейся с «AddModule», которые вам не нужны. Ставьте комментарий в начале каждой строки перед «LoadModule» в httpd.conf, если вы не собираетесь использовать указанные модули.
- Отключите ExtendedStatus, кроме тех случаев, когда вы на самом деле занимаетесь отладкой. То же самое надо сделать и с mod_info. Apache потребуется время, чтобы вычислить и записать всю отладочную информацию, если они включены, что не отражается благополучно на остальных процессах.
- Для директивы “Hostnamelookups” укажите значение «Off» (для сервера Apache версий 2.x.x это значение указано по умолчанию). Если директива включена (т.е. ей присвоено значение «On»), то при каждом запросе к серверу вызывается поиск его DNS адресов - такая функция не является необходимой для большинства серверов.
- Для достижения максимальной производительности без использования защиты символьных ссылок (symlink) добавьте директиву FollowSymLinks и удалите директиву SymLinksIfOwnerMatch, если она имеется. Если последняя директива включена, при каждом запросе сервер Apache запускает функцию lstat() (результаты выполнения которой не кэшируются). Представьте, что при 1000 запросах в минуту, сервер должен за это же время выполнить дополнительно 1000 команд!
- Поставьте «MaxClients 128» или выше для более загруженных веб сайтов. Это позволяет большему количеству процессов запускаться по отдельности и предотвращает разбивание цепочки процессов. Чтобы выяснить лучшее значение, не ставьте его выше, чем ваш доступный RAM, основываясь на следующей формуле: 8М*(настройка).Если у вас 1Гб оперативной памяти, 8Мб*128=1024. Вы можете выбирать между 2 и 8ГБ памяти на каждый запрос клиента.
- Для максимальной производительности поставьте AllowOverride None в httpd.conf. Есть побочный эффект - она отключает .htaccess файлы. Иначе - Apache пытается сделать просмотр .htaccess в каждой директории и родительской директории рекурсивно, независимо от того, есть ли он там.
- Настройка MaxRequestPerChild контролирует создание процесса, и по умолчанию она стоит на 30. Если вы не используете скрипты, которые сильно загружают память, вы можете спокойно ставить значительно большее значение, к примеру 1000 или 10000. Если в основном вы обслуживаете статичные страницы, вы можете спокойно повышать это значение без возникновения каких-либо проблем.
- Значение в 15 секунд по умолчанию для KeepAliveTimeout - это попытка не обрывать соединение с компьютером, посылающим запрос серверу раз в 15 секунд, в случае, если другой запрос достигнет сервера с этого компьютера для другого файла (например, картинки с ссылками). Если вы используете пути вместо ссылок или картинок, только один запрос будет сделан к серверу на страницу. Таким образом, процесс не будет ничего делать перед тем, как завершиться, через 15 секунд. На большинстве сайтов вы можете уменьшить это значение до 2 секунд и получить улучшение в скорости. Побочное действие это опции - TCP/IP overhead, однако, он минимален в настоящее время.