portaldacalheta.pt
  • Основен
  • Agile Talent
  • Дизайнерски Живот
  • Възходът На Дистанционното
  • Рентабилност И Ефективност
Back-End

Обяснено оптимизиране на ефективността на Magento



Изпълнението на Magento е от първостепенно значение. Скоростта на зареждане има пряко и измеримо въздействие върху степента на конверсия на вашия уебсайт, поради което наличието на оптимизирана инсталация на Magento е от решаващо значение за успеха на вашия магазин Magento и вероятно дори на вашия бизнес като цяло.

В тази статия ще представя някои начини, по които Разработчици на Magento могат да оптимизират инсталацията си на Magento 2 и да обяснят как да направят следното:



  • Проверете модулите на трети страни и намерете тесни места
  • Активиране на кеш на цяла страница
  • Лак, а не файлове за кеш на цяла страница
  • Уверете се, че кешът на цялата страница работи, той може да бъде разбит толкова лесно
  • Активиране на производствения режим
  • CSS / JS минификация
  • Активиране на плоски маси
  • Вземете най-бързия хостинг, който можете да си позволите
  • Оптимизирайте изображенията
  • Индексаторите да „актуализират по график“
  • GZIP компресия
  • Използвайте Elasticsearch на страниците на каталога и търсете.
  • Проверете за ненужни обаждания на Ajax обратно към сървъра след зареждане на страницата (може да доведе до заключване на сесия)
  • Redis за кеш на страници и съхранение на сесии

Проверете модули на трети страни и намерете тесни места

Има много модули на Magento на трети страни с лош код, използващи остарели методи или имащи проблеми със съвместимостта с най-новата стабилна версия на Magento. Най-добрият начин за идентифициране на тежки заявки е използването на профилист. Това ви помага да определите колко MySQL заявки имате на дадена страница и колко са идентични. Знаейки това, можете да уплътните тези заявки в едно и по този начин да ускорите Magento.



Едно от основните неща, които младите разработчици правят погрешно в Magento, е да зареждат модели вътре в цикли. Опитайте се да избягвате това, доколкото можете. Заредете цялата колекция с всичко, от което се нуждаете, и след това преминете през нея. Винаги имайте предвид сложността на времето и пространството и изградете своя алгоритъм по оптимизиран начин.



Диаграма на ефективността на Magento

Вижте как се зарежда вашето оформление и кои са блоковете на шаблони, които се представят най-бавно, след което разгледайте този код. Разгледайте показателите за модел CRUD, където можете да намерите проницателни данни, като например повиквания за зареждане в цикли.



Magento кеш на цяла страница

Когато потребител има достъп до вашия магазин, се отправя заявка към сървъра. Тази заявка се обработва от PHP, като прави специфични операции и заявки към база данни, след което връща съответния HTML за показване на потребителя. Кешът на цяла страница съхранява този HTML отговор, така че следващата идентична заявка директно ще го върне, прескачайки всички заявки за обработка и база данни. Това прави реакцията на уебсайта много по-бърза.

Използването на кеш на цяла страница като част от усилията ви за оптимизация на Magento може значително да увеличи скоростта на уебсайта ви. Това ще създаде кеширани версии на вашите страници и ще ги достави на потребителя, вместо да изпълнява всички заявки за всяка заявка. Разбира се, не всички страници са кеширани. Например страницата на количката няма да бъде кеширана, в противен случай всички потребители ще видят първата кеширана версия на страницата. Това са динамични страници или раздели на страници, които са специфични за потребителя и сесията.



За да активирате кеша на Magento на цяла страница, можете да изпълните следната команда на CLI:

php bin/magento cache:enable full_page



За да активирате типовете кеш, можете да изпълните командата CLI:

php bin/magento cache:enable



Можете също да го направите от Magento Admin, като влезете като администратор:

  1. Отидете на Система > Инструменти > Управление на кеша
  2. Изберете Тип кеш искате да активирате
  3. В Действия падащо меню изберете Активиране и щракнете Изпращане

Снимка на екрана за оптимизиране на производителността на Magento



Използвайте лак за кеш на цяла страница

Когато активирате кеш на цяла страница, използвайте Varnish, за да се справите с него, а не с файлове. Magento силно препоръчва да се използва лак (или Redis) в производството. Интегрираното кеширане на цели страници (или към файловата система, или към базата данни) е много по-бавно от Varnish и Varnish е предназначен за ускоряване на HTTP трафика.

Можете да намерите пълно ръководство за това как инсталирайте и конфигурирайте Varnish в официалната документация на Magento 2.

За да конфигурирате Magento да използва Varnish, влезте в администратора на Magento като администратор:

  1. Отидете на Магазини > Конфигурация > Разширено > Система > Кеш на пълната страница
  2. От Приложение за кеширане списък, щракнете Кеширане с лак
  3. Въведете стойност в TTL за обществено съдържание поле
  4. Разгънете Конфигурация на лак и въведете конкретната информация за вашата конфигурация на Varnish

Снимка на кеш на цяла страница за оптимизация на производителността на Magento

Уверете се, че кешът на цялата страница работи: Лесно се счупва

Кешът на цялата страница може лесно да бъде разбит в Magento 2. Например, ако искате да изключите блок от кеша, не използвайте атрибута cacheable='false' в XML оформлението при деклариране на вашия блок. Това ще деактивира кеша за цялата страница, която съдържа този блок, не само за този блок. Това е грешка, която съм виждал как хората правят.

Потърсете cacheable='false' атрибут във вашите оформления и вижте на кои блокове са зададени и на кои страници се извикват тези блокове. По този начин можете да установите дали тривиалните страници имат проблеми с кеша.

Можете също така да тествате дали страницата ви се кешира ръчно. Поставете магазина в режим за програмисти във вашата местна или сценична среда:

  1. Изчистете кеша на Magento
  2. Заредете страницата в браузъра
  3. Проверете заглавията на страниците в раздела за отстраняване на грешки в браузърите.
  4. Потърсете X-Magento-Cache-Debug: MISS
  5. Опреснете страницата, тя трябва да се промени на HIT

Ако не се промени на HIT, това означава, че страницата не е кеширана и кешът не работи.

Не забравяйте да активирате производствения режим

Magento има три режима на работа, по подразбиране , разработчик , и производство режим.

Производственият режим е предназначен за внедряване в производствена система. Този режим скрива изключения, обслужва статичните файлове само от кеш паметта и не ви позволява да активирате или деактивирате типовете кеш в Magento Admin. Той също така предотвратява автоматичното компилиране на кодови файлове.

Докато работите и разработвате магазина, режимът за разработчици е активен. Не забравяйте да превключите на производствен режим, когато разполагате сайта си на сървъра на живо!

Командата CLI, за да видите текущия режим е:

php bin/magento deploy:mode:show

Командата CLI за превключване в производствен режим е:

php bin/magento deploy:mode:set production

Командата CLI за превключване в режим за разработчици е:

php bin/magento deploy:mode:set developer

Можете да намерите по-подробна информация за различните режими на Magento тук .

CSS / JS минификация

Минимизирането на CSS и JS файловете е важен елемент от оптимизацията на скоростта на Magento 2. Като ги минимизираме, премахваме всички интервали, раздели и нови редове във файловете. Получените файлове ще имат по-малко символи и следователно по-малък размер, така че те ще се изтеглят по-бързо.

Magento има вградена тази функция и можете да активирате CSS / JS минификация в Admin. За да активирате умаляването на JavaScript, изпълнете следните стъпки:

  1. поставете Magento в производствен режим
  2. Отидете на Магазини > Конфигурация > Разширено > Разработчик
  3. Комплект Умалете Javascript файловете опция за Да
  4. Запазване на конфигурацията
  5. Прочистване на кеша при Система > Управление на кеша страница

Екранна снимка на режима на производство на Magento

За да активирате CSS минификация, са необходими следните стъпки:

  1. поставете Magento в производствен режим
  2. Отидете на Магазини > Конфигурация > Разширено > Разработчик > Настройки на CSS
  3. Комплект Умалете CSS файловете опция за Да
  4. Запазване на конфигурацията
  5. Прочистване на кеша при Система > Управление на кеша страница

Скрийншот за минификация на Magento CSS

Забележка: Не обединявайте JS файлове - просто ги минимизирайте .

Активиране на плоски таблици

Magento използва модела EAV (стойност на атрибута на обекта), който съхранява атрибутите на своите обекти в множество таблици в зависимост от техния тип стойност. Използването на множество таблици, обединения и заявки за множество таблици са необходими за извличане на данните, което може да забави заявките.

Magento има опцията да използва плоски маси за каталога и продуктите. Плоските таблици се създават чрез обединяване на всички атрибути на обект в една таблица. Когато искаме данните, трябва да запитваме една таблица, което я прави много по-бърза.

Magento генерира и актуализира плоски таблици за всяка индексация. Можете да активирате плоски маси, като влезете в Magento Admin като администратор:

  1. Отидете на Магазини > Конфигурация > Каталог > Каталог > Витрина
  2. Изберете Да за Използвайте Категория на плосък каталог
  3. Изберете Да за Използвайте плосък каталог продукт
  4. Запазване на конфигурацията

Екранна снимка на плоски маси на Magento

Изберете Бърз хостинг на Magento

Вижте минималните изисквания на Magento и вижте дали вашият сървър ги отговаря. Можете да видите официалните изисквания за стека на технологията Magento 2.2.x. тук .

Конфигурацията на хостинга е много важна за производителността на Magento 2. Съществуват и специализирани хостинг услуги за Magento, въпреки че те могат да бъдат по-скоро маркетинг, отколкото каквото и да било друго.

В крайна сметка: Вземете най-бързото хостинг решение, което можете да си позволите, освен ако това не е прекалено много за вашия проект.

Magento Оптимизация на изображения

Размерът на вашите изображения очевидно влияе върху скоростта на вашия уебсайт. Например, ако имате страница с каталог с 20 продукта и всяко изображение на продукта е с размер 1Mb, това прави общо 20Mb за изтегляне, когато страницата се зареди, и това очевидно може да е проблем в някои сценарии (мобилни устройства, ограничена честотна лента в определени региони и т.н.).

Проверете дали изображенията ви са правилно оптимизирани и дали имат добро съотношение между качество и размер. Също така, уверете се, че вашите изображения не са преоразмерени от CSS, но изходният файл е преоразмерен до конкретния размер, от който се нуждаете.

Друга техника е използването на мързеливо зареждане, което означава зареждане на вашите изображения след пълното зареждане на страницата или докато потребителят превърта каталога.

Можете също да използвате AWS или CDN, за да доставяте съдържанието си много по-бързо. Нека да разгледаме набързо разликите между AWS, CDN и традиционния хостинг от гледна точка на растерна оптимизация.

Традиционен хостинг

Традиционният начин е да съхранявате вашето съдържание, като изображения, на същия сървър като вашия уебсайт. Това може да отнеме дисково пространство и добра част от вашата честотна лента, създавайки значително натоварване на сървъра. Очевидно мащабирането с традиционния хостинг може да бъде проблем.

CDN (мрежа за доставка на съдържание)

Мрежата за доставка на съдържание обикновено се използва за намаляване на натоварването на сървър, като обслужва част от съдържанието на уебсайта. Освен това, той носи висока производителност, като доставя съдържанието ви бързо и висока наличност чрез използване на множество мрежи, за да се обадите.

AWS (Amazon CloudFront)

Amazon CloudFront е изключително защитена мрежа за доставка на съдържание (CDN), която осигурява защита както на ниво мрежа, така и на ниво приложение. Проверете този урок за това как да започнете AWS и доставяйте съдържание по-бързо .

Освен това можете да използвате AWS за преоразмеряване на изображения в движение въз основа на размери, предадени чрез параметър на заявката. За допълнителна информация вижте този урок на Преоразмеряване на изображения с Amazon CloudFront и[имейл защитен] .

Задайте индексатори на „Актуализиране по график“

Индексаторите на Magento могат да бъдат настроени на два режима: „ Актуализиране на Запазване ' или ' Актуализация по график . '

Когато са настроени на „Актуализиране при запазване“ всеки път, когато запазвате продукт, атрибут или категория, конкретният индекс започва да работи. Индексаторите могат да потребят ресурси и това може да забави сървъра ви.

Най-добрият режим за настройване на индексаторите е „Актуализиране по график“. По този начин сте сигурни, че те се изпълняват от заданието cron в точно определено от вас време. Изберете време, когато трафикът на вашия уебсайт е нисък.

Можете да видите текущия режим на индексатори, като изпълните командата:

php bin/magento indexer:show-mode

Или в Magento Admin, като отидете на:

Система > Управление на индекса

Можете да промените режима на индексатори на „Актуализиране по график“, като изпълните командата:

php bin/magento indexer:set-mode schedule

колко дълго продължава сертифицирането на aws

Можете да промените режима на индексаторите на „Актуализиране при запис“, като изпълните командата:

php bin/magento indexer:set-mode realtime

И ето го в Magento Admin:

Система > Управление на индекса: Изберете всички индексатори и от Действия падащото меню изберете „Актуализиране по график“

алтернативен текст на изображението

Можете също да конфигурирате Планираните задачи, като влезете в Admin, за да:

Съхранявайте > Настройки > Конфигурация > Разширено > Система > Cron (Планирани задачи)

Разгънете „Опции за конфигуриране на Cron за група: индекс“

Диалог за конфигуриране на Magento cron

GZIP компресия

Gzip е метод за компресиране на файлове за по-бързи мрежови трансфери. Компресията позволява на вашия уеб сървър да предоставя по-малки размери на файловете, които се зареждат по-бързо за потребителите на вашия уеб сайт. Това обаче си струва.

Докато компресирате файл, зареждате процесора и колкото повече компресирате файл, толкова по-дълъг е процесът. Въпреки че това може да увеличи натоварването на процесора на сървъра, това също може значително да намали използването на честотната лента. С gzip можете да избирате между различни нива на компресия, вариращи от 1 до 9.

На ниво 1 имате най-бързото време на компресия, но по-ниско съотношение на компресия. На противоположната страна, на ниво 9 имате най-висока степен на компресия, но по-ниска скорост. Конфигурацията по подразбиране на gzip използва ниво 6, благоприятстващо компресията пред скоростта. Nginx обаче използва ниво 1, благоприятствайки скоростта пред размера на файла.

За да включите gzip компресия и да активирате mod_deflate модул на Apache, можете да добавите това, като актуализирате вашия .htaccess файл и декомментирате съответните редове, както е показано по-долу. mod_deflate модул компресира статични ресурси в по-малки файлове, преди да ги прехвърли в браузъра.

############################################ ## enable apache served files compression ## http://developer.yahoo.com/performance/rules.html#gzip # Insert filter on all content SetOutputFilter DEFLATE # Insert filter on selected content types only AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json image/svg+xml # Netscape 4.x has some problems... BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine BrowserMatch MSIE !no-gzip !gzip-only-text/html # Don't compress images SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary

Използвайте Elasticsearch на страниците на каталога и Търсене

Друг начин, по който можете да увеличите скоростта на уебсайта си, е да използвате Elasticsearch за страници в каталога и резултати от търсенето. Настройте вашия сървър Elasticsearch и свържете вашия Magento магазин към него. Търсенето става много по-бързо с помощта на Elasticsearch.

Това официално ръководство обяснява как можете да конфигурирате Magento с Elasticsearch.

За да конфигурирате Magento да използва Elasticsearch влизане в администратора на Magento като администратор:

  1. Щракнете Магазини > Настройки > Конфигурация > Каталог > Каталог > Търсене в каталога .
  2. От Търсачка списък, щракнете Elasticsearch или Elasticsearch 5.0+ както показва следващата фигура. (The Elasticsearch 5.0+ опцията не е налична за Magento 2.1.)

Създаване на Elasticsearch в Magento

Проверете за излишни обаждания от Ajax

Обажданията обратно към сървъра след зареждане на страницата могат да доведат до блокиране на сесията. Начинът да проверите за всички обаждания на Ajax, които прави вашата страница, е като използвате DevTools в Chrome. Можете да го отворите, като щракнете с десния бутон върху страницата и изберете Инспектиране.

Отидете в раздела мрежа и там можете да филтрирате заявката по XHR. Сега можете да видите всички заявки на Ajax на страницата и да ги проверите, за да видите кои от тях са необходими на конкретната страница.

Аякс разговори в Magento

Redis за кеш на страници и съхранение на сесии

Redis е незадължително решение за кеширане на заден план за замяна Zend_Cache_Backend_File, което се използва в Magento 2 по подразбиране.

Защо да използвам Redis?

Използването на Redis може да има множество предимства:

  • Можете да замените memcached с Redis, защото може да се използва и за съхранение на PHP сесия.
  • Redis поддържа запис на диска и главна / подчинена репликация, което е силно поискана функция, която не се поддържа от memcached. Репликацията избягва единична точка на повреда и осигурява висока наличност.
  • Операциите с тагове не изискват пълно сканиране на всеки кеш файл, тъй като Redis работи чрез индексиране на тагове във файлове.
  • Задният край поддържа почистване на кеша на базата на етикети без контури на foreach.

Има и основен недостатък:

  • Тъй като Redis е хранилище в паметта, всички ваши данни трябва да се побират в паметта, което означава, че е ограничено само от скоростта и капацитета на RAM.

Конфигурирайте Magento да използва Redis за съхранение на сесии

Следва примерна конфигурация, която да се добави към app/etc/env.php:

'session' => array ( 'save' => 'redis', 'redis' => array ( 'host' => '127.0.0.1', 'port' => '6379', 'password' => '', 'timeout' => '2.5', 'persistent_identifier' => '', 'database' => '2', 'compression_threshold' => '2048', 'compression_library' => 'gzip', 'log_level' => '1', 'max_concurrency' => '6', 'break_after_frontend' => '5', 'break_after_adminhtml' => '30', 'first_lifetime' => '600', 'bot_first_lifetime' => '60', 'bot_lifetime' => '7200', 'disable_locking' => '0', 'min_lifetime' => '60', 'max_lifetime' => '2592000' ) ),

Можете да проверите тук всички подробности за параметрите и как да направите основна проверка, че вашата инсталация на Redis работи добре заедно с вашия Magento.

Конфигурирайте Magento да използва Redis за страница и кеш по подразбиране

Има два начина за конфигуриране на Redis за страничен и кеш по подразбиране. Можете ръчно да редактирате app/etc/env.php файл или можете да използвате командния ред, който е препоръчителният метод, тъй като осигурява и проверка.

За кеша по подразбиране изпълнете командата:

php bin/magento setup:config:set --cache-backend=redis --cache-backend-redis-=...

Посочете параметри, които са специфични за кеширането по подразбиране на Redis.

За кеша на страници изпълнете командата:

Php bin/magento setup:config:set --page-cache=redis --page-cache-redis-server=redis.example.com --page-cache-redis-db=1

Тази команда дава възможност за кеширане на страницата Redis, задава хоста на redis.example.com и присвоява номера на базата данни на 1. Можете да проверите всички подробности в Magento DevDocs .

Обобщение на оптимизацията на производителността на Magento

Ние разгледахме доста подходи за оптимизиране на производителността на Magento 2, така че нека направим кратко обобщение.

Идентифицирането и решаването на тесни места ще направи огромна разлика при обработката на вашите данни. Използването на кеш на цяла страница и Varnish също ще подобри скоростта на вашия уебсайт и ще ускори HTTP трафика. Винаги трябва да използвате Magento в производствен режим на вашия сървър на живо, без извинения. Използвайте минимизация, за да намалите размера на CSS и JS файлове, по-малкият файл ще се изтегли по-бързо и ще използва по-малко честотна лента.

Активирайте плоски таблици, за да намалите заявките за база данни и да подобрите времето за отговор на базата данни. Оптимизирайте вашите изображения и използвайте CDN, ако е възможно. Настройте индексаторите да се актуализират по график и активирайте Magento cron. Активирането на компресиране на gzip също ще намали размера на файловете за изтегляне. Използването на Elasticsearch ще увеличи скоростта на вашите страници в каталога и страницата с резултати от търсенето ще се зареди много по-бързо. Използвайте Redis за кеш на страници и съхранение на сесии, което е значително по-бързо от стандартния memcache.

Можете да приложите всички тези препоръки или само няколко, които досега не сте използвали. Дори двойка трябва да е достатъчна, за да подобри производителността на Magento, което, надяваме се, трябва да се трансформира в повече реализации.

Разбиране на основите

Какво е Magento?

Magento е модерна платформа за електронна търговия, изградена върху технология с отворен код, която се простира отвъд системата за пазаруване, предлагайки мощни инструменти за B2C, B2B и B2B2C.

На какъв език е написан Magento?

Magento е написан на PHP.

Какво е Magento Cloud?

Magento Commerce Cloud е управлявана и автоматизирана хостинг платформа за Magento, специално създадена за облачни инфраструктури. Тази версия съчетава Magento Commerce и хостинг на облачна инфраструктура, с няколко разлики и добавени функции.

Защо да използваме Magento 2?

Magento 2 е проектиран за растеж и е създаден за гъвкавост. Той може да осигури безпроблемно пазаруване, да намали бизнес разходите, да автоматизира повтарящи се задачи и да спести часове ръчни усилия. Също така, като сте пъргави и лесни за ползване, с Magento можете бързо да отидете на пазара.

Как да ускоря Magento 2?

Използвайте кеш на цяла страница, Varnish и активирайте плоски маси. Използвайте минификация за CSS и JS файлове. Оптимизирайте изображенията и използвайте CDN, ако е възможно. Настройте индексаторите да се актуализират по график. Активирайте Magento cron и gzip компресия. Използвайте Elasticsearch за каталог и търсене. Използвайте Redis за кеш на страници и съхранение на сесии.

Magento 2 безплатен ли е?

Magento 2 се предлага както в безплатна, така и в платена версия. Предлаганите решения са Magento с отворен код и Magento Commerce. Magento с отворен код е безплатен за всички. Magento Commerce е платено решение, което може да бъде хоствано и в собствения облак на Magento, Magento Commerce Cloud.

Приближаване на процеса на проектиране на уебсайт от браузъра

Ui Design

Приближаване на процеса на проектиране на уебсайт от браузъра
Изграждане на междуплатформени приложения с Xamarin: перспектива за разработчик на Android

Изграждане на междуплатформени приложения с Xamarin: перспектива за разработчик на Android

Подвижен

Популярни Публикации
Широки срещу тесни набори от умения: Демистифицирани умения за софтуерно инженерство
Широки срещу тесни набори от умения: Демистифицирани умения за софтуерно инженерство
Талантът не е стока
Талантът не е стока
iOS 9 Betas и WatchOS 2 за разработчици
iOS 9 Betas и WatchOS 2 за разработчици
Ръководство за многообработващи мрежови сървърни модели
Ръководство за многообработващи мрежови сървърни модели
Как да създадете персонализирани шрифтове: 7 стъпки и 3 казуса
Как да създадете персонализирани шрифтове: 7 стъпки и 3 казуса
 
Настройка на производителността на базата данни на SQL за разработчици
Настройка на производителността на базата данни на SQL за разработчици
Събуждане на спяща индустрия: Нарушаване на индустрията на матраците
Събуждане на спяща индустрия: Нарушаване на индустрията на матраците
Figma срещу Sketch срещу Axure - Преглед, основан на задачи
Figma срещу Sketch срещу Axure - Преглед, основан на задачи
Разбиране на нюансите на класификацията на шрифтовете
Разбиране на нюансите на класификацията на шрифтовете
Възраст преди красотата - Ръководство за дизайн на интерфейси за възрастни възрастни
Възраст преди красотата - Ръководство за дизайн на интерфейси за възрастни възрастни
Популярни Публикации
  • най-добрият език за кодиране за роботика
  • най-добрите javascript ресурси, модели на най-добри практики
  • как да създадете нов език за програмиране
  • как да използвам bootstrap в html
  • когато правите сложна презентация кое от следните
  • как се прави финансов модел
Категории
  • Agile Talent
  • Дизайнерски Живот
  • Възходът На Дистанционното
  • Рентабилност И Ефективност
  • © 2022 | Всички Права Запазени

    portaldacalheta.pt