Magento 2 cung cấp nhiều cài đặt và công cụ mà bạn có thể sử dụng để cải thiện tốc độ phản hồi trên các trang.

Cron Jobs

Tất cả các hoạt động không đồng bộ trong Magento được thực hiện bằng cron. Chính vì vậy, việc enable cronjob cho Magento 2 là vô cùng cần thiết.

Việc chạy thông qua cron job ta có thể thực hiện các task theo lô cùng một lúc, thay vì riêng lẻ từng cái một. Ngoài ra, cron job sẽ chạy ngầm, giúp tối ưu hóa trải nghiệm của khách hàng.

Để enable cron job, ta sử dụng câu lệnh sau:

bin/magento cron:install

Để kiểm tra cron đã được cài đặt đúng chưa, ta gõ:

crontab -l

Nếu thấy đoạn text sau hiển thị , tức là cron đã được thiết lập đúng

#~ MAGENTO START c5f9e5ed71cceaabc4d4fd9b3e827a2b
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log
#~ MAGENTO END c5f9e5ed71cceaabc4d4fd9b3e827a2b

Tương tự , để xóa cron ra khỏi hệ thống:

bin/magento cron:remove

Ngoài ra, ta có thể chạy cron bằng tay thay vì tự động chạy ở linux bằng câu lệnh sau:

bin/magento cron:run [--group="<cron group name>"]

Các công việc có sử dụng cron trong Magento 2:

  • Catalog price rules
  • Newsletters
  • Generating Google sitemaps
  • Customer Alerts/Notifications (product price change, product back in stock)
  • Reindexing
  • Private sales (Adobe Commerce only)
  • Automatic updating of currency rates
  • All Magento e-mails (including order confirmation and transactional)

Indexers

Indexer có thể chạy ở chế độ Update on Save hoặc Update on Schedule

Update on Save: Indexer sẽ được chạy ngay khi có sự thay đổi. Chế độ này nên được sử dụng khi cường độ hoạt động và tải của trang web của bạn đang thấp.

Update on Schedule : Update on Save có thể dẫn đến sự chậm trễ đáng kể khi tải cao. Do đó, việc sử dụng Update on Schedule cùng với cronjob, bạn có thể chạy indexer bất đồng bộ và giúp tối ưu hóa tải của website. Có thể chỉnh cấu hình ở System > Tools > Index Management

Reindexing trên MariaDB 10.4 mất nhiều thời gian hơn so với các phiên bản MariaDB hoặc MySQL khác. Để giải quyết vấn đề, Magento khuyến cáo bạn nên sửa đổi cấu hình MariaDB mặc định và đặt các thông số sau:

Bộ nhớ đệm Cache

Khi chạy web ở chế độ production, mọi người cần chắc chắn đã enable toàn bộ cache của hệ thống ở System->Cache Management . Magento khuyến cáo mọi người sử dụng Varnish Cache thay vì Cache built-in sẵn có của Magento.

"Varnish" là "một ứng dụng mã nguồn mở (Open source) có tác dụng lưu lại bộ nhớ đệm của website bằng phương thức làm proxy trung gian giữa nội dung website gốc và trình duyệt và Varnish sẽ tạo một bản cache ngoài frontend

Varnish hoạt động như một kỹ thuật đa luồng (heavily threaded) nên các kết nối vào website không cần phải chờ đợi webserver xử lý, giúp tiết kiệm thời gian truy xuất và hạn chế việc quá tải webserver.


Varnish Cache

Asynchronous email notifications

Việc bật cài đặt "Thông báo email không đồng bộ" sẽ chuyển các quy trình xử lý thông báo email xử lý đơn đặt hàng và thanh toán xuống nền. Để bật tính năng này, bạn vào Stores > Settings > Configuration > Sales > Sales Emails > General Settings > Asynchronous Sending.

Asynchronous order data processing

Đôi khi doanh số bán hàng tăng cao trên frontend xảy ra đồng thời với việc Magento đang thực hiện xử lý đơn hàng. Bạn có thể cấu hình Magento để phân biệt hai quá trình này trên cấp cơ sở dữ liệu để tránh xung đột giữa các thao tác đọc và ghi trong các bảng tương ứng. Bạn có thể lưu trữ và indexer dữ liệu đơn đặt hàng một cách không đồng bộ. Đơn đặt hàng được lưu trữ tạm thời và chuyển hàng loạt sang order grid mà không có bất kỳ xung đột nào. Bạn có thể kích hoạt tùy chọn này từ Stores > Settings > Configuration > Advanced > Developer > Grid Settings > Asynchronous indexing.

Grid Settings configuration được thiết lập cho

Lợi ích của việc lập lịch là tránh được việc xảy ra lock database khi lưu dữ liệu và giảm thời gian xử lý. Khi được bật, mọi cập nhật chỉ diễn ra khi cron đã lên lịch. Để có kết quả tốt nhất, Cron nên được định cấu hình để chạy mỗi phút một lần.


Cài đặt tối ưu hóa phía máy khách

Để cải thiện khả năng phản hồi trên frontend của Magento, ta có thể bật chế độ default hoặc developer mode để chỉnh một số setting nâng cao:

Stores -> Configuration -> Advanced -> Developer:

Grid Settings/Asynchronous indexing: Enable

CSS Settings/Minify CSS Files: Yes

JavaScript Settings/Minify JavaScript Files: Yes

JavaScript Settings/Enable JavaScript Bundling: Yes

Template Settings/Minify HTML: Yes


Khi bạn Enable JavaScript Bundling, bạn cho phép Magento hợp nhất tất cả các tài nguyên JS thành một. Việc gộp JS dẫn đến ít request hơn đến máy chủ, điều này giúp cải thiện hiệu suất trang. Nó cũng giúp trình duyệt lưu trữ các tài nguyên JS trong lần gọi đầu tiên và sử dụng lại chúng cho tất cả các lần duyệt tiếp theo. Tuy nhiên, cài đặt này không được khuyến nghị cho các cửa hàng cần thời gian tải trang đầu tiên là cực kỳ quan trọng, vì tất cả nội dung JS sẽ được tải trong lần gọi đầu tiên.

Cách merge hoặc minify CSS files:

Enable CSS merging or minification: Truy cập Admin > Stores > Setting > Configuration > Advanced > Developer > CSS Settings.

Cách minify JS files

Trên trang Admin, truy cập Stores > Settings > Configuration > Advanced > Developer > JavaScript Settings.

Cách merge và bundle JS files:

  • Truy cập: Stores > Settings > Configuration > Advanced > Developer > JavaScript Settings.
  • Sử dụng câu lệnh: php -f bin/magento config:set dev/js/enable_js_bundling 1

Trên đây là một số cách cấu hình để đem lại hiệu quả cao nhất về hiệu năng cho website Magento. Hi vọng các bạn đọc bài viết có thể tối ưu website của mình để đem lại trải nghiệm tốt nhất tới khách hàng. Cảm ơn các bạn đã theo dõi :D


Hãy đăng ký nhận tin để là người đầu tiên đọc bài viết mới nhất từ chúng tôi nhé

Posted 
 in 
Tech
 category

Bài viết khác từ

Tech

category

View All