1

Тема: Оптимизация сайта

Всем привет,

Решил заняться давно существующей проблемой низкой скорости работы сайта (долгое открытие страниц, ошибки 502 и т.п.). К сожалению, в целом моей ошибкой в начале создания сайта был выбор в качестве движка Wordpress, который, предназначаясь для блогов, слабо подходит для масштабных сайтов со сложной структурой и десятками тысяч публикаций (кто ж знал, что идея выложить сотню сканов из старого чешского фотоальбома превратится в такое :)). Менять движок, то есть переделывать весь сайт, у меня нет ресурсов, поэтому надеюсь на эффект от локальных мероприятий по оптимизации.

Первый этап, относительно простой: отключены и удалены ревизии публикаций (автоматически создаваемые невидимые для пользователей копии постов с промежуточными вариантами постов). Они хоть иногда и удобны, но нагрузка на базу перечеркивает все плюсы. Из базы удалено 85 000 записей, то есть база "похудела" сразу в три раза, что должно благоприятно сказаться на скорости работы сайта.

Второй этап, сложный и длительный по времени. Я меняю систему кэширования фотографий на сайте (большие фото на страницах с публикациями, квадратные маленькие фото в списках фотографий). Текущая система, реализуемая плагином для Wordpress YAPB, не рассчитана на сайты с 40+ тысяч записей и замедляет работу.

Кэш для фотографий создается постепенно, чтобы не перегружать сервер, поэтому для некоторых фото он уже создан, а для некоторых создастся в течение нескольких дней. Это приводит к тому, что если сейчас построить список фото (например, категория "Лучшее" - http://waralbum.ru/category/best/), то для некоторых из них не будет показана квадратная превьюшка. Так что вывод картинок на сайте переводится на новую систему кэша поэтапно.

На текущий момент новый кэш задействован в блоке "Похожие фото" на странице с фотографиями, так как отсутствие некоторых фото в таком блоке не критично - они мелкие и рядом приводится название фото. Со временем блок заполнится нормальными превьюшками.

Остальные, более значимые, блоки вывода картинок на сайте будут заменены на новую систему кэша позже, о чем я напишу в этой теме.

2

Re: Оптимизация сайта

admin пишет:

Решил заняться давно существующей проблемой низкой скорости работы сайта

Отлично! Сейчас сайт заработал бодрее. Ошибки хоть и проскакивают но в разы меньше. Это должно сказаться и на работе с добавлением фотоматериалов(ура!) и в целом на посещаемости:) Эх, жаль, что вордпресс не тянет конечно, но что делать..

3

Re: Оптимизация сайта

Evgeniy пишет:
admin пишет:

Решил заняться давно существующей проблемой низкой скорости работы сайта

Отлично! Сейчас сайт заработал бодрее. Ошибки хоть и проскакивают но в разы меньше. Это должно сказаться и на работе с добавлением фотоматериалов(ура!) и в целом на посещаемости:)

Спасибо :) Мне тоже показалось, что стало работать быстрее. И это я еще не заменил на новую систему основные нагруженные картинками фрагменты.

Re: Оптимизация сайта

У меня хоть регистрация все равно слетает(терпимо), но комменты заработали! Флуданул для проверки, удалите плиз   http://waralbum.ru/383457/

5

Re: Оптимизация сайта

Поменял показ картинок:

1. Блок случайных фото вверху боковой колонки. Заодно увеличил число фото с 6 до 9, ограничил выборку только фотографиями из "Лучшего". Залогиненным пользователям блок будет обновляться раз в 5 минут, незалогиненным - случайный набор.

2. Квадратные фото в списках фотографий (главная страница, категории, поиск). Не очень красиво пока в разделе "Блог", так как там не для всех публикаций есть фото, позже подправлю.

3. Основное фото публикации на страницах с фото.

Осталось поменять вывод заглавного фото на главной странице и в календаре.

6

Re: Оптимизация сайта

1. Движок Wordpress обновлен на самую свежую версию.

2. С админом хостинга нашли и устранили чудовищный затык в производительности, страницы сайта стали грузиться в 10 раз быстрее. Админка, правда, все равно подтормаживает, там еще будут работы.

7

Re: Оптимизация сайта

admin пишет:

1. Движок Wordpress обновлен на самую свежую версию.

2. С админом хостинга нашли и устранили чудовищный затык в производительности, страницы сайта стали грузиться в 10 раз быстрее. Админка, правда, все равно подтормаживает, там еще будут работы.

По планированию и добавлению фото еще раз подтверждаю - по сравнению с дообновленной версией - летает (Только что имел удовольствие убедиться:)
Ранее особенно удручали выскакивающие ошибки при нажатии кнопки Добавить/Запланировать.

8

Re: Оптимизация сайта

Evgeniy пишет:

По планированию и добавлению фото еще раз подтверждаю - по сравнению с дообновленной версией - летает (Только что имел удовольствие убедиться:)

Это очень радует!

9

Re: Оптимизация сайта

Присмотрелся к базе пользователей, все же 255 тысяч регистраций для такого проекта - очень много. Оказалось, 90% из зарегистрировавшихся даже не подтвердили e-mail, подавляющее большинство из них - явно спамерские регистрации. Например, из одной только доменной зоны xyz, с адресами в доменах типа @photomail1.lady-and-lunch.lady-and-lunch.xyz (то есть живой человек такой e-mail никогда использовать не будет) - 80 тысяч регистраций!

Такое количество левых регистраций сильно нагружает базу: даже для «пустого» пользователя в базе создается около 25 записей со свойствами пользователя, то есть 225 тысяч пользователей заполнили базу более чем 6 миллионами записей! Естественно, это вызывает серьезные проблемы с производительностью.

Написал скрипт по удалению таких пользователей. В процессе его работы делается много запросов к базе данных: чтобы не удалить по ошибке нормального пользователя, помимо отсутствия подтверждения e-mail проверяется отсутствие реальной активности (посты, комментарии, посты на форуме и т.д.). Чтобы не перегружать сервер, левые регистрации удаляются небольшими партиями, и по моим расчетам на очистку базы от них уйдет 4-5 дней.

Также сделал ряд настроек для предотвращения новых массовых подобных регистраций.

10

Re: Оптимизация сайта

Чистка базы от пустых регистраций закончена, число регистраций сократилось с 255 тысяч до 12 600. 8-)

11

Re: Оптимизация сайта

Ввиду малой эффективности убраны блоки из боковой колонки с последними записями в блоге и с виджетом ВКонтакте. В дальнейшем при активизации работы в этих направлениях подобная информация вернется на сайт, возможно в ином формате.

12

Re: Оптимизация сайта

Мелочь, а приятно: время генерации главной страницы, то есть время, через которое страница http://waralbum.ru после запроса начинает грузиться у пользователя, снижено с ~2,5 секунд до ~1,4 секунды без отключения каких-либо блоков или иного функционала.