• Добро пожаловать, Гость
news Новости: Регистрация на форуме вновь открыта news

Автор Тема: Оптимизация работы процессов на уровне сервера: Настройка Apache  (Прочитано 799 раз)

OfflineInFerNo

  • Администраторы
  • Новенький
  • *
  • Репутация: 0
  • Сообщений: 32
  • EtoCms.ru Owner
  • Respect:
    • Просмотр профиля
    • WWW
  •  
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, однако, он минимален в настоящее время.
Записан