Проблема скорости загрузки сайта

Аватар пользователя centaur

Доброго дня, специалисты по друпал!

2 года назад разработали сайт https://domotehnika.by/ на друпал 7.
Все что нужно заказчику - наши разработчики делаю хорошо: доработки, импорты - экспорты, все фишки , которые требуются - реализовывают.
Но , постоянно боремся со скоростью .. разработчик сетовал на хостинг .. съехали с белорусского на drupalhosting.ru .. особо ничего не поменялось. яндекс "ругается" на долгое время ответа сервера .. более 3000мс.
Это и визуально заметно(
Посещаемость сайта растет (2500-3000 уников в сутки) , тупняк тоже растет ((

Мы готовы вкладывать деньги - вопрос куда ? в сервера или в новых разработчиков?
Нужно чтобы сайт летал! Конкуренты просто в отрыве гигантском от 100-800мс , переходы по страницам мгновенные..
Наши разработчики говорят - нужен выделенный сервер и варниш на нем..

Помогите сторонним советом - кто может проанализировать ситуацию, сделать возмездный или безвозмездный аудит. Все переделать или чтото донастроить.

Тип материала:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя Semantics
Semantics 11 месяцев назад

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

Аватар пользователя bsyomov
bsyomov 11 месяцев назад

Не глядя на ваш проект изнутри, и не видя данных мониторинга по нагрузке, какой-либо реальный совет в какую сторону вам нужно будет двигаться, просто невозможно.

Но вот одно наблюдение:
Практически всегда, когда разговор заходит о varnish, это говорит о том, что разработчики не понимают, как надо решать проблемы с производительностью, или хотя бы как их найти, и думают, что он станет "таблеткой для решения всех проблем", а в реальности этого, конечно, не происходит - это в 90% случаев просто не подходящий инструмент, а в остальных 10% плохо работающий...

Аватар пользователя Semantics
Semantics 11 месяцев назад

Я бы сказал, что варниш, шардинг и горизонтальное масштабирование являются словами маркерами.

Аватар пользователя bsyomov
bsyomov 11 месяцев назад

Последние два бывают нужны, как раз... А вот память которую скушает varnish всегда можно применить более разумным образом. =)

Аватар пользователя Andruxa
Andruxa 11 месяцев назад

Причем скушает он её для юзеров без сессии.
Как только юзер положил товар в корзину - всё, стал ходить мимо варниша.
Деньги память на ветер.

Аватар пользователя fairrandir
fairrandir 11 месяцев назад

А как же хваленный ESI варнишевский?

Аватар пользователя Andruxa
Andruxa 11 месяцев назад

Его еще надо суметь приготовить.

Аватар пользователя bsyomov
bsyomov 11 месяцев назад

Кеш фрагментов всегда разумнее делать на уровне приложения, где можно правильно проводить инвалидацию и регенерацию кеша, а не где-то снаружи, где это можно делать только по жёстким ttl...

К тому же, если и использовать ESI, то приложение должно проектироваться изначально с учётом этого. В случае Drupal это и близко не так, зато есть полно разных вполне рабочих механизмов кеширования внутри.

Аватар пользователя centaur
centaur 11 месяцев назад

кто может провести аудит - пишите пожалуйста в ЛС , что нужно (какие доступы) , цену , срок выполнения .
спасибо!

Аватар пользователя adano
adano 11 месяцев назад

Сильно сомневаюсь, что вас выделенный сервер и варниш спасут. Явно, переделывать.

Аватар пользователя sas@drupal.org
sas@drupal.org 11 месяцев назад

Задачи 2:
- Аудит по серверу + предложения
- Аудит по коду сайта + предложения

Аватар пользователя centaur
centaur 11 месяцев назад

доброго дня! если вы готовы выполнить данные задачи - напишите стоимость и сроки

Аватар пользователя sas@drupal.org
sas@drupal.org 11 месяцев назад

- По хосту я не спец, но есть добрые люди
- По Сайту могу, пишите в личку

Аватар пользователя Gena84
Gena84 10 месяцев назад
1

И как результат аудитов?

Кто-то помог из заявившихся?

Аватар пользователя centaur
centaur 10 месяцев назад

хоть я половины не понял ваших слов , но пока я спрашивал - наши разработчики настроили варниш (хоть здесь и писали что это не поможет , и работа с варниш говорит о их некомпетентности) и все стало работать гораздо веселее..
есть еще вопросы, но божатся все закроют :)
всем большое спасибо за участие в обсуждении) все предложения, ваши слова: ко всему присматриваемся, вникаем :)

Аватар пользователя Gena84
Gena84 10 месяцев назад

Хороший теперь совет - это навести порядок с фронт-эндом. Проблема в том, что на каждом товаре висит по 2 флага (избранное и сравнение) и их вероятно придётся переделать на кастом или как-то оптимизировать.

Аватар пользователя fairrandir
fairrandir 10 месяцев назад
1
centaur написал:
наши разработчики настроили варниш
fairrandir написал:
Если проблема как раз в некэшируемом представлении - authcache не поможет. И вообще, кэш на странице каталога с фильтрами не поможет. Слишком много комбинаций фильтров, кэш лопнет, а потом его инвалидировать еще, если буковка в названии товара изменилась.

Собственно, проблема-то остаётся. Непрогретый кэш - грузится долго. Применяются фильтры - грузится долго. Тут надо вникать почему долго формируется страница, а потом уже экспериментировать с кэшем.

Простой пример:
https://domotehnika.by/blendery/redmond?f[0]=field_blender_power%3A600&f...
X-Varnish-Cache MISS
X-Varnish-Cacheable YES
TTFB: 2341 ms
И это на каждое изменение фильтра, пока кто-то не переберёт все комбинации. Тут проблема в архитектуре.

Аватар пользователя Gena84
Gena84 10 месяцев назад

Проблема практически всегда в архитектуре. И всякий стартап сталкивается с подобными проблемами.

Варнишь можно прогревать (если нужно), сие не есть большая проблема.

Вопрос в том, что конкретно уважаемые доны предлагают делать сейчас? Думаю, что вариант "переписать с нуля с правильной архитектурой" не рассматривается, самолёт уже летит, нужно чинить этот.

Аватар пользователя bsyomov
bsyomov 10 месяцев назад

И этот прогретый кеш будет использоваться на доли процента, кушая массу памяти при этом? И это будет маскировка проблемы, а не решение...

На самом деле, надо взять профайлер, найти причину долгого построения страниц, и исправить.
А память отдать туда, где она будет действительно полезна, например, тому же mysql. Или для кеширования entities в memcached, или ещё для чего-нибудь полезного.

Аватар пользователя Gena84
Gena84 10 месяцев назад

Да там сайт ужа так разросся, что даже профилирование не показывает принципиально узких мест. Везде по капельки, а вылазит 3 секунды на загрузку.

Аватар пользователя bsyomov
bsyomov 10 месяцев назад

Тогда надо ставить вопрос об упрощении страниц, вероятно.
Но на деле, не бывает практически никогда так, чтобы при 3 секундах загрузки не было бы проблем, которые надо было бы решить... А то, что нет в calltrace какого-то одного блока выполняющегося очень долго, в общем-то не показатель, надо смотреть самые вызываемые, может быть, что-то вызывается слишком много раз просто.

Аватар пользователя Gena84
Gena84 10 месяцев назад

Есть много вариантов улучшения. Например, флаги. На листингах товаров на каждом товаре висит по 2 флага, я об этом писал выше.

Флаги - потому что нужно было быстро запустить магазин накануне 2016 года. Никто тогда про проблему быстродействия не думал. Более того, даже заказчик не думал. Теперь флаги есть, их нужно перебрать.

И таких проблемок, на самом деле, сотня.