Как ускорить сайт?

Главные вкладки

Аватар пользователя redizka redizka 17 марта 2019 в 18:45

Время генерации страницы 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 log7.6 КБ
Иконка изображения 1.jpg46.3 КБ
Иконка изображения 2.jpg143.24 КБ

Комментарии

Аватар пользователя Semantics Semantics 17 марта 2019 в 18:59

120к терминов не предел, ровно как и 2.5кк сущностей.
Вьюхи надо смотреть, у вас там затык, это 99%.

А вот что конкретно поможет - рефакторинг структуры или внедрение поискового сервера типа Apache Solr - сказать сложно.

Аватар пользователя redizka redizka 17 марта 2019 в 22:51

Стандартное кеширование нагружало сильно базу и раздувало ее до 100 гигабайт.
Сейчас поставил Authcache + Memcache, стало получше, но все равно новые страницы грузит очень долго.
Кеширование включено только для анонимных пользователей, вроде всего что можно кеширует.

Аватар пользователя Orion76 Orion76 17 марта 2019 в 23:48

Без подробностей можно только гадать..
Хотябы опишите, какие элементы(блоки, контент и т.п.) находятся на страницах, которые долго грузятся и из чего они сделаны.

Новые страницы и должны один раз грузиться долго.. это почти нормально.
А вот уже из кэша, для анонимов, должно быть быстро.

Аватар пользователя gun_dose gun_dose 17 марта 2019 в 21:00

Во-первых, для таких больших объемов лучше использовать SSD.
Во-вторых, поставьте devel и посмотрите лог запросов.

Аватар пользователя sas@drupal.org sas@drupal.org 18 марта 2019 в 7:46

Подскажите как найти что именно тормозит и что можно сделать для ускорения?

1 варик, доверить анализ спецам.
2 варик, сам. Из иструментов анализа
https://www.drupal.org/docs/develop/development-tools/xhprof-code-profiler
site_audit

Из доп. инструментов кеширования для всех ролей
entitycache
display_cache

При тормозах на вьюсах, проанализировать запросы + добавить нужные индексы в таблицы.

Аватар пользователя bsyomov bsyomov 18 марта 2019 в 15:31

С такой базой безусловно лучше добавить ssd и базу на него перенести. Там же хранить поисковые индексы, если будет использоваться внешний поисковый движок, что при таких объёмах уже явно напрашивается.

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