Câu trả lời:
Trước tiên, xác định xem kết xuất giao diện người dùng hoặc thực thi tập lệnh thực tế có chậm không. Kiểm tra với bảng điều khiển dành cho nhà phát triển trong trình duyệt của bạn để biết Time To First Byte . Đây là thời gian tập lệnh xử lý trên máy chủ
Trong ảnh chụp màn hình, bạn có thể thấy nó khá thấp (200ms), vì vậy trong trường hợp này, vấn đề sẽ không nằm ở máy chủ mà là ở mặt trước. Bây giờ nếu nó kết thúc, giả sử, một giây bạn có thể muốn tối ưu hóa.
Trước khi bạn tát vào một số tên lửa đẩy và bộ nhớ đệm bổ sung không phải là bản sửa lỗi chỉ là một bản vá hoặc hỗ trợ băng tần để che giấu vấn đề thực sự, hãy cố gắng tìm ra chính xác những gì chậm. Bạn có thể sử dụng một số công cụ cũng cho điều đó.
Truy vấn chậm
Magento có thể khá nặng trên cơ sở dữ liệu vì vậy bật Nhật ký truy vấn chậm có thể là một nơi tốt để bắt đầu. Kiểm tra bài này về cách bật nó. Nhật ký sẽ hiển thị cho bạn bất kỳ truy vấn nào mất nhiều thời gian hơn X giây.
Hồ sơ
Profiler giúp bạn hiểu rõ hơn về những gì đang diễn ra trong mã của bạn. Đối với Magento, tôi khuyên bạn nên bắt đầu với Aoe_Profiler . Chỉ cần cài đặt nó và bật nó lên. Ở mặt trước, nó sẽ cung cấp cho bạn một đầu ra như thế này:
Mở rộng kết quả và kiểm tra các khối lớn màu đỏ. Đó là những lần thực tế phải mất một phần nhất định của mã để xử lý. Xem ra bất kỳ mô-đun bên thứ 3 nào đang chiếm nhiều thời gian hoặc bộ nhớ.
Một công cụ tuyệt vời khác là Black fire . Vì Aoe_Profiler là một mô-đun trong Magento, nó không hiển thị các quy trình php cơ bản và có thể sập trên các cài đặt lớn với nhiều mô-đun. Lửa đen chạy trên máy chủ. Với hackathon, chúng tôi thiết lập một hộp Vagrant với lửa đen mà bạn có thể sử dụng. Chỉ cần đặt dự án của bạn trên đó và khởi động nó. Kiểm tra trang web Black fire để biết thêm thông tin về cách sử dụng nó.
Cuối cùng có lẽ là yêu thích của tôi: Di tích mới .
Thật không may, đó là một dịch vụ trả phí mặc dù họ cung cấp bản dùng thử miễn phí cho các tài khoản chuyên nghiệp. Sau khi cài đặt nó trên máy chủ của bạn và kết nối hồ sơ, hãy đợi một vài giờ để dữ liệu đến. Hãy chắc chắn rằng có một số lưu lượng truy cập trên cửa hàng tho.
Relic mới cũng có một bài đăng trên blog về cách gỡ lỗi Magento mà tôi có thể giới thiệu. Ngoài ra, hãy kiểm tra mô-đun ProxiBlue New Relic để biết thêm dữ liệu Magento trong Di tích mới.
Về cơ bản, điều này sẽ hiển thị cho bạn tất cả các tính năng được mô tả ở trên như truy vấn chậm, các quy trình trong PHP, v.v. và hiển thị nó trong các biểu đồ và bảng dễ dàng. Điều này sẽ cung cấp cho bạn cái nhìn sâu sắc về vấn đề trong cài đặt của bạn là gì.
Và từ đây Bây giờ bạn đã biết điều gì gây ra hiệu suất thấp, bạn có thể chuyển sang giải quyết nó. Kiểm tra các diễn đàn như thế này hoặc Google để biết phần hoặc mô-đun của Magento có chậm không. Rất nhiều vấn đề được biết đến và những người khác đã giải quyết nó trước đây. Hoặc, nếu bạn không thể tìm thấy giải pháp đăng câu hỏi của mình tại đây và đưa kết quả của bạn vào câu hỏi
Tối ưu hóa tốc độ trang web trong Magento là chủ đề rất rộng lớn. Đây là một liên kết có thể giúp bạn,
http://www.gxjansen.com/blog/101-ways-to-speed-up-your-magento-e-c Commerce-website /
Lấy một ý chính của nó,
Bạn cần tập trung vào hai khía cạnh, 1. Tối ưu hóa Frontend 2. Tối ưu hóa cuối cùng
Tối ưu hóa giao diện
Bạn có thể cài đặt Fooman Speedster - http: //www.magentoc Commerce.com/magento-connect/speedster-by-fooman.html và bật css, js merge
Kích hoạt bộ đệm ẩn Magento trong quản trị viên.
Cho phép nén Gzip
Tối ưu hóa cuối cùng
Bạn có thể cấu hình Varnish cho bộ nhớ đệm toàn trang
Cho phép biến chứng trong phụ trợ.
Cho phép cấu trúc phẳng cho danh mục (danh mục và sản phẩm)
Đây là một vài mẹo nhỏ mà tôi đã tìm thấy để giúp tăng tốc trang web của bạn mà bạn có thể muốn thử:
Trì hoãn tải hình ảnh bằng cách thêm nó vào /template/page/html/head.phtml
<script>
function init() {
var imgDefer = document.getElementsByTagName('img');
for (var i=0; i<imgDefer.length; i++) {
if(imgDefer[i].getAttribute('data-src')) {
imgDefer[i].setAttribute('src',imgDefer[i].getAttribute('data-src'));
} } }
window.onload = init;
</script>
Sau đó, /template/catalog/product/list.phtml
thay đổi liên kết hình ảnh của bạn như thế này:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AQQATUqB0EhKgAAAAxJREFUCNdj+P//PwAF/gL+3MxZ5wAAAABJRU5ErkJggg==" data-src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
Một cách khác là "Pre Gzip" tất cả các tệp javascripts và CSS của bạn sau đó thêm tệp này vào tệp của bạn .htaccess
.
<ifModule mod_headers.c>
##### serve pre gziped files #####
# Rules to correctly serve gzip compressed CSS and JS files.
# Requires both mod_rewrite and mod_headers to be enabled.
# Serve gzip compressed CSS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.css $1\.css\.gz [L,QSA]
# Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.js $1\.js\.gz [L,QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
</IfModule>
Magento là một khung thương mại điện tử tuyệt vời. Nó có vô số tính năng và bạn thực sự có thể xây dựng một nền tảng thương mại điện tử có thể mở rộng. Tôi đã sử dụng Magento trong dự án mới nhất của mình và gặp phải vấn đề tốc độ này. Sau khi thực hiện một số nghiên cứu và sửa đổi, tôi thực sự tăng tốc trang web của mình.
Tối ưu hóa máy chủ
Cài đặt Magento
Cài đặt Redis Cache, APC Opcode & Full Page Cache mở rộng - Cài đặt bộ tăng tốc PHP - Cài đặt bộ đệm Redis cho bộ đệm ẩn & bộ đệm phiên - Cài đặt Lesti FPC
Tối ưu hóa hình ảnh & YSlow - trung bình 56 phần trăm trọng lượng trang của một trang web được tạo thành từ hình ảnh. Tối ưu hóa hình ảnh sản phẩm của bạn có thể làm tăng đáng kể tốc độ trang của bạn vì điều này làm giảm thời gian tải xuống của chúng. - Quét trang web của bạn thông qua gtmetrix hoặc Pingdom và làm theo đề xuất tối ưu hóa của họ.
Sử dụng CDN
Bạn có thể đọc chi tiết về điều này trên trang web của tôi: http://www.ranjeetvimal.com/tips-to-speed-up-magento-1-9-performance/
Nếu bạn đang ở trong một môi trường lưu trữ được chia sẻ, rất khó để đạt được tốc độ tốt vì người ta không có toàn quyền kiểm soát máy chủ và tài nguyên được sử dụng bởi một số trang web khác, nhưng nếu bạn đang ở trên máy chủ chuyên dụng và có quyền truy cập quản trị viên đầy đủ, hãy thử lưu trữ bộ nhớ cache .
những việc khác bạn có thể làm -
1.Combine JS và các tệp CSS
Magento admin -> System Configuration -> Developer -> Under “Javascript Settings”, change “Merge Javascript Files” to YES.
Magento admin -> System Configuration -> Developer -> Under “CSS Settings”, change “Merge CSS Files” to YES
2. Nén đầu ra có thể, Tiêu đề hết hạn và Vô hiệu hóa ETags trong tệp .htaccess xem /programming//a/14745165/3114253
Sử dụng CDN nếu có thể
Sử dụng tính năng Biên dịch của Magento. Nó được báo cáo để tăng hiệu suất 25% -50%: Hệ thống> Cấu hình. > Công cụ> Biên dịch.
Hiển thị ít hơn không. của sản phẩm trong trang danh sách sản phẩm.
Cho phép danh mục phẳng.
Từ giao diện quản trị viên Magento, đi đến Hệ thống> Cấu hình> Danh mục. Trong Frontend, thay đổi Sử dụng Danh mục danh mục phẳng thành CÓ. Nếu muốn, trong Frontend, thay đổi Sử dụng Sản phẩm Danh mục phẳng thành CÓ. Xóa bộ nhớ cache.
Nếu bạn cố gắng tăng tốc frontend của mình:
Cuối tuần:
Để tăng tốc độ trang web magento, trước tiên bạn có thể muốn quét nó bằng www.gtmetrix.com hoặc Thông tin chi tiết về tốc độ trang của Google:
sau đó bạn có thể quyết định những gì có thể được thực hiện. Trong hầu hết các trường hợp, nó đi xuống: