PageSpeed Insights выдает сообщение "оптимизируйте время ответа сервера" когда определяет, что время ответа сервера составляет более 200 мс.
Время ответа сервера (англ. Time to first byte, TTFB) - это время необходимое серверу для формирования ответа, т.е. время между запросом и началом получения содержимого веб-ресурса. Разница в скорости Интернет-соединения между Google и вами не влияет на результат.
Большое время ответа может быть связано с десятками факторов: логика приложения, медленная работа с базой данных, маршрутизация, программная платформа и ее версия, используемые библиотеки и их количество, нехватка вычислительной мощности, памяти или других ресурсов сервера. Все эти обстоятельства следует учитывать при оптимизации.
Оптимизацию на стороне сервера можно проводить только обладая необходимыми сведениями о производительности.
Первым делом соберите и тщательно изучите имеющиеся данные о производительности. Для получения информации о времени работы скриптов (их частей) можно использовать специальные приложения профайлинга - xdebug.
Если есть доступ к контрольной панели хостинга, необходимо просмотреть историю нагрузки и использования ресурсов, проанализировать логи. Выявив "узкие" места, нужно обратиться к соответствующим руководствам. Решив проблему, продолжайте измерять время ответа и принимать необходимые меры.
Включать сжатие тоже можно в этом файле, а не в .hataccess
Выключайте лишние запросы к DNS в Apache:
Если вы хотите добиться максимальной производительности, нужно уменьшить количество записей в лог. Для этого необходимо установить уровень журналирования - «error» (только ошибки).
Key buffer size - это один из самых важных параметров, влияющий на потребление оперативной памяти и производительности, который необходимо оптимизировать. MySQL пытается положить все, что проиндексировано в key buffer. SQL-запрос работает непосредственно из оперативной памяти RAM. Значение этого параметр зависит от того, сколько оперативной памяти доступно серверу.
При частом выполнении одинаковых запросов результат помещается в кэш запросов, таким образом mysql нет необходимости делать запрос снова. Если вы собираетесь повышать производительность, то этот параметр может принести огромную пользу, но возрастет потребление памяти. Поэтому вам необходимо установить значения этих параметров:
Открытие таблицы требует некоторых ресурсов. Параметр table_cache отвечает за количество открытых таблиц ожидающих следующего соединения некоторое время после выполнения последнего.
Узнать нужно ли его менять можно по результату запроса:
Следующие параметры отвечают за максимальный размер временной таблицы, умещающейся в памяти. Применяется меньший из них:
Существует популярный скрипт на perl который дает базовое понимание того, что необходимо поменять в настройках БД - mysqltuner.pl/mysqltuner.pl
Время ответа сервера (англ. Time to first byte, TTFB) - это время необходимое серверу для формирования ответа, т.е. время между запросом и началом получения содержимого веб-ресурса. Разница в скорости Интернет-соединения между Google и вами не влияет на результат.
Большое время ответа может быть связано с десятками факторов: логика приложения, медленная работа с базой данных, маршрутизация, программная платформа и ее версия, используемые библиотеки и их количество, нехватка вычислительной мощности, памяти или других ресурсов сервера. Все эти обстоятельства следует учитывать при оптимизации.
Оптимизацию на стороне сервера можно проводить только обладая необходимыми сведениями о производительности.
Первым делом соберите и тщательно изучите имеющиеся данные о производительности. Для получения информации о времени работы скриптов (их частей) можно использовать специальные приложения профайлинга - xdebug.
Если есть доступ к контрольной панели хостинга, необходимо просмотреть историю нагрузки и использования ресурсов, проанализировать логи. Выявив "узкие" места, нужно обратиться к соответствующим руководствам. Решив проблему, продолжайте измерять время ответа и принимать необходимые меры.
Настройка Apache
Настройка Apache проводится в конфигурационном файле - /etc/apache2/apache2.confВключать сжатие тоже можно в этом файле, а не в .hataccess
Выключайте лишние запросы к DNS в Apache:
HostnameLookups Offтак Apache будет записывать в лог IP адрес клиента вместо имени его хоста.
Если вы хотите добиться максимальной производительности, нужно уменьшить количество записей в лог. Для этого необходимо установить уровень журналирования - «error» (только ошибки).
LogLevel error
Настройка MySQL
Для оптимизации MySQL вносят изменения в конфигурационный файл - /etc/mysql/my.cnf.Key buffer size - это один из самых важных параметров, влияющий на потребление оперативной памяти и производительности, который необходимо оптимизировать. MySQL пытается положить все, что проиндексировано в key buffer. SQL-запрос работает непосредственно из оперативной памяти RAM. Значение этого параметр зависит от того, сколько оперативной памяти доступно серверу.
При частом выполнении одинаковых запросов результат помещается в кэш запросов, таким образом mysql нет необходимости делать запрос снова. Если вы собираетесь повышать производительность, то этот параметр может принести огромную пользу, но возрастет потребление памяти. Поэтому вам необходимо установить значения этих параметров:
query_cache_sizeне слишком большими, но и не слишком маленькими.
query_cache_limit
Открытие таблицы требует некоторых ресурсов. Параметр table_cache отвечает за количество открытых таблиц ожидающих следующего соединения некоторое время после выполнения последнего.
Узнать нужно ли его менять можно по результату запроса:
SHOW GLOBAL STATUS LIKE 'Opened_tables';
он должен быть как можно меньше.Следующие параметры отвечают за максимальный размер временной таблицы, умещающейся в памяти. Применяется меньший из них:
max_heap_table_size = 64MЕсли таблица достигает максимального размера, она выгружается из памяти на диск. Следовательно, необходимо стараться, чтобы таблиц на диске создавалось как можно меньше. Посмотреть отношение временных таблиц к таблицам на диске на данный момент можно выполнив запрос:
tmp_table_size = 64M
show status like '%tmp%tables';В большинстве случаев MySQL сервер пишет все медленные запросы и информацию о них в файл /var/log/mysql/slow-query.log. Чаще всего это неэффективные запросы или запросы не использующие индекс.
Существует популярный скрипт на perl который дает базовое понимание того, что необходимо поменять в настройках БД - mysqltuner.pl/mysqltuner.pl
PHP Cache
Установите PHP Cache, например, такой как Alternative PHP Cache, XCache, eAccelerator, OPcache или Memcached. PHP cache будет хранить скомпилированные PHP скрипты таким образом, что они будут заново использованы без компиляции.Настройка VPS/VDS
В ОС Linux иногда возникает проблема, когда процесс пытается открыть больше файлов чем разрешено в системе. Для снятия подобных ограничений необходимо задать другие значения для соответствующего процесса в файле - /etc/security/limits.confnginx soft nofile 300000
nginx hard nofile 300000


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