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

#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 посетителей в день.