Jump to content

Скорость загрузки страниц магазина или Внутренние резервы


Recommended Posts

Хочу поделиться инфой, не знаю насколько полезной, решать вам

 

Дано:

- магазин на последней престе 1.4.6.2, стандартный шаб, никаких доп модулей создающих нагрузку нет.

- не самый лучший и быстрый хостинг (скорость фтп выше 10 КБ/с не подымается + постоянные обрывы, короче стандартный быдлохостинг)

- желание выжать их страничек максимум скорости без смены аппаратной части и особых телодвижений.

 

Перекомпил - выкл

Кэш - вкл

Тестируем - страницу категории.

На вебтесте был выбран ближайший территориально сервер (соседняя страна), получены средние данные - 10 сек

гугл пейдж спид - 61 балл

лоадимпакт - все печально, но правда сервер пиндосский - около 20 с мелочью сек

 

Делаем:

- добавляем в днс 3 поддомена, прописываем в медиасерверы

- включаем CCC, все кроме последнего пункта

- врубаем и настраиваем ЧПУ, каноникал урл (не для скорости)

- врубаем файловый кеш

- генерим хтассес учитывая все вышесказанное

- проверяем что ЧПУ работает правильно, шаблоны компилятся, кэш формируется правильно, при необходимости удаляем старый кэш.

 

Тестируем:

вебтест с того же сервера - 5 сек

гугл пейдж спид - 67 баллов (данный тест не считает абсолютную скорость)

лоадимпакт - все по прежнему достаточно печально, порядка 15-20 сек, волнами.

 

С учетом что магазин продает в основном внутри страны + ближайшие соседи - считаю такой вариант вполне удачным

Link to comment
Share on other sites

Поддомены обращаются к файлам основного домена или на них свои файлы?

 

Основного, это же просто "хак" - заставить браузер выделить доп каналы для загрузки контента, на свои это уже cdn :)

 

Попробуйте отключить сжатие html.

 

проверил, около 7 сек, т.е. в данном случае выгоднее жать

Link to comment
Share on other sites

- добавляем в днс 3 поддомена, прописываем в медиасерверы

а подробнее можно описать этот момент? а то как-то много написано а главная фишка в одной фразе.

 

И еще вопрос по файловому кешу,что значит: The system CacheFS should be used only when the infrastructure contain only one front-end server. Ask your hosting company if you don't know.

 

Фронт энд это что ?

Link to comment
Share on other sites

Спасиба конечно за ответ, но это скорее не гугл а гугл транслятор ;) Я вобщем-то и так перевел. Что такое "один внешний сервер" если вкратце ?

Link to comment
Share on other sites

1. ssssaerty, тереть мои каменты насчет своих письменных трудов не надо. Несмотря на переписку в личке, я имею личное мнение по поводу написания "книг" по типу - "буду книгу писать, читать нечего". И как я уже сказал в ПМ запрос "Какие еще варианты могут быть? А то тормоза уже достали. " очень информативен и отличается умом и сообразительностью и многое говорит)

 

2. О том что файловый кэш чето там засоряет... см. выше про книгу))

 

3. отвечаю на вопросы Gerra

- фронтэнд http://www.google.com.ua/search?q=фронт+энд

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

 

конкретно про медиасерверы

в причины по которым они необходимы вдаваться не буду, кому интересно найдет сам.

- идем в настройки днс (там где мы доме привязывали к хостингу/серверу) и

- добавляем 3 поддомена с произвольными именами, например s1.site.com s2.site.com s3.site.com

- эти поддомены должны "смотреть" на тот же айпи адрес что и site.com (содержать одинаковую А запись)

все

теперь на закладке быстродействие вписываем эти 3 "сайта" в поля соотв медиасерверов и сохраняем.

 

 

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

Link to comment
Share on other sites

Ну на счет ошибки с CacheFS я думаю так: по умолчанию в большинстве случаев в качестве front-end сервера стоит apache, но сейчас модно ставить для ускорения работы сайта nginx и тогда получается два front-end сервера. И вот в этом случае из-за включения CacheFS сайт может начать глючить, у меня например везде все ок было, а в IE сайт перевёрнутым с ног на головову выглядел, все не павильно отображалось. Я в общем так это эту надпись понимаю для себя.

Link to comment
Share on other sites

Ну на счет ошибки с CacheFS я думаю так: по умолчанию в большинстве случаев в качестве front-end сервера стоит apache, но сейчас модно ставить для ускорения работы сайта nginx и тогда получается два front-end сервера. И вот в этом случае из-за включения CacheFS сайт может начать глючить, у меня например везде все ок было, а в IE сайт перевёрнутым с ног на головову выглядел, все не павильно отображалось. Я в общем так это эту надпись понимаю для себя.

 

нет никакой ошибки, не понимаю - ты вроде бы настраивал нжинкс, приводил конфиги и все это без понимания сути происходящего?

 

- что такое фронт сервер - линк выше - добавить туда слово "сервер"))

- почему может быть проблема с несколькими фронтами

Если настроить такую схему, то каждый Буст будет создавать собственную копию кеша, причем структура директорий кеша и записи, оставляемые Бустом в БД будут полностью идентичными. Буст не пишет в БД имя сервера, который сделал запись о кеше. Таким образом, возможна следующая ситуация:
  • первый сервер закешировал страницу node/123 и сделал в БД запись об этом;
  • второй сервер закешировал эту же страницу node/123 и обновил запись в БД, созданную первым сервером;;
  • на первом сервере запустился крон, удалил из своей файловой системы закешированную версию страницы node/123 и удалил из БД все записи, связанные с этой страницей;
  • на втором сервере запустился крон, увидел что в БД нет записи о том, что в кеше лежит устаревшая версия страницы node/123 и ничего не сделал. При этом Апач на втором сервере по прежнему продолжает отдавать старую версию страницы node/123.

 

П.С. если уж "модно" то получается 1 фронтенд сервер, он потому и называется фронт - что смотрит мордой с мир и именно он нюхает 80 порт на предмет соединений и решает что делать с этими соединениями дальше.

 

Извините ребята, но каждая тема превращается в жесть, то сайты переворачиваются, то кэши засоряются...

Link to comment
Share on other sites

У меня лично с файловым кешем 2 было проблемы. Первое это места занимало, что приходило сообщение от хостера чтобы места по больше выделить. А вторая ссылки нормально не работали и ссылались на страницу 404.

 

Как вы смотрите на такое ускорение сайта как отключение через инструмент геолокации в часы пик других стран кроме той в которой продаете ???

Link to comment
Share on other sites

Как вы смотрите на такое ускорение сайта как отключение через инструмент геолокации в часы пик других стран кроме той в которой продаете ???

 

плохо.

если у тебя идет такой поток нецелевого траффика из других стран что создает ощутимую нагрузку мешая при этом продажам - стоит задуматься над источниками траффика.

+ если аппаратная часть магазина не обеспечивает покрытие пиковых нагрузок - зачем вообще все эти движения? завтра придет поток не из других стран а из целевой по ссылке на популярном форуме и магазин ляжет?

Link to comment
Share on other sites

что значит задуматся над источниками трафика то ???у меня основной траф это гугл яндекс. Что над ними думать то ???

 

Смысл движений в том, что "офисный планктон" начинает массово заходить с 10-13 и с14-17.

В это время начинается моушн :) Зачем нужен "планктон" из России например ??? Он только ресурсы тормозит.

 

Оптимизация она ведь вроде на то и оптимизация чтобы не менять тарифный план.

Link to comment
Share on other sites

что значит задуматся над источниками трафика то ???у меня основной траф это гугл яндекс. Что над ними думать то ???

Смысл движений в том, что офисный планктон начинает массово заходить с 10-13 и с14-17.

В это время начинается моушн :) Зачем нужны посетители из России например ??? Они только ресурсы тормозят.

Оптимизация она ведь вроде на то и оптимизация чтобы не менять тарифный план.

Не понял кто куда прийдет? . Ты вообще смотрел эту вкладку?? Там все можно отключить кроме своей страны. И прописать боты поисковиков.

 

Дело не во вкладке, рулить трафиком по гео можно на разных уровнях. Речь о том что - выруби тогда весь траф кроме укр и все, что мешает? почему рулить надо именно по времени?

 

Кто куда прийдет - сегодня к тебе пришло 500 чел из России и сайт лег, ты напрягся весь такой и "прооптимизировал" отрубив российский траффик, а завтра, о чудо, линк на твой сайт кто-то разместил на укр.нет/хабр/популярный целевой форум (ненужное вычеркнуть) и к тебе пришло 1000 целевых посетителей из Укр и сайт лег.

Так понятнее?)

 

П.С. это я все к тому что - магазин это коммерческий проект, хостинг/сервер стоит копейки, и к чему эта экономия на спичках мне лично непонятно.

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

Link to comment
Share on other sites

Ну так пусть он ложится не вопрос, но от целевых запросов на которых я могу нагрется.

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

 

Дело не во вкладке, рулить трафиком по гео можно на разных уровнях. Речь о том что - выруби тогда весь траф кроме укр и все, что мешает? почему рулить надо именно по времени?

 

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

Link to comment
Share on other sites

Ну так пусть он ложится не вопрос, но от целевых запросов на которых я могу нагрется.

 

о_О

а

ну это другое дело

тебе тогда нужна просто кнопка вкл/выкл

пришел вкл магазин, посидел, нагрелся, ушел гулять выкл магазин, можно еще объявление повесить - не забудьте выкл магазин

:D :D

Link to comment
Share on other sites

По поводу файлового кэширования. Серега объясни пожалуйста как получается, что только что установленный движок содержит около 16 тыс. файлов.

 

А у которого включено файловое кэшировнаие и 40 тыс может содержать.

Естественно больше весит. Тормозит также.

 

А если надо локально сайт скачать?

Это чтобы запаковать архив/скачать/развернуть минимум часа 2.

Ну и столько же обратно.

 

И чем файловое кэшировнаие лучше мемкэша?

Объясни ситуацию. А то может я не прав.

 

 

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

и какая собственно разница сколько тыс файлов содержит сайт?

 

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

Файловый кэш лучше чем отсутствие оного вообще.

Link to comment
Share on other sites

Смех смехом но у меня стоит тариф с удвоенной мощностью, и в часы пик просто все висит.... все выбирают подарки на новый год.

Любуются картинками , это значит смотрят какие бывают картинки :) Они не купят потому как я им не продаю,

 

Вот вы бы от пустой болтовни перешли бы к фактам, таким как :

 

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

Сколько вообще в день должен выдерживать магазин ???

 

А умничать и я могу, только я себя сдерживаю :)

Link to comment
Share on other sites

Понимаешь... твои вопросы, какбэ говорят сами за себя) Ты себя не сдерживай, здесь все свои))

 

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

 

для этого есть нагрузочные тесты)

 

Сколько вообще в день должен выдерживать магазин ???

 

Должен?)) Выдерживать?) Извиняюсь, но у меня чето ассоциации с "сутенер и проститутка" типа - "а скока она в день выдерживает?" :D фу конечно. Как ты себе это представляешь? Типа захожу в твой магазин онлайн/оффлайн не важно, а на двери табличка/швейцар/охрана - "а на танцполе нет свободных мест" :D :D

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

 

Короче выводы: включи всю оптимизацию / смени хостинг)

 

Смех смехом но у меня стоит тариф с удвоенной мощностью

ага, есть реклама.. солпадеин кажется, типа "нанеси двойной удар", а по факту там просто доза парацетамола*2 :)

Link to comment
Share on other sites

Серега извини, но ты балабол:) Я б конешно такого в здравом уме не написал, но у меня просто был целый день работы...закончил вот только что. Так что думаю мне простительно) Устал.

 

Твой последний пост даже не смог прочитать потому что там какая-то муть написана в стиле отмазок.

В чем его смысл ??? Не знаешь тогда молчи уже Зачем флудишь то ???

 

Вижу у тебя посещение не очень, много времени попистеть слишком ;)

Link to comment
Share on other sites

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

 

Последний мой пост - ответ на твой вопрос, каков вопрос - таков ответ, это если кратко)

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

Тема вобщем-то не об этом была изначально)

Link to comment
Share on other sites

Серега хватит лить из пустого в порожнее. :))) Отсекание реально убыстряет сайт. Ты ж не знаешь моего посещения . Есть реальнее предложения я и не только, с удовольствием выслушаем. А так ... писать мегабайты промо... я лично не понимаю, я ж не девочка чтобы уши развешивать. Мне например нравятся больше цифры,статистика, аналитика, и тд и тп..... а ты мне пишешь прозу :) Зачем ???? Я не по мальчикам :_)

Link to comment
Share on other sites

Эм, подростковая псевдогомофобия? Меня лично не интересуют ни твои посещения, ни отсечения. Реальные предложения - это по реальным задачам, а меряться "а вдруг у меня больше" это по месту там решите между собой.

 

Если у тебя такие большие посещения и продажи, то мне непонятна причина твоего нахождения в этой теме, и попыток выжать из какого-то "двойного хостинга" то чего он дать не может. $50-100 на дедик, пацаны, не?

меряйтесь дальше.

Link to comment
Share on other sites

Отсекание реально убыстряет сайт.

А полное выключение поднимает скорость на заоблачные высоты.

 

На вкладке настройки > геолокация можете запретить посетителям покупать или даже вообще смотреть сайт. Если подредактируете этот механизм, то можно и время задать, когда непускать посетителей.

 

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

Link to comment
Share on other sites

Я вот не понимаю конешно вас, возможно у програмеров свое виденье этого вопроса. Реально есть 30% нецелевого трафика, в том плане что с Россией работать не интересно для меня. Много возни а денег понт, кроме того я сейчас не справляюсь с локальными заказами. Логично отключить ненужный гимор :))) Но это логично для мерчанта, для программера не логично. :)

 

 

Кстати включил сегодня и файловый кеш и закончилось все тем что он заполнил все выделеное мне место. так что вряд ли он поможет на галименьком хосте.

Link to comment
Share on other sites

А ты никогда не видел миллионеров на драной копейке ????? Я вот видел :)

А сайты некоторых вообще убожество.

 

Ну от конешно ты пристал , :) никто ж не спорит облако так облако я в выборе операционки застрял :) Лично .

Вот кстати , реальный вопрос какая ось самая подходящая для престы ???? Или опять глупый вопрос ? :))))

Link to comment
Share on other sites

Вау, ты видел миллионера? Вау. Ты и сам может того? Пацаны ваще в курсе?

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

 

Знаю есть фильм "Миллионер из трущоб", но не припомню "Миллионер в трущобах".

Link to comment
Share on other sites

Тоесть разницы нет ??? Понятно, что она кросплатформенная. Я вообще имел ввиду только линукс... тут у меня выбор 30 разных вариантов :D Но хотя я тут глянул в лицо Сереги и все решил :) Хоть за это ему спасибо :lol:

 

Выбрать какую ос больше знают админы хоста - это конешно прикол.

 

а неет , оказываются админы лучше знают, centOS

Edited by Gerra (see edit history)
Link to comment
Share on other sites

Вот могу поделится реальными числами а не бла бла бла.

 

Купил я облачный ВПС Процессор Оперативная память Жесткий диск Скорость доступа 1GHz 1024MB 10GB 10Mbps

 

 

Гугл аналитикс показывает, что заходят одновременно 10 человек и все вешается.

Link to comment
Share on other sites

Вот могу поделится реальными числами а не бла бла бла.

 

Купил я облачный ВПС Процессор Оперативная память Жесткий диск Скорость доступа 1GHz 1024MB 10GB 10Mbps

 

 

Гугл аналитикс показывает, что заходят одновременно 10 человек и все вешается.

Чета как-то уныло совсем.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Провел тест? Это тест был? а, ну прости, я не заметил просто)) грош цена оптимизации говоришь? Ну тест твой то можно подороже оценить :D

 

Не понимаю с какого рожна ты вообще решил что "я купил вдс, 10 чел, преста упала, все пипец" вообще кому-то интересно в этой теме)

Думаю 2 прямых отрезка с манипуляторами, выращенные из предназначенного для них места спасут отца отечественного "я тут на облачный хостинг перехожу" :D

Link to comment
Share on other sites

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

Link to comment
Share on other sites

По моим подсчетам больше всего уходи время на формирования списка товаров, порядка 70-80 процентов.

 

Речь о выполнении пхп кода? Тема скорее не о оптимизации ядра, а о "доступной" оптимизации магазина, я бы рассматривал примерно в таком порядке:

- встроенные методы

- смена вебсервера / железа / системы кеширования

- кэширование модулей (рассмотрено на престалабе)

- оптимизация ядра (не уверен что необходимо, но давайте обсудим если есть данные)

 

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

Link to comment
Share on other sites

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

https://www.cloudsleuth.net/web/guest/blogs/-/blogs/134043

 

имхо, реклама мелкософт детектед, но в целом тест интересный

Link to comment
Share on other sites

Серега, пидорастическое поведение детектед. Объясню почему. Дело в том, что многие, если не все консультанты и вообще люди предоставляющие услуги воспринимают свою "жертву" то есть покупателя услуги, как бабу, особу женского пола. И стараются воздействовать не на логику, потому как если на нее воздействовать то не чем крыть очевидный маразм, а на воображение, чувства эмоции и тд и тп. Отсюда в их речи нет четких цифр, все очень образно и туманно, много метафор, крылатых выражений и прочей ерунды засерающей чистый логический мозг настоящего мужика :)))

 

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

 

Но если я тебе неоднократно намякнул, что мне нужна конкретика, что же ты так стараешься что бы я тебя ушами то полюбил ???? :D

Береги время,время- деньги :)

Link to comment
Share on other sites

Это ты в зеркало там смотришься? Детекшить часто или пока родители не видят?

 

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

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

Че, маленький очень? не волнуйся, не размер главное, какая-нибудь девушка с заниженной самооценкой обязательно тебе скажет эту фразу :D

школьники такие школьники.

 

А от количества конкретных цифр с твоей стороны просто никому уже места нет в этой теме.

Переход на показательную гомофобию многое о тебе говорит, вася, читай значение слова "латентный", ололо

 

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

Link to comment
Share on other sites

просто размышления....

 

предложенное мною может пригодится тем, у кого магазин одноязычный....

во первых в многоэтажных запросах mysql можно повыкидывать выборку по ИД языка, например запрос:

 

SELECT oh.*, e.`firstname` AS employee_firstname, e.`lastname` AS employee_lastname, osl.`name` AS ostate_name
FROM `'._DB_PREFIX_.'orders` o
LEFT JOIN `'._DB_PREFIX_.'order_history` oh ON o.`id_order` = oh.`id_order`
LEFT JOIN `'._DB_PREFIX_.'order_state` os ON os.`id_order_state` = oh.`id_order_state`
LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)($id_lang).')
LEFT JOIN `'._DB_PREFIX_.'employee` e ON e.`id_employee` = oh.`id_employee`
WHERE oh.id_order = '.(int)($this->id) ' AND oh.`id_order_state` = '.(int)($id_order_state) : '').'
ORDER BY oh.date_add DESC, oh.id_order_history DESC');

 

убрать AND osl.`id_lang` = '.(int)($id_lang).')

как-никак, но запрос будет быстрее выплняться....

 

еще одно предложение тоже для одноязычных магазинов:

вывод текста реализован через функцию вида {l s='(not impacted by the discount)'}, для смарти и подобное для PHP

сразу понятно что при выводе страницы несколько СОТЕН раз вызывается эта функция вместо того чтобы просто вывести текст...

 

лично я еще не проверял насколько это ускорит, но думаю существенную экономию можно получить....

 

 

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

Link to comment
Share on other sites

  • 2 weeks later...

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

https://www.cloudsle.../-/blogs/134043

 

 

 

Так я почитал и не понял, вывод то какой???

 

Лично я от облака пока не увидел никаких преимуществ. Может просто мне везет так но, обещанной стабильности да и скорости не наблюдаю особо. Постоянные мелкие проблемы то лег дисковый массив... то база не доступна , то срачка то болячка короче.... общаюсь с суппортом чуть ли не каждый день.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...