Оптимизация и ускорение работы сайта
Многих людей почему-то удивляет ситуация, когда, казалось бы, простой и не очень объемный сайт, начинает провоцировать высокую нагрузку. Страдает процессор, оперативная память сервера, «соседи» по хостингу и сам ресурс-виновник. Ситуация неприятная, но с ней можно и нужно бороться. Предлагаем вам несколько простых советов, которые помогут оптимизировать потребление ресурсов и увеличить скорость работы сайта.
1. Кеширование.
Оно всегда должно быть включено. Кеширование оказывает сильнейшее влияние на скорость работы и общую загрузку сервера. Не стоит упускать этот пункт, ведь на современных системах управления контентом включить кеширование довольно просто. Это можно сделать при помощи специальных плагинов. К примеру, для Wordpress подходит WP Super Cache.
Плагины и модули для других движков вы можете самостоятельно найти в гугле или дождаться статьи в нашем блоге, где мы расскажем о наиболее популярных решениях. Кеширования также можно включить в отдельных модулях на сайте – просто покопайтесь в их настройках. Поверьте, результат будет виден даже невооруженным глазом.
2. Оптимизация Базы Данных.
Оптимизация БД снижает нагрузку, генерируемую сайтом, и позволяет всем его функциональным частям работать быстрее. Реальные результаты показывают даже трехкратный прирост, но не всегда и не со всеми сайтами. Давайте рассмотрим процесс на конкретном примере.
Важно: вы должны сделать полноценный бекап перед началом оптимизации. Это поможет «откатиться», если возникнут какие-то проблемы.
Заходим в PHPMYADMIN и выбираем базу, с которой будем работать:
Перед вами откроются все «живущие» в БД таблицы. Сделаем сортировку по количеству строчек:
Вверху, что логично, будут наиболее заполненные таблицы. В большинстве случаев именно они вызывают «торможение» и провоцируют нагрузку, т.к. система фактически ищет иголку в стоге сена. В этих табличках могут быть разные данные: посты, файлы, логи, комментарии, рейтинги и т.п. У вас должно быть понимание того, что можно удалять (очищать), а что нельзя.
В примере нашлась таблица со 130 тыс. записей. Давайте очистим ее от устаревшего материала. Нажимаем на табличку и оцениваем доступные поля:
Для того, чтобы удалить старое, нужно выработать алгоритм удаления. Идеальное решение – сортировка по айди или по дате. По полю DATE будет надежнее всего, однако оно есть не всегда. В таком случае подойдет вариант с ID.
Запрос для удаления записей, старших 01.08.12 по полю DATE:
delete FROM `имя таблицы` WHERE date < "2012-06-01"
Запрос по удалению записей, у которых айди меньше, чем 100000 по полю ID:
delete FROM `имя таблицы` WHERE id < 100000
Нажимаем кнопку «ОК» и получаем примерно такой результат:
Это значит, что таблица успешно почищена. От количества удаленного «мусора» зависит итоговый прирост в скорости функционирования и уменьшения нагрузки. Подобные действия стоит сделать со всеми переполненными таблицами.
По завершению чистики мы получили вот такой результат:
В примере нам удалось удалить более 200 000 лишних записей. Чтобы «добить» (в хорошем смысле) базу, можно выделить все таблицы и нажать на кнопку «Оптимизировать». Это тоже дает определенный эффект.
Традиционно очищают сессии, кеш, логи, комментарии. Иногда удаляются старые новости. Правильно будет, если вы будете чистить базу хотя бы один раз в полгода.
3. Задания крон.
Если вам требуется выполнение регулярных заданий через крон, то их частотность не должна превышать один раз в 10 минут. Если задание менее регулярно (например, один раз в сутки), то поставьте ночное время для его реализации.
4. Модули с повышенной нагрузкой.
Как было указано выше, для всех модулей стоит настраивать кеширование. Однако существуют и такие, которым это не особо помогает. Кроме того, они могут нести минимальную пользу для сайта.
Предлагаем вам конкретные примеры. «Облако тегов» обращается к базе данных при каждом новом посетители. «Кто онлайн» дергает БД еще чаще, а «Миничат» может вызвать серьезную нагрузку на сервер, даже если в нем никто не будет общаться. Постарайтесь включить кеширование, поставить максимально большую частоту обновление, а еще лучше – просто откажитесь от их использования.
После выполнения наших рекомендаций, ваш сайт заработает быстрее и будет меньше грузить систему. Однако если этого не произошло, значит, вероятная причина кроется в количестве посетителей на сайте. В таком случае, пришло время переходить на про-хостинг, ВПС или выделенный сервер от s-host.