Thời gian tải trang không nhất quán


11

Tôi đang rất gần hoàn thành một dự án magento lớn và đã tập trung vào việc cải thiện tốc độ của magento. Như một lời nói đầu, tôi là một nhà phát triển front-end thực hiện dự án lớn này trong nhà, và tìm ra mọi thứ khi tôi đi.

Tôi có magento phát triển trên máy chủ ảo dành riêng cho Media Temple với 2GB ram. Gần đây tôi đã có tới 600 sản phẩm và khoảng 25 thuộc tính khác nhau trên mỗi sản phẩm (tổng cộng khoảng 300 thuộc tính duy nhất) và có thể 50 danh mục. Tôi đã xóa tất cả những điều đó trong nỗ lực khắc phục sự cố tốc độ tải trong khoảng 15 giây.

Tuy nhiên thời gian tải của tôi vẫn còn dài và không nhất quán. Tôi tải lại trang chủ của mình với Firebird báo cáo 500ms cho phản hồi và tôi ngay lập tức tải lại một lần nữa và nó báo cáo trong hơn 9 giây. Đây có phải là vấn đề máy chủ hay cái gì đó với chính Magento không? Làm thế nào để tôi đi kiểm tra một cái gì đó như thế?

Câu trả lời:


11

Trước tiên, bạn cần quyết định những gì bạn đang kiểm tra, cho dù đó chỉ là thời gian kết xuất PHP - hay thời gian tải trang trong thế giới thực.

Trong cả hai trường hợp, việc sử dụng fireorms sẽ không đáng tin cậy - vì chính kết nối internet của bạn có thể là nút cổ chai hoặc lý do cho sự lộn xộn.

Thời gian kết xuất PHP

Nếu bạn hoàn toàn muốn xem liệu thời gian kết xuất của PHP có được cải thiện / thay đổi hay không - thì cách chính xác nhất là sử dụng đầu ra từ trình lược tả Magento.

Trong index.php, không chú ý

Varien_Profiler::enable();

Sau đó trong

Quản trị> Hệ thống> Cấu hình> Nhà phát triển

Hãy chắc chắn rằng profiler được kích hoạt.

Bạn sẽ kết thúc với một đầu ra dạng bảng ở cuối mỗi trang (mặt trước và mặt sau) phá vỡ thời gian tải trang, được đo từ điểm Mage::run() bắt đầu. Dòng đầu tiên sẽ chỉ ra tổng thời gian kết xuất PHP (trong Mage).

Đây sẽ là con số chính xác nhất của bạn về mặt thiết lập nếu các thay đổi PHP của bạn đang tạo ra sự khác biệt về thời gian tải trang, chưa kể, nó sẽ xác định bất kỳ tắc nghẽn hiệu suất nào.

Thời gian kết xuất máy chủ web PHP

Loại thử nghiệm tiếp theo là yếu tố chi phí hoạt động của chính máy chủ web (nhưng không phải là kết nối hàng dặm). Vì vậy, để thử nghiệm này chính xác và không bị ảnh hưởng bởi chính 'internet' - bạn nên chạy thử nghiệm trên chính máy chủ web.

Chúng tôi sử dụng tiện ích của riêng mình mage-perftest(có thể tìm thêm thông tin ở đây ) - có thể kiểm tra thời gian kết xuất PHP thuần túy, thời gian tải trang trong thế giới thực và thậm chí kiểm tra đồng thời.

Để chỉ kiểm tra thời gian kết xuất máy chủ web PHP, bạn sẽ sử dụng (thay thế URL tương ứng)

./mage-perftest -u me-s1.sonassihosting.com -b

Thử nghiệm này sẽ phân tích thời gian tải trang (chỉ dành cho phần tử PHP của trang, bỏ qua mọi JS / CSS / Hình ảnh). Đầu ra trông giống như thế này,

Test Summary
============
Total files:              1
Total downloaded:         4K
Avg. page weight:         4.00K

Total time:               0.035s
Min response:             0.035s
Max response:             0.035s
Avg. page response:       0.03s

Concurrency/Repeats:      1
Transactions/s            28.57
Test URL:                 me-s1.sonassihosting.com
Success rate:             1/1 (100.00%)

Thời gian thực của máy chủ web thế giới

Loại thử nghiệm cuối cùng là thời gian cần để tải xuống toàn bộ trang (PHP + nội dung tĩnh). Một lần nữa, bạn có thể sử dụng mage-perftestđể làm điều này, ví dụ.

./mage-perftest -u me-s1.sonassihosting.com

Tránh bất kỳ dịch vụ kiểm tra trực tuyến như bệnh dịch hạch

Có một số công cụ kiểm tra tốc độ trực tuyến như GTMetrix, Pingdom, v.v ... Những công cụ này sẽ không cung cấp cho bạn bất kỳ loại kết quả chính xác nào cho cấu hình chi tiết.

Họ có vị trí của mình trong việc kiểm tra kết nối mạng bên ngoài, nhưng hoàn toàn vô dụng như một phương tiện để kiểm tra hiệu năng PHP thực tế. Bám sát thử nghiệm trên máy chủ / cục bộ cho việc này.

Ghi chú khác

Chúng tôi đã viết một bài viết về thử nghiệm từ xa và lý do tại sao bạn nên tránh nó, http://www.sonassi.com/ledgeledge-base/magento-kb/why-siege-isnt-an-accur-test-tool-for-magento- hiệu suất/

Chạy Magento trong VPS là một ý tưởng tồi. Những người khác có thể không đồng ý - nhưng đó không phải là môi trường phù hợp cho cửa hàng Magento vì một số lý do - và chúng tôi đã trả lời RẤT NHIỀU câu hỏi dưới đây, đây là một vài câu hỏi


Perftest là tuyệt vời - nó có trên Github để tôi có thể fork nó không?
philwinkle

Tôi gặp khó khăn khi chạy chậm, nhưng trình hồ sơ cung cấp một số thông tin thú vị: mage::dispatch::routers_matchmage::dispatch::controller::action::predispatchdường như là một nút cổ chai, mặc dù tôi không chắc giải pháp ở đó là gì ... tìm kiếm không đưa ra nhiều.
andyjv

Càng nhiều trang tôi mở cùng một lúc, magento càng dành nhiều thời gian hơn mage::dispatch::routers_match, chiếm 22 giây khi tải trang 28 giây. Trên cùng một tải, cũng có mage::dispatch::controller::action::predispatchlúc 22, CORE::create_object_of::Mage_Core_Model_Sessionlúc 21 và Mage_Core_Model_Session_Abstract_Varien::start/start21. Tôi chắc chắn có một số điều cha mẹ / con cái đang diễn ra, nhưng với routers_matchthời gian dài nhất, tôi cho rằng đó là cha mẹ của các chức năng 20 giây khác
andyjv

Các đầu ra profiler được bao gồm phân cấp. I E. Nó cho thấy một tổng số bao gồm cho tất cả mọi thứ chạy trong chức năng đó. Vì vậy, Magesẽ mất nhiều thời gian nhất vì nó bao gồm tất cả mọi thứ, Routers_Matchvề cơ bản là chức năng tiếp theo mà nó gọi, rằng mọi thứ khác được sinh ra từ đó. Nó không phải là nút cổ chai, nhưng một cái gì đó nó đang gọi (nhìn xa hơn xuống bàn) là. Đừng mở nhiều hơn 1 cửa sổ nếu bạn đang định hình - điều đó sẽ không đạt được bất cứ điều gì.
Ben Lessani - Sonassi

Dưới đây Routers_Matchlà: DISPATCH EVENT:controller_action_predispatchlúc 21/0710 và OBSERVER: loglúc 21.0565
andyjv

3

Đây rất có thể là sự cố máy chủ và không phải là sự cố Magento. Tùy thuộc vào loại máy chủ bạn sử dụng, bạn có thể nhận được thời gian tải dưới một giây. Bạn thậm chí có thể chạy thử nghiệm tinh vi hơn ở đây: http://www.magespeedtest.com/ . Bạn cũng có thể xem lại tốc độ từ các nhà cung cấp máy chủ khác ở đó.

Tôi cũng khuyên bạn nên sử dụng báo cáo thác nước từ http://www.webpagetest.org/ và xem chính xác "sự chậm chạp" của bạn có thể đến từ đâu. Nó sẽ chia nó thành nhiều phần (như mất bao lâu để tải xuống từng tệp css, js và hình ảnh) có thể giúp bạn cải thiện tốc độ.

Điều đó đang được nói, ngay cả khi bạn tối ưu hóa mã Magento, css, js, hình ảnh và nội dung một cách đầy đủ nhất, máy chủ sẽ luôn là vấn đề lớn nhất. Tôi sẽ khuyên bạn nên sử dụng Nhà cung cấp dịch vụ lưu trữ Magento, vì họ có máy chủ của họ được điều chỉnh tốt hơn để giúp Magento. Cá nhân, tôi sử dụng Nexcess, nhưng những người khác tôi đã nghe thấy những điều hay về Sonassi Hosting và Peer1.

Có một vài bài viết về cách cải thiện tốc độ, tôi khuyên bạn nên đọc các trang trắng trên trang web Magento.

Mặc dù hướng đến Enterprise nhiều hơn, bạn vẫn có thể hưởng lợi từ rất nhiều lời khuyên. Ngoài ra, hãy chắc chắn rằng bạn luôn cập nhật Magento! Bạn không nên rơi nhiều hơn hai phiên bản từ bản phát hành hiện tại.


1
Thật tốt khi có bạn ở đây kab8609! :-)
Fabian Blechschmidt
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.