Оптимизируй и настрой!

Итак, мальчики и девочки, сегодня мы с вами поговорим о переходном возрасте… Наверное, вы уже заметили, что в последнее время с вами происходят какие-то непонятные изменения. На вашем сервере запущено уже несколько сайтов, но скорость, с которой они работают вас не очень-то устраивает. Да, вот такие они плоды популярности… И что же делать? Экономить деньги на школьных завтраках, чтобы оплатить более качественный хостинг? Нет, нет и ещё раз нет! Я, как отец подрастающего ребёнка, просто не могу допустить того, чтобы подрастающий организм недополучал питания в период роста и развития. Поэтому, вот вам мои советы по настройке и оптимизации сервера и того, что на нём установлено.

Все приведённые ниже значения — ориентировочные и не являются истиной в последней инстанции. Истину вам предстоит отыскать самим.

Apache

  1. Поиграйтесь со значением MaxClients, чтобы найти баланс между производительностью и мощностью сервера. Можно начать со значения 32.
  2. Не позволяйте серверу писать много в логи: LogLevel warn
  3. Отключите DNS lookups: HostNameLookups off
  4. Отдельно стоит сказать о директиве AllowOverride — она отвечает за то, можно ли переопределять настройки сервера. Грубо говоря, будут или нет работать файлы .htaccess. Если эта директива включена глобально:
    <Directory />
        AllowOverride All
    </Directory>

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

  5. И последнее по настройке Apache. Директива KeepAliveTimeout. Рекомендую уменьшить её значение до 1–2 секунд.

MySQL

Добавьте или измените следующие опции в my.cnf:

  1. Отключите bin log
    log-bin
  2. Включите и увеличте размер query_cache
    query_cache_limit = 2M   # по умолчанию было 1M
    query_cache_size  = 64M  # по умолчанию было 0
    query_cache_type  = 1
  3. Увеличте table_cache
    table_cache = 256 # по умолчанию было 64
  4. Увеличте key_buffer
    key_buffer_size = 64M # по умолчанию было 8M
  5. Установите параметр max_connections так, чтобы он равнялся параметру MaxClients в настройках Apache

PHP

  1. Установите eAccelerator и примените к нему следующие настройки:
    eaccelerator.shm_size="32"
    eaccelerator.enable=1
    eaccelerator.shm_ttl="1800"

Тестируем конфигурацию

Для тестов мы воспользуемся утилитой ab (Apache Benchmark).

ab -n 1000 -c 100 http://yourserver/

Тем самым сы выполним 1000 запросов к серверу, при том 100 запросов будут выполняться одновременно. В полученных результатах смотрите на строчку Requests per second. Я так же рекомендую запустить тест до начала оптимизации и после, чтобы сравнить результаты.

Успехов и удачи!

1 комментарий к записи «Оптимизируй и настрой!»


  1. Иконка граватара 1 Ян

    И как это сработало при тестировании на Мере?

  1. 1 Новости 2.0
    Трэкбэк отправлен 10 November:РП: 2006 года в 19:25
  2. 2 My hacking life at Stranger than Fiction
    Пингбэк отправлен 15 September:РП: 2007 года в 03:43

Оставить комментарий