Время генерации страницы 3-4 секунды, иногда может и по 20-30 некоторые открывать.
Ставил всякие Boost-ы, не особо разница была.
После того как установил и настроил Authcache + Memcache 3.0.1 стало получше, время повторной генерации страницы стало около 0,4 секунды, но новые страницы все равно долго.
Яндекс.Вебмастер уже стал ругаться что время ответа сервера более 3 секунд.((
Прикрепил лог mysqltuner и скрины с модуля Performance Monitor
Подскажите как найти что именно тормозит и что можно сделать для ускорения?
Текущую структуру терминов менять совсем не вариант.
Drupal 7.64
Каталог на 120 тысяч терминов.
2,5 млн нод прикрепленных к терминам.
Меню каталога не используется.
Apache/2.4.25 (Debian)
СУБД 5.5.5-10.1.26-MariaDB-0+deb9u1
PHP 7.0.33-0+deb9u2
memory_limit 2048M
max_execution_time 300
Сервер:
Intel Xeon E3-1245
2xHDD SATA 3,0 TB - RAID 1
RAM 4x RAM 8192 MB DDR3 ECC
Вложение | Размер |
---|---|
mysqltuner log | 7.6 КБ |
1.jpg | 46.3 КБ |
2.jpg | 143.24 КБ |
Комментарии
120к терминов не предел, ровно как и 2.5кк сущностей.
Вьюхи надо смотреть, у вас там затык, это 99%.
А вот что конкретно поможет - рефакторинг структуры или внедрение поискового сервера типа Apache Solr - сказать сложно.
кэширование включено?
кэширование включено везде где возможно?
Стандартное кеширование нагружало сильно базу и раздувало ее до 100 гигабайт.
Сейчас поставил Authcache + Memcache, стало получше, но все равно новые страницы грузит очень долго.
Кеширование включено только для анонимных пользователей, вроде всего что можно кеширует.
Без подробностей можно только гадать..
Хотябы опишите, какие элементы(блоки, контент и т.п.) находятся на страницах, которые долго грузятся и из чего они сделаны.
Новые страницы и должны один раз грузиться долго.. это почти нормально.
А вот уже из кэша, для анонимов, должно быть быстро.
Во-первых, для таких больших объемов лучше использовать SSD.
Во-вторых, поставьте devel и посмотрите лог запросов.
Сейчас разбираюсь как это сделать, выложу лог как сделаю.
1 варик, доверить анализ спецам.
2 варик, сам. Из иструментов анализа
https://www.drupal.org/docs/develop/development-tools/xhprof-code-profiler
site_audit
Из доп. инструментов кеширования для всех ролей
entitycache
display_cache
При тормозах на вьюсах, проанализировать запросы + добавить нужные индексы в таблицы.
С такой базой безусловно лучше добавить ssd и базу на него перенести. Там же хранить поисковые индексы, если будет использоваться внешний поисковый движок, что при таких объёмах уже явно напрашивается.
Boost это статическое кеширование для анонимных пользователей. Если пробовать залогинившись, он не даст вообще разницы. К тому же, он требует редактирования .htaccess или конфига веб сервера для работы. Возможно, вы не правильно его устанавливали/тестировали? Если ваш каталог смотрят, в основном, анонимные пользователи, он может дать огромный прирост производительности и снижение нагрузки, +стоит обновлять этот кеш краулером.