Tại sao Magento 2 lại cực kỳ chậm?


30

Tôi đã sử dụng Magento 1.9 và nó vẫn ổn. Nó không nhanh như một trang web j Joomla đơn giản nhưng tôi có nhiều khách hàng không có vấn đề gì.

Bây giờ tôi muốn nâng cấp trang web của mình lên Magento 2, tôi đã mua một máy chủ mới (giống như tôi hiện có) và cài đặt Magento 2 mà không có dữ liệu mẫu và rất khó sử dụng. Không chỉ quản trị viên, nhưng trang chủ trống cũng mất vài phút để tải và khi tôi cố gắng tạo tài khoản, tôi gặp phải lỗi "Đã đạt đến giới hạn tài nguyên"

Tôi đã thử với Facebook FlashCache, OptimumCache và Cloudflare nhưng không có gì thay đổi mặc dù những người sáng tạo cho biết Magento 2 nhanh hơn nhiều so với phiên bản đầu tiên.

Tôi muốn hiểu tại sao họ không thể sửa nó sau nhiều năm và tại sao nhiều người sử dụng nó?

Có cách nào buộc chặt nó lên không?

CẬP NHẬT:

Tôi đã sử dụng thương mại mgt trước đây và nó cực kỳ nhanh, chỉ mất chưa đến 2 giây để tải nhưng chi phí quá cao: Giá AWS + € 199,00

Họ đã cung cấp php7 / HHVM, Varnish, Redis, CDN, NGINX theo mặc định tôi đoán đó là lý do tại sao nó nhanh.

Tôi đã phải mua tài khoản WS của Amazon. Tôi không biết tại sao tôi đoán trang web của tôi thực sự được lưu trữ bởi Amazon.

Tôi đang tìm kiếm tốc độ tương tự cho một mức giá thấp hơn. Một ví dụ về nhà cung cấp VPS.

Tôi đã tìm kiếm xung quanh nhưng thấy rằng mọi nhà cung cấp dịch vụ lưu trữ đều tuyên bố họ có dịch vụ lưu trữ Magento. Siteground, Mochahost, Hostgator, Fastcomet, v.v.

Có lẽ có một nhà cung cấp dịch vụ lưu trữ sẽ cài đặt các bộ nhớ cache này để đánh bại các đối thủ cạnh tranh.

Tái bút: Xin lỗi nếu bài viết của tôi có vẻ ngớ ngẩn đối với các lập trình viên, tôi đã chọn ngành kinh tế, thương mại và tiếp thị tại trường đại học một cách đáng tiếc :(


Bạn có thể giải thích những gì bạn đã thử với Facebook FlashCache, OptimumCache và Cloudflare không?
mbalparda

1
Hình như vấn đề môi trường của nó. Trên vm của tôi, nó mở cms / trang chủ không có FPC <0,1s và với FPC <
0,01

vô hiệu hóa các cửa hàng hợp nhất css / js> cấu hình> nâng cao> nhà phát triển xem nhận xét của tôi ở đây magento.stackexchange.com/questions/150073/ Kẻ
Konstantin Gerasimov

2
Tôi đang bắt đầu với M2 và rất thất vọng với hiệu suất của nó. Nếu phần mềm của bạn yêu cầu một nghìn bộ nhớ cache để chạy cho một người dùng, có gì đó không đúng. Tôi hy vọng tôi sớm thay đổi suy nghĩ của mình.
Ricardo Martins

@KAndy bạn có thể viết những gì bạn sử dụng vm? Nếu bạn sử dụng vagrant thì có thể chia sẻ tập lệnh cung cấp không? Tôi đã thử một số máy ảo nhưng tất cả chúng đều không hoạt động. Cài đặt Magento thành công nhưng sau đó các trang không tải.
Alan

Câu trả lời:


23

Có nhiều tài nguyên có sẵn để cải thiện hiệu suất Magento 2 và tất cả chúng đều được ghi lại khá tốt.

Chế độ: Magento 2 đã giới thiệu các chế độ, là chế độ mặc định chậm nhất. Hãy dùng thử chế độ nhà phát triển và luôn chạy cửa hàng trực tiếp của bạn ở chế độ sản xuất. Thêm thông tin ở đây .

Cache: Varnish được hỗ trợ ngoài hộp, khá dễ dàng để cấu hình và sử dụng.

Redis: Redis là một giải pháp bộ đệm phụ trợ tùy chọn để thay thế Zend_Cache_Backend_File, được sử dụng trong Magento 2 theo mặc định. Nó có thể được sử dụng để lưu trữ phiên và bộ nhớ đệm trang.

Memcache: Memcached là kho lưu trữ khóa-giá trị trong bộ nhớ cho các khối dữ liệu nhỏ tùy ý (chuỗi, đối tượng) từ kết quả của các cuộc gọi cơ sở dữ liệu, lệnh gọi API hoặc kết xuất trang. Trong Magento 2 nó có thể được sử dụng cho các phiên .

PHP 7: Magento 2 tương thích với PHP 7. Có rất nhiều nghiên cứu về cách PHP 7 ảnh hưởng đến hiệu năng tốt.

Đây mới chỉ là khởi đầu, bạn sẽ có thể tinh chỉnh máy chủ web và máy chủ cơ sở dữ liệu của mình nhưng điều đó sẽ phụ thuộc nhiều vào trường hợp sử dụng cụ thể của bạn.

Nếu bạn không biết cách tự làm điều đó, có rất nhiều công ty chuyên về lưu trữ Magento.

Đối với một môi trường phát triển khá vững chắc, khuyến nghị cá nhân của tôi là Paliarush 'Vagrant hoặc VM tôi nhận được từ Magento cho các khóa học. Có một hình ảnh docker chính thức đến sớm.


8

Magento chạy hợp lý tốt ngay cả trong chế độ nhà phát triển. Nó cần một số cấu hình ban đầu mặc dù.

Trước tiên, hãy đảm bảo Magento được thiết lập chính xác, giả sử trên Ubuntu của bạn:

Sử dụng bản dựng mới nhất vì Magento 2.2+ hỗ trợ php 7.1 http://devdocs.magento.com/guides/v2.2/install-gde/prereq/php-ub Ubuntu.html

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

Nếu nhiều phiên bản php đang chạy của bạn, hãy đặt 7.1 thành mặc định thông qua

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

Ono Magento

  1. Đặt thành Nhà phát triển nếu chưa có php -f bin/magento deploy:mode:show

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

  2. Kiểm tra bộ nhớ cache của Magento đã được bật

    php -f bin/magento cache:status

Nếu không được bật (sê-ri 1)

php -f bin/magento cache:enable

Kích hoạt gói JS / CSS

Cửa hàng> Cấu hình> Nâng cao> Nhà phát triển

* Lưu ý mục menu trên chỉ hiển thị trong khi ở chế độ nhà phát triển

Định cư mẫu

  • Giảm thiểu HTML = Có

Cài đặt Javascript

  • Hợp nhất các tệp JS = Có

  • Kích hoạt gói JS = Có

  • Giảm thiểu các tệp JS = Có

Cài đặt CSS

  • Hợp nhất CSS = Có
  • Giảm thiểu CSS = Có

Thực hiện xóa bộ đệm từ đây trở đi sau mỗi bước xóa bộ đệm, đây là đường cơ sở của bạn để cố gắng cải thiện thời gian tải.

php -f bin/magento cache:flush

Gói nâng cao

Đây sẽ là một bài đăng theo hướng dẫn từ magento devdocs về cách kích hoạt tính năng này, điều này có thể làm tăng thêm khả năng tải JS frontend làm cho nó nhanh gấp 3 lần.

Sử dụng 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

Chỉnh sửa /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',
        ),
      ),
    ),
  ),

Sử dụng 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

Kích hoạt opcache trong PHP

Chỉnh sửa /etc/php/7.1/apache2/php.ini tìm opcache.enable

opcache.enable=1

Tôi cũng khuyên bạn nên sử dụng Cloud DB như AWS RDS hoặc cách khác, nó sẽ giúp bạn tiết kiệm được những vấn đề đau đầu khi định cấu hình mysql.

Nếu bây giờ bạn kích hoạt chế độ sản xuất php -f bin/magento deploy:mode:set production

bạn sẽ thấy nó chạy hợp lý.

Đưa nó đi xa hơn từ đây, bạn có thể thêm Varnish, Chuyển sang Nginx thêm CDN cho các tệp tĩnh.


2

Tôi cũng gặp vấn đề này trên Macbook Pro (cuối năm 2016) với MAMP.

Điều tôi muốn làm là tạo ra một chủ đề Magento 2. Tôi đã tắt tất cả bộ nhớ cache và phải mất 30 giây để tải lại một trang (frontend và backend).

Tôi đã kích hoạt tất cả bộ nhớ cache bằng lệnh "php magento cache: enable" và trang web tải rất nhanh. Tôi vẫn có thể làm việc với Grunt và LESS mà không cần tắt bất kỳ loại bộ đệm nào.


1

Magento 2 không chậm theo mặc định. Bạn phải làm theo các bước sau để làm cho nó nhanh:

  1. Yêu cầu máy chủ và hệ thống

  2. Cập nhật phiên bản Magento

  3. Kích hoạt Cache Varnish

  4. Cấu hình Memcached

  5. Cho phép danh mục và sản phẩm phẳng

  6. Tối ưu hóa Javascript và CSS

  7. Mạng phân phối nội dung

  8. Sử dụng chủ đề nhẹ

  9. Tiện ích mở rộng không có lỗi

  10. Hình ảnh nên được tối ưu hóa hoàn toàn


22
Tôi xin lỗi, nhưng nếu bạn phải thêm nhiều cấp độ bộ đệm vào một ứng dụng, thì nó sẽ bị chậm theo mặc định.
Robert Egginton

Robert: Dude, thêm bộ đệm vào một số lớp của một hệ thống nhiều lớp là loại kiến ​​trúc phù hợp. Chúng tôi không nói bộ nhớ cache trên bộ nhớ cache ... -o-
miracules

Sử dụng cache trong quá trình phát triển không thực sự là một giải pháp tối ưu. Xóa bộ nhớ cache mỗi khi thay đổi được thực hiện giống như phát triển ngôn ngữ được biên dịch, không phải PHP.
Alan

0

Làm thế nào để bạn hình Magento 2 là chậm? Trang web của tôi sử dụng một chủ đề rất nặng sẽ đạt điểm 93/100 ở Tốc độ trang và thời gian tải là 2 giây. Tôi muốn có một máy chủ tốt hơn cho Magento vì máy chủ web của bạn đóng một vai trò lớn trong hiệu suất của trang web của bạn. Đối với chế độ "mặc định" là chậm nhất không đúng sự thật. Tôi đã điều hành cửa hàng của mình ở chế độ mặc định cho đến khi tôi sẵn sàng chuyển sang chế độ sản xuất và nó đạt điểm 91/100 ở chế độ mặc định và chỉ chuyển sang 93/100 sau khi chuyển sang chế độ sản xuất.

Nhận một máy chủ tốt hơn và một máy chủ web tốt hơn nếu bạn thực sự muốn sử dụng Magento 2.


Sau magento cache:disablethời gian tải hơn 30 giây.
Tom Anderson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.