ทำไม Magento 2 จึงช้ามาก?


30

ฉันใช้ Magento 1.9 และมันก็โอเคมันไม่เร็วเท่าเว็บไซต์ joomla ง่าย ๆ แต่ฉันมีลูกค้ามากมายที่ไม่มีปัญหา

ตอนนี้ฉันต้องการอัปเกรดเว็บไซต์ของฉันเป็น Magento 2 ฉันซื้อโฮสต์ใหม่ (เหมือนกับที่ฉันมีอยู่ในปัจจุบัน) และติดตั้ง Magento 2 โดยไม่มีข้อมูลตัวอย่างและความเจ็บปวดในการใช้ไม่เพียงแค่ผู้ดูแลระบบ แต่หน้าแรกว่างเปล่าเช่นกัน ในการโหลดและเมื่อฉันพยายามสร้างบัญชีฉันได้รับข้อผิดพลาดที่ฉัน "ถึงขีด จำกัด ของทรัพยากร"

ฉันลองใช้Facebook FlashCache, OptimumCache และ Cloudflareแต่ไม่มีอะไรเปลี่ยนแปลงแม้ว่าผู้สร้างบอกว่าMagento 2นั้นเร็วกว่ารุ่นแรกมาก

ฉันต้องการที่จะเข้าใจว่าทำไมพวกเขาไม่สามารถแก้ไขได้หลังจากหลายปีที่ผ่านมาและทำไมผู้คนจำนวนมากใช้มัน

มีวิธีใดที่จะทำให้แน่นหรือไม่?

UPDATE:

ฉันใช้ mgt-commerce มาก่อนและมันก็เร็วอย่างไม่น่าเชื่อใช้เวลาโหลดน้อยกว่า 2 วินาที แต่มีค่าใช้จ่ายมากเกินไป: ราคา AWS + € 199.00

พวกเขาเสนอ php7 / HHVM, Varnish, Redis, CDN, NGINX โดยค่าเริ่มต้นฉันเดาว่าทำไมมันรวดเร็ว

ฉันต้องซื้อบัญชี Amazon WS ฉันไม่รู้ว่าทำไมฉันจึงเดาว่าไซต์ของฉันโฮสต์โดย Amazon

ฉันกำลังมองหาความเร็วเดียวกันในราคาที่ต่ำกว่า ตัวอย่างผู้ให้บริการ VPS

ฉันมองไปรอบ ๆ แต่พบว่าผู้ให้บริการโฮสต์ทุกรายอ้างว่าพวกเขามีวีโอไอพีโฮสติ้ง Siteground, Mochahost, Hostgator, Fastcomet เป็นต้น

อาจมีผู้ให้บริการโฮสต์ที่จะติดตั้งแคชเหล่านี้เพื่อเอาชนะคู่แข่ง

PS: ขออภัยถ้าโพสต์ของฉันดูเหมือนจะโง่สำหรับโปรแกรมเมอร์ฉันเลือกเศรษฐศาสตร์การพาณิชย์และการตลาดที่มหาวิทยาลัยโชคไม่ดี :(


คุณช่วยอธิบายว่าคุณลองใช้ Facebook FlashCache, OptimumCache และ Cloudflare ได้ไหม?
mbalparda

1
ดูเหมือนว่าปัญหาสิ่งแวดล้อม ใน vm ของฉันมันเป็น cms / หน้าแรกที่เปิดโดยไม่มี FPC <0.1s และด้วย FPC <0.01s
KAndy

ปิดการใช้งานการรวมร้านค้า css / js> การกำหนดค่า> ขั้นสูง> นักพัฒนาดูความคิดเห็นของฉันที่นี่magento.stackexchange.com/questions/150073/…
Konstantin Gerasimov

2
ฉันเริ่มต้นด้วย M2 และผิดหวังมากกับประสิทธิภาพของมันเช่นกัน หากซอฟต์แวร์ของคุณต้องใช้แคชหนึ่งพันเพื่อเรียกใช้สำหรับผู้ใช้คนเดียวมีบางอย่างผิดปกติ ฉันหวังว่าฉันจะเปลี่ยนใจในไม่ช้า
Ricardo Martins

@KAndy คุณสามารถเขียนสิ่งที่ vm คุณใช้? หากคุณใช้คนจรจัดเป็นไปได้ไหมที่จะแบ่งปันสคริปต์การจัดสรร ฉันลองใช้ VMs หลายตัว แต่ทั้งหมดนั้นใช้งานไม่ได้ การติดตั้งวีโอไอพีสำเร็จ แต่หน้าไม่โหลด
Alan

คำตอบ:


23

มีทรัพยากรหลายอย่างเพื่อปรับปรุงประสิทธิภาพของวีโอไอพี 2 และเอกสารทั้งหมดนั้นมีเอกสารที่ดีพอสมควร

โหมด: Magento 2 ได้เปิดตัวโหมดซึ่งเป็นโหมดเริ่มต้นที่ช้าที่สุด ทดลองใช้โหมดผู้พัฒนาและเรียกใช้ live store ของคุณในโหมดการผลิตเสมอ ข้อมูลเพิ่มเติมที่นี่

แคช: วานิชได้รับการสนับสนุนนอกกรอบค่อนข้างง่ายต่อการกำหนดค่าและใช้งาน

Redis: Redisเป็นโซลูชันแคชแบ็กเอนด์เผื่อเลือกที่จะแทนที่Zend_Cache_Backend_Fileซึ่งใช้ใน Magento 2 โดยค่าเริ่มต้น มันสามารถใช้สำหรับการจัดเก็บเซสชั่นและการแคชหน้า

Memcache: Memcached เป็นที่เก็บคีย์ - ค่าในหน่วยความจำสำหรับกลุ่มข้อมูลขนาดเล็ก (สตริง, วัตถุ) จากผลลัพธ์ของการเรียกฐานข้อมูลการเรียก API หรือการแสดงผลหน้า ใน Magento 2 สามารถใช้สำหรับการประชุมได้

PHP 7: Magento 2 เข้ากันได้กับ PHP 7 นอกกรอบ มีงานวิจัยมากมายเกี่ยวกับวิธีที่ PHP 7 ส่งผลต่อประสิทธิภาพการทำงานที่ดี

นี่เป็นเพียงการเริ่มต้นคุณควรจะสามารถปรับแต่งเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์ฐานข้อมูลของคุณได้อย่างละเอียด แต่นั่นจะขึ้นอยู่กับกรณีการใช้งานของคุณเป็นพิเศษ

หากคุณไม่ทราบวิธีการทำด้วยตัวเองมีหลาย บริษัท ที่เชี่ยวชาญในการโฮสต์วีโอไอพี

สำหรับสภาพแวดล้อมที่ค่อนข้างมั่นคงคำแนะนำส่วนตัวของฉันคือPaliarush 'VagrantหรือVMฉันได้รับจาก Magento สำหรับหลักสูตร มีภาพนักเทียบท่าอย่างเป็นทางการในเร็ว ๆ นี้


8

Magento ทำงานได้ดีพอสมควรแม้ในโหมดผู้พัฒนา มันต้องมีการกำหนดค่าเริ่มต้นบางอย่าง

ขั้นแรกให้แน่ใจว่า Magento ตั้งค่าไว้อย่างถูกต้องโดยสมมติว่าคุณใช้งานบน Ubuntu:

ใช้ build ล่าสุดเนื่องจาก Magento 2.2+ รองรับ php 7.1 http://devdocs.magento.com/guides/v2.2/install-gde/prereq/php-ubuntu.html

sudo apt-get install php7.1 php7.1-imap php7.1-xml php7.1-dom php7.1-intl

หากคุณใช้งาน php หลายรุ่นให้ตั้งค่า 7.1 เป็นค่าเริ่มต้นผ่านทาง

sudo update-alternatives --set php /usr/bin/php7.1

บนวีโอไอพี

  1. ตั้งเป็น Developer หากยังไม่ได้ดำเนินการ php -f bin/magento deploy:mode:show

    php -f bin/magento deploy:mode:set developer

  2. ตรวจสอบการเปิดใช้งานแคชของ Magento

    php -f bin/magento cache:status

ถ้าไม่ได้เปิดใช้งาน (ชุด 1 ของ)

php -f bin/magento cache:enable

เปิดใช้งานการรวม JS / CSS

ร้านค้า> การกำหนดค่า> ขั้นสูง> ผู้พัฒนา

* หมายเหตุรายการเมนูด้านบนจะปรากฏขึ้นขณะอยู่ในโหมดนักพัฒนาซอฟต์แวร์เท่านั้น

เทมเพลตการตั้งค่า

  • ย่อ HTML = ใช่

การตั้งค่า Javascript

  • รวมไฟล์ JS = ใช่

  • เปิดใช้งาน JS Bundling = ใช่

  • ย่อขนาดไฟล์ JS = ใช่

การตั้งค่า CSS

  • ผสาน CSS = ใช่
  • ลดขนาด CSS = ใช่

ทำการล้างแคชจากที่นี่ไปหลังจากทุกขั้นตอนการล้างแคชนี่เป็นพื้นฐานของคุณสำหรับการพยายามปรับปรุงเวลาในการโหลด

php -f bin/magento cache:flush

บันเดิลขั้นสูง

นี่จะเป็นการโพสต์ในตัวเองตามแนวทางจาก magento devdocs เกี่ยวกับวิธีการเปิดใช้งานสิ่งนี้สามารถเพิ่มการโหลดส่วนหน้าของ JS ทำให้มันเร็วขึ้นเป็น 3 เท่า

ใช้ Redis

sudo apt-get update
sudo apt-get install build-essential tcl8.5
sudo apt-get install make
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
cd utils/
sudo ./install_server.sh

แก้ไข /www/project/app/etc/env.php

'cache' => 
  array (
    'frontend' => 
    array (
      'default' => 
      array (
        'backend' => 'Cm_Cache_Backend_Redis',
        'backend_options' => 
        array (
          'server' => '127.0.0.1',
          'database' => '0',
          'port' => '6379',
        ),
      ),
      'page_cache' => 
      array (
        'backend' => 'Cm_Cache_Backend_Redis',
        'backend_options' => 
        array (
          'server' => '127.0.0.1',
          'port' => '6379',
          'database' => '1',
          'compress_data' => '0',
        ),
      ),
    ),
  ),

ใช้ PHP-FPM

apt-get install php7.1-fpm
a2enmod proxy_fcgi setenvif
a2enconf php7.1-fpm
sudo service php7.1-fpm restart
sudo service apache2 restart

เปิดใช้งาน opcache ใน PHP

แก้ไข /etc/php/7.1/apache2/php.ini ค้นหา opcache.enable

opcache.enable=1

ฉันขอแนะนำให้ใช้ Cloud DB เช่น AWS RDS หรืออื่น ๆ ซึ่งจะช่วยให้คุณประหยัดค่าใช้จ่ายในการปวดหัวของการกำหนดค่า mysql

หากคุณเปิดใช้งานโหมดการผลิต php -f bin/magento deploy:mode:set production

คุณควรพบว่ามันใช้งานได้ดีพอสมควร

นำมาเพิ่มเติมจากที่นี่คุณสามารถเพิ่มวานิชเปลี่ยนเป็น Nginx เพิ่ม CDN สำหรับไฟล์คงที่


2

ฉันมีปัญหานี้เช่นกันใน Macbook Pro (ปลายปี 2016) ด้วย MAMP

สิ่งที่ฉันต้องการทำคือการสร้างชุดรูปแบบ Magento 2 ฉันปิดการใช้งานแคชทั้งหมดและใช้เวลา 30 วินาทีในการโหลดหน้าเว็บอีกครั้ง (ส่วนหน้าและส่วนหลัง)

ฉันเปิดใช้งานแคชทั้งหมดด้วยคำสั่ง "แคช magento php: เปิดใช้งาน" และเว็บไซต์โหลดเร็วมาก ฉันยังสามารถทำงานกับ Grunt และ LESS ได้โดยไม่ต้องปิดการใช้งานแคชทุกประเภท


1

โดยค่าเริ่มต้น Magento 2 จะไม่ช้า คุณต้องทำตามขั้นตอนเหล่านี้เพื่อให้รวดเร็ว:

  1. ข้อกำหนดของเซิร์ฟเวอร์และระบบ

  2. อัปเดตเวอร์ชันคุณภาพเยี่ยม

  3. เปิดใช้งานแคชวานิช

  4. กำหนดค่า Memcached

  5. เปิดใช้งานหมวดหมู่และผลิตภัณฑ์แบบแบน

  6. เพิ่มประสิทธิภาพ Javascript และ CSS

  7. เครือข่ายการจัดส่งเนื้อหา

  8. ใช้ชุดรูปแบบที่มีน้ำหนักเบา

  9. ส่วนขยายที่ไม่มีข้อบกพร่อง

  10. รูปภาพควรได้รับการปรับให้เหมาะสมที่สุด


22
ฉันขอโทษ แต่ถ้าคุณต้องเพิ่มการแคชหลายระดับลงในแอปพลิเคชันก็จะช้าตามค่าเริ่มต้น
Robert Egginton

Robert: เพื่อนการเพิ่มแคชให้กับหลายเลเยอร์ของระบบหลายเลเยอร์เป็นสถาปัตยกรรมที่เหมาะสม เราไม่ได้พูดถึงแคชกับแคช ... -o-
miracules

การใช้แคชระหว่างการพัฒนาไม่ใช่ทางออกที่ดีที่สุด การล้างแคชทุกครั้งที่มีการเปลี่ยนแปลงจะทำให้รู้สึกเหมือนกับการพัฒนาในภาษาที่คอมไพล์ไม่ใช่ PHP
อลัน

0

คุณคิดว่า Magento 2 ช้าแค่ไหน? ไซต์ของฉันซึ่งใช้ธีมที่หนักมากมีคะแนน 93/100 ใน Page Speed ​​และเวลาในการโหลด 2 วินาที ฉันจะบอกว่ารับโฮสต์ที่ดีกว่าสำหรับ Magento เพราะเว็บเซิร์ฟเวอร์ของคุณมีบทบาทสำคัญในการทำงานของไซต์ของคุณ สำหรับโหมด "default" นั้นช้าที่สุดไม่เป็นความจริงเลย ฉันวิ่งร้านค้าของฉันในโหมดเริ่มต้นจนกระทั่งฉันพร้อมที่จะเปลี่ยนไปใช้โหมดการผลิตและได้คะแนน 91/100 ในโหมดเริ่มต้นและไปที่ 93/100 หลังจากเปลี่ยนเป็นโหมดการผลิตเท่านั้น

รับโฮสต์ที่ดีขึ้นและเว็บเซิร์ฟเวอร์ที่ดีขึ้นถ้าคุณต้องการใช้ Magento 2


หลังจากmagento cache:disableเวลาโหลดนานกว่า 30 วินาที
Tom Anderson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.