Проблемы со скоростью загрузки.

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

Аватар пользователя ex-S ex-S 26 февраля 2015 в 15:32

VPS 1 ядро, 6гб памяти
Сайт вроде бы загружается нормально, но в гугл аналитике печальные цифры(скриншот).
Он отправляет на Page insights и там есть несколько моментов которые у меня не соблюдены и я не знаю с какой стороны к ним подойти.

1. Долговато загружаются картинки из Вьюс. В теле странцы картинка имеет урл /sites/default/files/styles/220_145/public/field/image/imagename.jpg?itok=_ocj75CP
Без параметров после ? картинка не отдаётся и друпал отвечает "запрет доступа". Сначала я думал что она отдаётся апачем из-за этих параметров, но проверил при написании поста - отвечает nginx. Почему отдать все картинки занимает целую секунду(судя по сайт-перфу) - не понимаю.

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

прим:

Удалите из верхней части страницы код JavaScript и CSS, блокирующий отображение
Удалите код JavaScript, препятствующий отображению:
http://sitename.ru/sites/default/files/js/js_-z-2lAhufzBeVjYseT6cTzSICUy9vnoLBpu1sF_zZrs.js
http://vk.com/js/api/openapi.js?101

Сколько у вас загружаются веб сайты?
Как отличается внутреннее ощущение загрузки от того что вам дают роботы?

ВложениеРазмер
Иконка изображения dru-1.png17.22 КБ

Комментарии

Аватар пользователя bsyomov bsyomov 2 марта 2015 в 18:19

"ex-S" wrote:
Сначала я думал что она отдаётся апачем из-за этих параметров, но проверил при написании поста - отвечает nginx.

Как проверяли? В любом случае отвечать будет nginx, через него всё и идёт.

Вполне возможно, что он действительно не отдаются напрямую, и до кучи ещё ответ буферезируется из-за размера nginxом на диск. Посмотрите error.log nginx.

P.S. Постучитесь в скайп, покажите сайт, конфиг и логи nginx. Вероятно что-нибудь вам подскажу.

Аватар пользователя kstukstu kstukstu 16 февраля 2016 в 18:39

VPS вероятно еще на OpenVZ... Типичная проблема оверселлинга. Не смотрите в сторону Друпала, меняйте хостера.

Аватар пользователя sergeybelya sergeybelya 16 февраля 2016 в 20:31

"Хостинг по Drupal" - это не более чем маркетинговый ход:) В чем, по вашему, могут быть особенности такого хостинга?

Аватар пользователя gor gor 16 февраля 2016 в 21:56

@Policavit
Отпишите в ТП, а еще лучше глянте slow queries закладку в панеле. Если нагрузка идет на базу данных в основном, и выделяется view, то вам надо включить кеширование представлений views а заодно filecache модуль.

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

Аватар пользователя Policavit Policavit 17 февраля 2016 в 18:00

«sergeybelya #
"Хостинг по Drupal" - это не более чем маркетинговый ход:) В чем, по вашему, могут быть особенности такого хостинга?»
Наверно Вы правы. Мне порекомендовали, один из специалистов по друпалу, особо хостером не интересовался, скорость и всё остальное меня устраивало.
Вопросом стал заниматься из-за PageSpeed Insights, неприятная ошибка =).

Аватар пользователя sergeybelya sergeybelya 17 февраля 2016 в 18:48

14,7 - это вряд ли по вине хостинга, какой у вас общий объем ресурсов на странице? Оптимизированы ли изображения? Какое время ответа от сервера, посмотрите в консоли браузера на вкладке "Сеть".

Аватар пользователя gor gor 17 февраля 2016 в 19:27

@Policavit @sergeybelya
Это не "маркетинговый ход"
Вот список особенностей хостинга:

  1. тарифы для версий drupal. Drupal 6 - на php5.2, Drupal7 - php5.3, Drupal 8 - php 5.6
  2. apache + mod_php для нативной работы .htaccess
  3. xcache - с достаточно памяти для кеширования в памяти всех drupal php файлов в памяти
  4. nginx - отдает статику без обращения к apache
  5. drush, composer - нет потребности самостоятельно его устанавливать отдельно для себя
  6. Percona MySQL - с настроенными оптимизациями под Drupal (в особенности Innodb на максимальную производительность)
  7. техподдержка - каждый сотрудник разбирается в Drupal, и вы не получите ответа на банальный вопрос что это все ваш сайт и пишите разработчику. На большое количество вопросов можно получить быстрый ответ (как настроить крон, включить оптимизацию, улучшить производительность, баги модулей)
  8. поддержка конференций, друпал сайтов, сообщества

и многое другое - заточенное и ориентированное на drupal.
Потому вам и разработчик посоветовал патруль.

Аватар пользователя ttenz ttenz 17 февраля 2016 в 20:04
1

gor wrote:

Потому вам и разработчик посоветовал патруль.

посоветовал я, ибо считаю, что это отличный плаг энд плай для пользователя. я мог, бы посоветовать пантеон, но там цены(!)+english-speaking support, мог бы вультр, но там ручная настройка практически всего, начиная от установки оси.

Аватар пользователя ttenz ttenz 17 февраля 2016 в 19:58

Policavit wrote:

Вопросом стал заниматься из-за PageSpeed Insights, неприятная ошибка =).

@Policavit, а на PageSpeed Insights, можешь плюнуть, они его для прикола поставили. просто прогони на нём яндекс и всё поймешь.

Аватар пользователя Studio VIZA Studio VIZA 17 февраля 2016 в 20:18

ttenz wrote:

можешь плюнуть

Вот напрасно ты так, нехитрым действием с помощью сего продукта скорость сайта повышается с 9% до 74%. Всё по честному.

Аватар пользователя gor gor 17 февраля 2016 в 20:57

@ttenz глянь на патруле slow queries закладку. По умолчанию там выборка на 10 секунд длительности обработки запроса, поставь 1 и обнови.
Потом можно кликать на время и посмотреть дерево запроса. Часто помогает найти узкое место на сайте.

Аватар пользователя Policavit Policavit 17 февраля 2016 в 22:03

Спасибо всем за советы, в принципе скорость отличная и жить PageSpeed Insights не мешает, просто больше переживаю, не повлияет ли это на выдачу (результат PageSpeed Insights).
Подскажите пожалуйста есть ли ещё какие-нибудь инструменты для сжатия файлов html кроме компрессора Html. Компрессор сжимает, и вроде всё отлично, но PageSpeed Insights считает, что этого не достаточно.
Кстати, файл с данными теста прилагается (кому интересно).

Аватар пользователя dropout dropout 17 февраля 2016 в 23:08

Ты PageSpeed Insights полностью не угодишь.
Даже если ты все вылижешь на сайте, он все равно будет ругаться на некоторые скрипты из ядра друпал)
Я максимум чего смог добиться- это 92% скорости загрузки для этой тулзы. Хотя может у меня руки кривые и можно еще)

Аватар пользователя Studio VIZA Studio VIZA 17 февраля 2016 в 23:29

Graytone wrote:

Я максимум чего смог добиться- это 92% скорости

Где-то в районе 98% можно ждать санитаров, в какой-то степени это уже фанатизм. Если скорость от 75, до 85, уже можно выпить чашечку кофе и съесть французскую булку.

Аватар пользователя dropout dropout 17 февраля 2016 в 23:33

Мне было просто любопытно) Да и восьмерка не особо шустрая.
Основная проблема была в том, что выдача контента малоконтролируема. То есть в ноде может быть видео с ютуба или фейсбука или фото по ссылке, тулза на них тоже ругается)

Аватар пользователя Policavit Policavit 16 мая 2016 в 22:36
1

Для тех кто ещё мучается с PageSpeed Insights, а именно с "Удалите из верхней части страницы код JavaScript и CSS, блокирующий отображение"
"Удалите код JavaScript, препятствующий отображению:"
В файле Html.tpl.php - которая находится в паке с Вашей темой, нужно перенести код <?php print $scripts; ?> - находится в верхней части кода в тегах head. Перенести нужно вниз файла, в теги body, примерно разместить под строчкой <?php print $page; ?>

Как разобраться с css пока ответа найти не могу.

Аватар пользователя bsyomov bsyomov 5 июня 2016 в 13:53

Существует масса случаев, когда этот хак просто всё сломает, т.к. порядок загрузки бывает весьма важен...
Используйте https://www.drupal.org/project/advagg, подобрав правильно настройки, и будет вам счастье.

Аватар пользователя dashiwa dashiwa 16 мая 2016 в 23:26

Ох ,всегда считал. Что сайт должен и без кеша, по возможности, быстро грузится..Использовать поменьше монстров кликабельных..анализировать, что и как ставить на сайт

Аватар пользователя Policavit Policavit 17 мая 2016 в 7:00

dashiwa wrote:

Ох ,всегда считал. Что сайт должен и без кеша, по возможности, быстро грузится..Использовать поменьше монстров кликабельных..анализировать, что и как ставить на сайт


Согласен, для этого достаточно в файл .htaccess прописать:
# кеширование в браузере на стороне пользователя

ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"

# Cache-Control

# 30 дней

Header set Cache-Control "max-age=2592000, public"

# 30 дней

Header set Cache-Control "max-age=2592000, public"

# 2 дня

Header set Cache-Control "max-age=172800, public, must-revalidate"

# 1 день

Header set Cache-Control "max-age=172800, private, must-revalidate"

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

Аватар пользователя bsyomov bsyomov 5 июня 2016 в 13:51

Это совсем не так - если ошибки связаные с кешированием статики не пропадают, надо смотреть а локальна-ли статика в ошибке, и отдаются-ли эти заголовки в действительности. Если и то и другое верно - ошибки исчезнут.

Аватар пользователя dashiwa dashiwa 17 мая 2016 в 11:54

Поликавит. Я говорил о нагрузке без кеша вообще-то..Меня из одной конторы выперли, когда я сказал. Ребята у вас 400 модулей на сайте. Может отрефакторить?)))))))))))))

Аватар пользователя Policavit Policavit 5 июня 2016 в 14:01

bsyomov wrote:

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

Используйте https://www.drupal.org/project/advagg, подобрав правильно настройки, и будет вам счастье.


Спасибо Вам, добрый человек. Буду пробовать.

Аватар пользователя Policavit Policavit 7 июня 2016 в 10:33

Попробовал в работе модуль https://www.drupal.org/project/advagg, поиграл с настройками. Скорость загрузки увеличилась, количество js и css значительно снизилось. Были проблемы с конфликтами файлов, то одно, то другое. Решил пока оставить эту идею и решить проблему без установки модуля. В принципе у меня всё оптимизировано, осталось только 6 файлов css удалить и верхней части. Думаю, что можно решить проблему программно, пока в поисках.

Аватар пользователя gun_dose gun_dose 7 июня 2016 в 10:57

Кстати, интересная фишка. Если нужно отключить системные css и js-файлы, то делается это проще простого - в .info файле темы объявляем те системные css, которые хотим выпилить, но не создаём их. Таким образом они отключаются и больше не грузятся. Стили темы можно сжать самостоятельно сторонними средствами и отключить агрегацию css, тогда гарантированно будет грузиться только один файл стилей. Со скриптами немного сложнее - jquery, ajax и т.п. надо грузить в любом случае, отключать их в теме не вариант. Кроме того, некоторые js-файлы подключаются лишь на некоторых страницах через drupal_add_js - вот их вообще не надо трогать, т.к. это довольно разумно грузить какой-то очень специфичный скрипт только на нужных страницах, не захламляя кэш пользователя, который на такую страницу может и не зайти вовсе.

Аватар пользователя Policavit Policavit 7 июня 2016 в 16:09

Сжатием проблем нет, всё давно уже урезал через компрессор. Про отмену загрузки системных css интересно, буду пробовать.

Аватар пользователя gun_dose gun_dose 7 июня 2016 в 16:28

только с этим поаккуратнее надо, могут слететь стили таблиц, табов и т.п., если они не переопределены в теме.