#drupal #caching #memcached
#drupal #кэширование #memcached
Вопрос:
Здравствуйте, я работаю над существующим сайтом Drupal для моего клиента. У него этот веб-сайт работает немного медленно, и мой клиент хочет, чтобы я внес изменения в систему кэширования этого веб-сайта, поскольку она продолжает сбоить, когда количество пользователей на сайте увеличивается.
Теперь мне нужен совет, с чего начать, чтобы понять систему кэширования этого сайта. Я выполнил grep для нескольких функций кэширования Drupal и увидел там файлы boost и memcache.
Комментарии:
1. Что касается «сбоя», пожалуйста, будьте более конкретными. У вас заканчивается оперативная память, заполняются соединения с БД и т. Д. Также это, вероятно, следует перенести в drupal.stackexchange.com
Ответ №1:
Я не знаю, какую версию drupal вы используете, но это не должно иметь большого значения, кроме доступных вам модулей.
По сути, в Drupal есть cache API, который работает, сохраняя все, что он хочет кэшировать, в БД в таблицах, начинающихся с cache_
, используя cache_set
и cache_get
. Если на сайте много трафика, дополнительные накладные расходы на чтение и запись в БД могут привести к его снижению. Эти функции будут работать с любым из модулей кэширования, на которые вы заменяете исходный, например:
Чтобы преодолеть это, вы можете добавить различные модули для изменения кэша, например, с помощью модуля memcache, для хранения значений кэша в памяти, а не в БД. Вам все равно нужно будет настроить экземпляр memcache на сервере, а затем настроить его в settings.php , но все это объясняется в memcache readme.
Существует очень большая вероятность того, что сайт страдает из-за просмотров страницы. Я бы посмотрел на представления и посмотрел, делают ли какие-либо запросы, которые выполняются очень медленно. Просмотры всегда загружены в БД. Возможно, вам захочется просмотреть каждое из представлений и изменить (или даже включить) их тайминги и настройки кэша.
Возможно, вы страдаете от того, что у вас на сайте много зарегистрированных пользователей, и они будут обходить большую часть кэша, поэтому вы можете попробовать модуль AuthCache, который позволяет вам точно настроить кэширование блоков для зарегистрированных пользователей.
Вы также можете выполнить поиск сайтов с высоким трафиком и кэшированием для drupal. Я нашел довольно много, когда оптимизировал сайт, над которым я работал, с ~ 100 000 посетителей в день.