Các vấn đề về hiệu suất của Magento 2


7

Tôi đang thử nghiệm trang web của mình trên " https://developers.google.com/speed/pagespeed/insights/ " và chỉ có xếp hạng thấp (9-12 / 100).

Thiết lập của tôi:

Máy chủ ảo (CentOS) với RAM 16 GB, 6 lõi (Intel Xeon), Bộ lưu trữ SSD Magento 2.1.7 Apache 2.4.6
MariaDB 10.1

Tôi chắc chắn có RAM 14GB trong php.ini (memory_limit = 14000M).

Cũng được chỉnh sửa .htaccess.user.initrong thư mục gốc magento và thư mục pub (tất cả đều có RAM 14 GB).

Tệp cấu hình của tôi cho MariaDB (/etc/my.cnf) trông như thế này:

[máy khách] cổng = 3306 ổ cắm = /var/lib/mysql/mysql.sock

[mysqld] port = 3.306 ổ cắm = /var/lib/mysql/mysql.sock bỏ qua-ngoài-khóa key_buffer_size = 384M max_allowed_packet = 10M
table_open_cache = 4096 sort_buffer_size = 16 triệu
read_buffer_size = 4M read_rnd_buffer_size = 14M
myisam_sort_buffer_size = 64M thread_cache_size = 256

query_cache_type = 1 query_cache_limit = 4M

query_cache_size = 512M thread_concurrency = 8

log-bin = mysql-bin server-id = 1 innodb_buffer_pool_size = 3000M
innodb_additable_mem_pool_size = 80M

[mysqldump] nhanh max_allowed_packet = 512M

[mysql] không tự động thử lại

[myisamchk] key_buffer_size = 256M
sort_buffer_size = 256M read_buffer = 4M
write_buffer = 4M

[mysqlhotcopy] thời gian chờ tương tác

Tôi không biết tại sao trang web của mình vẫn chậm như vậy (phản hồi của máy chủ luôn là 1-2,5 giây theo trang google), mặc dù phần cứng của tôi đủ tốt (đủ RAM).

PS: Chế độ magento của tôi là nhà phát triển và tất cả các tùy chọn thu nhỏ và hợp nhất css js đều tắt.


Vui lòng gửi kết quả văn bản từ Centos của ulimit -a và iostat -x để phân tích.
Wilson Hauck

Nếu bạn sẽ đăng kết quả văn bản từ Centos của ulimit -a và iostat -x để phân tích, ai đó sẽ được chuẩn bị tốt hơn để cung cấp các đề xuất để xem xét. Bất kỳ cơ hội nào chúng ta có thể kết nối Skype?
Wilson Hauck

Khi bạn S READN SÀNG để thực hiện một số tiến trình đăng thông tin được yêu cầu vào ngày 12 tháng 7 năm 2018 và áp dụng các Đề xuất được đăng vào ngày 4 tháng 7 năm 2018. Cảm ơn
Wilson Hauck

Câu trả lời:


3

Lý do chậm

  1. Nó ở chế độ nhà phát triển với tính năng hợp nhất / bó / minify CSS / JS.
  2. Nó đang chạy trên phần cứng chậm.
  3. Một số phần mở rộng của bên thứ 3 phá vỡ hiệu suất.
  4. SSD không được sử dụng.
  5. Bộ nhớ cache toàn trang và bộ nhớ cache khác bị tắt.

PS: Đây là cách tìm hiểu chế độ M2 bạn đang ở:

cd magento_main_folder
php bin/magento deploy:mode:show

Khi bạn ở Chế độ nhà phát triển

Chế độ này là cần thiết khi bạn chỉ cần chuẩn bị trang web của bạn để sản xuất. Nhưng thời gian chờ đợi trong 30 giây có thể rất bực bội và khó chịu. Đây là 3 cách khắc phục đơn giản mà bạn có thể thử để tăng tốc magento2:

1. Vô hiệu hóa hợp nhất / gói / gói / minify CSS & JS Chỉ riêng thủ thuật đó đã giúp tôi giảm tốc độ từ 50 giây xuống còn 2 giây.

Go to Stores > Configuration > Advanced > Developer > Javascript Settings and CSS Settings 

2. Chuyển sang PHP7 Trong khi magento 2 hoạt động tốt trên php 5.6, việc chuyển sang php7 một mình có thể cải thiện hiệu suất 25%.

3. Tài nguyên máy chủ Magento 2 là một hệ thống phức tạp. Đặc biệt trong chế độ nhà phát triển, nó đòi hỏi phần cứng mạnh mẽ. Ảo hóa. Đảm bảo bạn phân bổ ít nhất 2G RAM cho M2.

Khi bạn ở chế độ sản xuất

1. Kiểm tra các tiện ích mở rộng bên thứ 3 của bạn Magento 2 có thể mở rộng rất nhiều với các plugin và mô-đun. Nhưng không giống như chức năng cốt lõi được mã hóa bởi Magento Core Team và các chuyên gia mở rộng bên thứ 3 được phát triển (trong hầu hết các trường hợp) bởi các lập trình viên trung bình. Với kỹ năng trung bình. Một mô-đun được viết kém có thể làm chậm magento trong thời gian lớn. Hãy liệt kê danh sách tất cả các plugin bạn đã cài đặt và vô hiệu hóa từng cái một. Xem nếu nó ảnh hưởng đến hiệu suất trong bất kỳ cách nào. Xác định nút cổ chai và liên hệ với nhà cung cấp để được hỗ trợ. Hãy tiếp tục và cài đặt Magento 2 mới với dữ liệu mẫu trên cùng một máy chủ. So sánh tốc độ của nó với trang web sản xuất của bạn. Nếu M2 mặc định chậm như cửa hàng magento tùy chỉnh của bạn thì hãy chuyển sang bước 2. Nếu nhanh hơn đáng kể thì bạn biết rằng bạn có tiện ích mở rộng làm chậm bạn.

2. Phần cứng máy chủ làm cho magento 2 chậm Bạn có thể chỉ cần tìm ra nếu bạn cài đặt M2 mới trên cùng một máy chủ và so sánh hiệu suất của nó với trang web sản xuất của bạn. Nếu bạn không thấy sự khác biệt thì rõ ràng gói lưu trữ của bạn không phù hợp với magento2. Đăng ký để lưu trữ tốt hơn và bảo đảm sức mạnh CPU / RAM nhiều hơn. Đừng có rẻ ở đây!

3. Đảm bảo bộ đệm toàn bộ trang được bật

 System > Cache Management

1

Tôi khuyên bạn nên kiểm tra (ngay cả dưới dạng tùy chọn dùng thử) như:

  1. NewRelic
  2. Blackfire.io
  3. xdebug

Các công cụ đó sẽ hiển thị cho bạn các dấu vết và thời gian chính xác của từng Dấu vết PHP riêng biệt có liên quan đến bất kỳ hoạt động / giao dịch nào (và cho phép bạn tìm ra các tắc nghẽn trong Dòng ứng dụng / Cơ sở dữ liệu)


0

Các đề xuất để xem xét cho phần my.cnf [mysqld] của bạn để cải thiện hiệu suất

Dẫn đầu với # spacebar sau đây để cho phép mặc định so với tổng thể cho

sort_buffer_size
read_buffer_size
read_rnd_buffer_size

điều chỉnh như sau:

query_cache_limit=1M  # from 512M for max size of 1 RESULT into QC
query_cache_min_res_unit=512  # from 4096 to store more RESULTS into QC
thread_cache_size=100  # from 256 for CAP see refman V8 to avoid OOM
innodb_lru_scan_depth=256  # from 1024 to conserve CPU time every second
innodb_flush_neighbors=0  # from ON to conserve CPU SSD has no rotational delay
innodb_purge_threads=4  # from 1 to expedite purge activity
innodb_flushing_avg_loops=10  # from 30 to reduce loop delays
max_write_lock_count=16  # to allow RD after nn write lcks vs up to ~4 Billion lcks

xin vui lòng gửi tiến bộ theo thời gian,

cho các đề xuất bổ sung kiểm tra hồ sơ của tôi, hồ sơ mạng cho thông tin liên lạc.


@shahirhajir Bạn đã có cơ hội để thử bất kỳ đề xuất nào ở trên chưa? Đang tiến bộ?
Wilson Hauck
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.