- создания тысячи терминов таксономии и привязки их к определённому типу материала,
- добавления определённому материалу дополнительного поля CCK в котором будет храниться тип продуктов.
- компрессиию страниц;
- кэширование блоков;
- оптимизацию CSS файлов;
- оптимизацию JavaScript-файлов.
Встроенная оптимизация Drupal. Разгоняем Drupal. Практическое приложение. Оптимизация структуры веб-страниц
Встроенная оптимизация Drupal
Оптимизация Drupal с помощью модулей
Оптимизация конфигурации и обслуживания Drupal
Оптимизация сервера
Заключение
1. Отключим все неиспользуемые модули. Так как при генерации страницы перед отправкой её браузеру пользователя код определённых модулей может выполняться, даже если функционал данного модуля не используется на сайте. На выполнение кода будет тратиться процессорное время сервера, что приведёт к более долгой генерации страницы. Пример такого модуля - Statistics. Вместо статистики выдаваемой данным модулем, можно использовать статистику сервиса - Google Analytics.
При создании сайта используем Drupal версии 6, так как в нём лучше реализованы внутренние средства кэширования. Так же в дополнительных модулях (Views, Panel и т.д.) для Drupal версии 6 внедрены эффективные методы кэширования. К сожалению не все модули Drupal версии 5 реализованы для Drupal версии 6 (например, модуль Sphinx), не забудем об этом при планировании разработки Интернет сайта. Далее будем рассматривать только Drupal версии 6.
Хорошо обдумаем варианты использования модулей на подобии CCK (Content Construction Kit), перед реализацией запланированного при создании сайта. Например, простая задача на хранение в базе сайта тысячи типов продуктов, их названий и описаний, решается с помощью:
2. Таксономия позволяет создавать иерархию терминов в словаре, т.е. в словаре с терминами может быть 10 терминов первого уровня, а остальные термины будут потомками одного из этих 10 терминов. Создадим нужную иерархию терминов в словаре.
3. Установим дополнительный модуль - Hierarchical Select (http://drupal.org/project/hierarchical_select ), который позволяет в зависимости от вложенности уровней словаря таксономии отображать определённое количество выпадающих с писков. Т.е. пользователю при добавлении новой статьи о продукте на сайт, будет выведен один выпадающий список, в котором можно выбрать один из 10 терминов первого уровня (группы типов продуктов). После осуществления выбора, пользователю будет отображён ещё один выпадающий список, в котором будут отображены потомки данного термина в иерархическом дереве терминов данного словаря таксономии (типы продуктов).
Вариант второй, с использованием CCK:
o Необходимо определённому материалу добавить 2 дополнительных поля CCK, одно для хранения групп продуктов, второе для хранения типов продуктов.
o Нужно настроить взаимодействие данных полей в зависимости от выбора значений в них.
Главная ошибка при решении подобных задач создающая дополнительную нагрузку на базу данных:
o создание у определённого материала 10 полей CCK, по полю на каждую группу;
o при создании у определённого материала поля CCK, не указана его длина (поэтому по умолчанию считается, что она максимально возможная).
4. Используем встроенное кэширование Drupal. Оно позволяет кэшировать информацию, извлечённую из базы данных, а так же информацию, полученную при обработке извлечённой информации из PHP.
Кэширование системы меню, фильтров форматов ввода, переменных администрирования (например: название сайта) и настроек модуля - производится автоматически. Остальные параметры кэширования можно настроить на странице:
Управление -> Производительность (http://www.example.ru/admin/settings/performance).
Рис. 8.2. Настройки производительности для Drupal.
На данной странице можно настроить:
Включим кэширование страниц в режим - нормальный. В данном режиме кэширования страниц, при просмотре страницы в первый раз (анонимным, незарегистрированным в системе пользователем) производится сохранение сгенерированной страницы в кэш. В дальнейшем при просмотре данной страницы (анонимным пользователем) она не генерируется заново, а бер?тся из кэша, что значительно ускоряет работу Drupal.
При включении кэширования страниц в режим - агрессивный, при генерации страницы пропускается загрузка и выгрузка включенных модулей, поэтому часть модулей могут работать некорректно или не работать совсем.
Настроим минимальное время жизни кэша страниц для анонимных пользователей. Данный параметр определяет, через какое время после кэширования страницы, производится проверка на то обновлено ли содержимое данной страницы или нет. Если обновлено, то кэш данной страницы очищается. Т.е. если администратор сайта изменил содержимое страницы, он его увидит сразу, а анонимные пользователи, только по прошествии минимальное время жизни кэша.
Включим компрессию страниц, для сохранения сжатого кэша страниц и для передачи страницы браузеру пользователя в сжатом виде, если он поддерживает компрессию gzip. Компрессия производится с помощью библиотеки zlib установленной как расширение в PHP.
Включим кэширование блоков. Принцип работы кэширования блоков аналогичен принципу кэширования страниц. Для супер-пользователя (первого зарегистрированного пользователя при установке Drupal, его id равен 1) блоки никогда не кэшируются.
Включим оптимизацию CSS- и JavaScript-файлов. Это уменьшит их размер и количество обращений к серверу при загрузке страниц в браузер. Все CSS- и JavaScript-файлы собираются в один (свой файл для CSS (обычно их бывает два: один для отображения на экране, другой - для отображения при печати) и свой - для JavaScript). Что уменьшает количество обращений к серверу при загрузке страницы.