VPS 1 ядро, 6гб памяти
Сайт вроде бы загружается нормально, но в гугл аналитике печальные цифры(скриншот).
Он отправляет на Page insights и там есть несколько моментов которые у меня не соблюдены и я не знаю с какой стороны к ним подойти.
1. Долговато загружаются картинки из Вьюс. В теле странцы картинка имеет урл /sites/default/files/styles/220_145/public/field/image/imagename.jpg?itok=_ocj75CP
Без параметров после ? картинка не отдаётся и друпал отвечает "запрет доступа". Сначала я думал что она отдаётся апачем из-за этих параметров, но проверил при написании поста - отвечает nginx. Почему отдать все картинки занимает целую секунду(судя по сайт-перфу) - не понимаю.
2. При загрузке мобильной версии всё, видимо, портит вызов скриптов которые, видимо, позволют загрузиться странце только после своей загрузки. Почему они якобы загружаются долго я не монял. У меня по ссылкам с пэйдж инсайтс эти файлики js загружаются быстро. Может кто-сталкивался с таким - как вы решали?
прим:
Удалите код JavaScript, препятствующий отображению:
http://sitename.ru/sites/default/files/js/js_-z-2lAhufzBeVjYseT6cTzSICUy9vnoLBpu1sF_zZrs.js
http://vk.com/js/api/openapi.js?101
Сколько у вас загружаются веб сайты?
Как отличается внутреннее ощущение загрузки от того что вам дают роботы?
Вложение | Размер |
---|---|
dru-1.png | 17.22 КБ |
Комментарии
Как проверяли? В любом случае отвечать будет nginx, через него всё и идёт.
Вполне возможно, что он действительно не отдаются напрямую, и до кучи ещё ответ буферезируется из-за размера nginxом на диск. Посмотрите error.log nginx.
P.S. Постучитесь в скайп, покажите сайт, конфиг и логи nginx. Вероятно что-нибудь вам подскажу.
Добрый день! Как вы решили эту ошибку?
VPS вероятно еще на OpenVZ... Типичная проблема оверселлинга. Не смотрите в сторону Друпала, меняйте хостера.
Удивлён. У меня хостер it-patrol, который сделан под друпал.
"Хостинг по Drupal" - это не более чем маркетинговый ход:) В чем, по вашему, могут быть особенности такого хостинга?
не маркетинговый. хостинг реально идейный.
@Policavit
Отпишите в ТП, а еще лучше глянте slow queries закладку в панеле. Если нагрузка идет на базу данных в основном, и выделяется view, то вам надо включить кеширование представлений views а заодно filecache модуль.
Проблемы тормозов не кэшированных виевс представлений - это доминирующая проблема .
«sergeybelya #
"Хостинг по Drupal" - это не более чем маркетинговый ход:) В чем, по вашему, могут быть особенности такого хостинга?»
Наверно Вы правы. Мне порекомендовали, один из специалистов по друпалу, особо хостером не интересовался, скорость и всё остальное меня устраивало.
Вопросом стал заниматься из-за PageSpeed Insights, неприятная ошибка =).
14,7 - это вряд ли по вине хостинга, какой у вас общий объем ресурсов на странице? Оптимизированы ли изображения? Какое время ответа от сервера, посмотрите в консоли браузера на вкладке "Сеть".
@Policavit @sergeybelya
Это не "маркетинговый ход"
Вот список особенностей хостинга:
и многое другое - заточенное и ориентированное на drupal.
Потому вам и разработчик посоветовал патруль.
@eX-S прокатай на https://rpm.newrelic.com/, неплохой сервис.
посоветовал я, ибо считаю, что это отличный плаг энд плай для пользователя. я мог, бы посоветовать пантеон, но там цены(!)+english-speaking support, мог бы вультр, но там ручная настройка практически всего, начиная от установки оси.
@Policavit, а на PageSpeed Insights, можешь плюнуть, они его для прикола поставили. просто прогони на нём яндекс и всё поймешь.
Вот напрасно ты так, нехитрым действием с помощью сего продукта скорость сайта повышается с 9% до 74%. Всё по честному.
мне больше нравится http://www.webpagetest.org/ + https://newrelic.com/
@ttenz глянь на патруле slow queries закладку. По умолчанию там выборка на 10 секунд длительности обработки запроса, поставь 1 и обнови.
Потом можно кликать на время и посмотреть дерево запроса. Часто помогает найти узкое место на сайте.
Спасибо всем за советы, в принципе скорость отличная и жить PageSpeed Insights не мешает, просто больше переживаю, не повлияет ли это на выдачу (результат PageSpeed Insights).
Подскажите пожалуйста есть ли ещё какие-нибудь инструменты для сжатия файлов html кроме компрессора Html. Компрессор сжимает, и вроде всё отлично, но PageSpeed Insights считает, что этого не достаточно.
Кстати, файл с данными теста прилагается (кому интересно).
Ты PageSpeed Insights полностью не угодишь.
Даже если ты все вылижешь на сайте, он все равно будет ругаться на некоторые скрипты из ядра друпал)
Я максимум чего смог добиться- это 92% скорости загрузки для этой тулзы. Хотя может у меня руки кривые и можно еще)
Где-то в районе 98% можно ждать санитаров, в какой-то степени это уже фанатизм. Если скорость от 75, до 85, уже можно выпить чашечку кофе и съесть французскую булку.
Мне было просто любопытно) Да и восьмерка не особо шустрая.
Основная проблема была в том, что выдача контента малоконтролируема. То есть в ноде может быть видео с ютуба или фейсбука или фото по ссылке, тулза на них тоже ругается)
Для тех кто ещё мучается с PageSpeed Insights, а именно с "Удалите из верхней части страницы код JavaScript и CSS, блокирующий отображение"
"Удалите код JavaScript, препятствующий отображению:"
В файле Html.tpl.php - которая находится в паке с Вашей темой, нужно перенести код <?php print $scripts; ?> - находится в верхней части кода в тегах head. Перенести нужно вниз файла, в теги body, примерно разместить под строчкой <?php print $page; ?>
Как разобраться с css пока ответа найти не могу.
Существует масса случаев, когда этот хак просто всё сломает, т.к. порядок загрузки бывает весьма важен...
Используйте https://www.drupal.org/project/advagg, подобрав правильно настройки, и будет вам счастье.
Ох ,всегда считал. Что сайт должен и без кеша, по возможности, быстро грузится..Использовать поменьше монстров кликабельных..анализировать, что и как ставить на сайт
Согласен, для этого достаточно в файл .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"
На сколько мне известно (могу ошибаться), данный код лучше применять к сайтам, которые уже сделаны и не требуют визуальных исправлений, а то пользователь может разок увидеть кривую страницу и будет видеть до тех пор, пока не почистить кеш браузера.
Для PageSpeed Insights код ничего не значит, ошибки остаются теми же.
Это совсем не так - если ошибки связаные с кешированием статики не пропадают, надо смотреть а локальна-ли статика в ошибке, и отдаются-ли эти заголовки в действительности. Если и то и другое верно - ошибки исчезнут.
Поликавит. Я говорил о нагрузке без кеша вообще-то..Меня из одной конторы выперли, когда я сказал. Ребята у вас 400 модулей на сайте. Может отрефакторить?)))))))))))))
)))
Спасибо Вам, добрый человек. Буду пробовать.
Попробовал в работе модуль https://www.drupal.org/project/advagg, поиграл с настройками. Скорость загрузки увеличилась, количество js и css значительно снизилось. Были проблемы с конфликтами файлов, то одно, то другое. Решил пока оставить эту идею и решить проблему без установки модуля. В принципе у меня всё оптимизировано, осталось только 6 файлов css удалить и верхней части. Думаю, что можно решить проблему программно, пока в поисках.
Кстати, интересная фишка. Если нужно отключить системные css и js-файлы, то делается это проще простого - в .info файле темы объявляем те системные css, которые хотим выпилить, но не создаём их. Таким образом они отключаются и больше не грузятся. Стили темы можно сжать самостоятельно сторонними средствами и отключить агрегацию css, тогда гарантированно будет грузиться только один файл стилей. Со скриптами немного сложнее - jquery, ajax и т.п. надо грузить в любом случае, отключать их в теме не вариант. Кроме того, некоторые js-файлы подключаются лишь на некоторых страницах через drupal_add_js - вот их вообще не надо трогать, т.к. это довольно разумно грузить какой-то очень специфичный скрипт только на нужных страницах, не захламляя кэш пользователя, который на такую страницу может и не зайти вовсе.
Сжатием проблем нет, всё давно уже урезал через компрессор. Про отмену загрузки системных css интересно, буду пробовать.
только с этим поаккуратнее надо, могут слететь стили таблиц, табов и т.п., если они не переопределены в теме.
Бекап спасёт мир)