trang tải chậm


8

Tôi hiện đang phải đối mặt với tải trang chậm với thanh toán là chậm nhất trong tất cả với :

  • 28 yêu cầu
  • Đã chuyển 18,5 KB (phần còn lại được lưu trong bộ nhớ cache từ đĩa hoặc bộ nhớ)
  • Kết thúc: 15,24 giây (trình tải biến mất và người dùng có thể làm gì đó)
  • DOMContentLoaded: 6.45s
  • Tải: 10.28s

Đang tải thanh toán / giỏ hàng kết thúc bằng:

  • 29 yêu cầu
  • Đã chuyển 28,5 KB (phần còn lại được lưu trong bộ nhớ cache từ đĩa hoặc bộ nhớ)
  • Kết thúc: 6,35s
  • DOMContentLoaded: 1.9s
  • Tải: 3,79

Trong khi một giỏ hàng trống có cái này:

  • 22 yêu cầu
  • Đã chuyển 8.2 KB (phần còn lại được lưu trong bộ nhớ cache từ đĩa hoặc bộ nhớ)
  • Kết thúc: 2,78
  • DOMContentLoaded: 1.22s
  • Tải: 2,65s

Tôi đang sử dụng redis cho bộ nhớ đệm và tất cả các bộ nhớ cache đang hoạt động. Javascript được thu nhỏ, hợp nhất và đóng gói cũng như css và html. Máy chủ có vị trí khá tốt với 8 CPU, RAM 16 GB và ổ SSD. Tải vv không bao giờ đủ cao để thậm chí được đề cập. Về cơ bản, máy chủ đang ngủ ...

Chỉ có ~ 80 sản phẩm và một cửa hàng. Chúng tôi không sử dụng phần nội dung của Magento. Chỉ các trang chi tiết sản phẩm, thanh toán và khu vực khách hàng (cũng như phụ trợ) được Magento phục vụ. Có một hệ thống CMS "ở phía trước" của Magento, phục vụ các trang với tổng số ít hơn một giây bao gồm cả phương tiện truyền thông.

Tôi thấy rằng TTFB cho tài liệu thanh toán đã là 5,66 giây. Với trình tạo hồ sơ Magento được bật, tôi có thể tìm thấy magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_bodynguyên nhân phần lớn thời gian đó. Mặc dù nó không rõ ràng chính xác những gì gây ra nó. Ở đây trình hồ sơ không thể giúp nhiều (ít nhất là tôi).

magento->routers_match                                                                                                                                                                                                                                                                                            5.347600 5.347600 1  42,063,304 10,485,760
magento->routers_match->CONTROLLER_ACTION:checkout_index_index                                                                                                                                                                                                                                                    5.143997 5.143997 1  15,976,176 10,485,760
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body                                                                                                                                                                                                                                       5.143980 5.143980 1  15,975,304 10,485,760
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->EVENT:checkout_allow_guest                                                                                                                                                                                                           0.000609 0.000609 1  82.464     0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->EVENT:checkout_allow_guest->OBSERVER:checkout_allow_guest                                                                                                                                                                            0.000592 0.000592 1  80.944     0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->LAYOUT                                                                                                                                                                                                                               0.106220 0.035407 3  13,085,544 10,485,760
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->LAYOUT->layout_load                                                                                                                                                                                                                  0.000666 0.000666 1  136.56     0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->LAYOUT->layout_generate_xml                                                                                                                                                                                                          0.005658 0.005658 1  174.632    0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->LAYOUT->layout_generate_blocks                                                                                                                                                                                                       0.099472 0.099472 1  12,755,648 10,485,760
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->LAYOUT->layout_generate_blocks->Magento\Framework\View\Layout::Magento\Framework\View\Layout::generateElements                                                                                                                       0.099462 0.099462 1  12,902,296 10,485,760
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->LAYOUT->layout_generate_blocks->Magento\Framework\View\Layout::Magento\Framework\View\Layout::generateElements->generate_elements                                                                                                    0.091426 0.091426 1  11,885,184 10,485,760
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->LAYOUT->layout_generate_blocks->Magento\Framework\View\Layout::Magento\Framework\View\Layout::generateElements->generate_elements->EVENT:core_layout_block_create_after                                                              0.000169 0.000003 51 -16.128    0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->LAYOUT->layout_generate_blocks->Magento\Framework\View\Layout::Magento\Framework\View\Layout::generateElements->generate_elements->Magento\Framework\View\Layout::Magento\Framework\View\Layout::generateElements                    0.000609 0.000609 1  52.76      0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->LAYOUT->layout_generate_blocks->Magento\Framework\View\Layout::Magento\Framework\View\Layout::generateElements->generate_elements->Magento\Framework\View\Layout::Magento\Framework\View\Layout::generateElements->generate_elements 0.000455 0.000455 1  26.952     0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->LAYOUT->EVENT:layout_generate_blocks_after                                                                                                                                                                                           0.000297 0.000297 1  16.32      0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->LAYOUT->EVENT:layout_generate_blocks_after->OBSERVER:persistent                                                                                                                                                                      0.000279 0.000279 1  14.776     0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->postdispatch                                                                                                                                                                                                                         0.002972 0.002972 1  116.752    0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->postdispatch->EVENT:controller_action_postdispatch                                                                                                                                                                                   0.002913 0.002913 1  110.192    0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->postdispatch->EVENT:controller_action_postdispatch->OBSERVER:customer_visitor                                                                                                                                                        0.002900 0.002900 1  108.656    0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->postdispatch->EVENT:controller_action_postdispatch->OBSERVER:customer_visitor->EVENT:clean_cache_by_tags                                                                                                                             0.001175 0.001175 1  77.784     0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->postdispatch->EVENT:controller_action_postdispatch->OBSERVER:customer_visitor->EVENT:clean_cache_by_tags->OBSERVER:invalidate_varnish                                                                                                0.000516 0.000516 1  35.056     0         
magento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body->postdispatch->EVENT:controller_action_postdispatch->OBSERVER:customer_visitor->EVENT:clean_cache_by_tags->OBSERVER:invalidate_builtin                                                                                                0.000629 0.000629 1  41.08      0

Tôi cũng kích hoạt trình lược tả cơ sở dữ liệu nhưng không có truy vấn nào mất hơn 1ms mặc dù có gần 120 cuộc gọi. Nhưng điều đó thêm vào chỉ 120ms sau đó.

Tôi đã tạo một hồ sơ xdebug cục bộ và có thể thấy rằng hầu hết thời gian bị lãng phí trong việc tự động tải. Nhưng tôi không chắc đó là "bình thường". Tôi chỉ tự hỏi tại sao file_exists được gọi thường xuyên như vậy. Như tôi đã có ấn tượng, tất cả mọi thứ được biên dịch trước và lưu trữ. Tôi sử dụng composer dump-autoload -o --apcusau khi biên dịch di. Và tất nhiên apc đang hoạt động.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Tuy nhiên, bây giờ tôi bị mắc kẹt ở đây. Tôi dường như không thể hiểu tại sao TTFB đã 5 giây rồi. Và ngay cả khi tôi đã giải quyết rằng vẫn còn 10 giây nữa để giải thích và khắc phục. Dự đoán chính của tôi hiện tại là đây là một số yêu cầu xhr trong chặn nền. I E. Tôi thấy các phương pháp ước tính-vận chuyển chỉ bắt đầu sau một khoảng cách cực kỳ dài khoảng 7 giây ở 13 giây và mất khoảng 647ms. Tại sao nó chờ đợi quá lâu để kích hoạt điều đó? Cho đến khi hoàn thành hoạt hình trình tải được hiển thị làm cho trang dường như "treo".

ước tính-vận chuyển-phương pháp "trì hoãn"

tải trang thanh toán

Bất kỳ đầu vào đều được chào đón! Tôi hy vọng tải trang tối đa 2 - 4 giây. như đó là những gì tôi bắt đầu với.

Chỉnh sửa: Tôi đã sửa lỗi TTFB cao. Như đã nói tôi đang sử dụng Redis để lưu trữ. Cũng cho bộ nhớ đệm phiên nhưng nó dẫn đến khóa giữa hai phiên đồng thời. Trên thực tế là yêu cầu thanh toán và yêu cầu vận chuyển ước tính dẫn đến thời gian chờ 5 giây. Tôi chuyển phiên trở lại chế độ tập tin bình thường. Thật không may, điều này đã không khắc phục thời gian tải dài! Dự đoán tốt nhất hiện tại của tôi là một cái gì đó làm cho các phương pháp ước tính-vận chuyển chờ đợi trước khi được gọi dẫn đến việc chặn trang. Ngoài ra, tôi đã cố gắng trì hoãn tất cả các JS mà không thay đổi gì.

Edit2: Vì @ peter-ocallaghan lưu ý vấn đề với việc thanh toán tải quá chậm (+10 giây) thực sự chỉ là sự cố cụ thể của chrome khi mở bảng điều khiển dev. Thanh toán / giỏ hàng dường như không bị ảnh hưởng.


tôi không biết nhiều hơn về nó. tôi đã phải đối mặt với vấn đề này khi tôi gọi api hoặc plugin của bên thứ ba. Điều này đã xảy ra khi tôi không nhận được bất kỳ phản hồi nào từ nó.
55840

Tôi hiện đang cố gắng loại bỏ tất cả những gì có thể can thiệp. Tôi cũng đang gọi api của bên thứ 3 vì vậy tôi đã tắt nó để kiểm tra. Không thay đổi. Cho đến nay tôi không thể loại trừ những gì làm cho tải trang quá chậm.
Steros

Tôi sẽ đi ra ngoài trên một chi và đoán rằng nếu bạn đóng trình gỡ lỗi Chrome, thời gian sẽ "kỳ diệu" rơi vào (hoặc ít nhất là gần hơn đáng kể) thời gian tải 2-4 giây. Trong quá trình điều tra các trang web M2 trực tiếp, tôi không thể hiểu làm thế nào các thương nhân chấp nhận 15 lần tải thứ hai. Tôi cuối cùng nhận ra rằng bằng cách sử dụng trình gỡ lỗi chrome làm cơ chế thời gian, tôi đã vô tình làm chậm yêu cầu theo một độ lớn.
Peter O'Callaghan

Tôi chỉ đang thử nghiệm điều này. Hầu hết các trang chỉ mất ít nhất ~ 4 giây và giỏ hàng tối đa 7 giây. Nhưng ít nhất, thanh toán không tải trong 15 giây trong tất cả các trình duyệt khác, giống như 5 giây. Có vẻ đây là một cái gì đó với chrome.
Steros

Tôi đã cố gắng giảm bớt thời gian bằng cách sử dụng memcached cho bộ đệm phiên. Như đã đề cập, tôi đã sử dụng redis nhưng điều đó dẫn đến việc khóa nên tôi đã quay lại tập tin nhưng dường như khóa cũng vậy. Vì vậy, tôi đã chuyển sang memcached và bây giờ giỏ hàng tải trong ~ 2 giây ở lần tải thứ hai và 5-7 giây ở lần đầu tiên. Dường như ước tính-phương thức vận chuyển và tổng số thông tin là công cụ chặn ở đây. Nếu tôi chỉ tải lại giỏ hàng mà không có bất kỳ thay đổi nào, đó là 2 giây. Nếu tôi thêm một sản phẩm hoặc chỉ cần thay đổi số lượng và làm mới giỏ hàng -> 5-7 giây.
Steros

Câu trả lời:


3

Có vẻ như vấn đề chính của tôi là phiên đồng thời xảy ra vì bất kỳ lý do gì. Tôi đã cố gắng sử dụng bộ nhớ đệm phiên với Redis như đề xuất trong tài liệu.

'session' =>
array (
  'save' => 'redis',
  'redis' =>
  array (
    'host' => '127.0.0.1',
    'port' => '6379',
    'password' => '',
    'timeout' => '2.5',
    'persistent_identifier' => '',
    'database' => '2',
    'compression_threshold' => '2048',
    'compression_library' => 'gzip',
    'log_level' => '1',
    'max_concurrency' => '6',
    'break_after_frontend' => '5',
    'break_after_adminhtml' => '30',
    'first_lifetime' => '600',
    'bot_first_lifetime' => '60',
    'bot_lifetime' => '7200',
    'disable_locking' => '0',
    'min_lifetime' => '60',
    'max_lifetime' => '2592000'
  )
),

Nhưng khi tôi gặp vấn đề về khóa phiên, tôi nghĩ điều này sẽ được tính đến:

break_after_frontend

Số giây chờ đợi trước khi thử phá khóa cho phiên frontend (nghĩa là mặt tiền cửa hàng).

Có nghĩa là luôn luôn có độ trễ tối đa. 5 giây. Khi tôi chuyển sang phiên memcached, nó đã khá hơn một chút vì thời gian chờ thấp hơn. Nó mặc định cho các cài đặt này:

memcached.sess_lock_wait_min => 1000
memcached.sess_lock_wait_max => 2000
memcached.sess_lock_retries => 5

Đây là những mặc định từ một số phiên bản cũ hơn của php-memcached. Phiên bản mới nhất đề xuất các mặc định này:

memcached.sess_lock_wait_min => 150
memcached.sess_lock_wait_max => 150
memcached.sess_lock_retries => 200

Sau khi đọc hai: https://github.com/php-memcached-dev/php-memcached/pull/350 https://github.com/php-memcached-dev/php-memcached/issues/269

Tôi đã thử với:

ini_set('memcached.sess_lock_wait_min', 150);
ini_set('memcached.sess_lock_wait_max', 150);
ini_set('memcached.sess_lock_retries', ini_get('max_execution_time') * 1000 / 150);

trong tệp index.php của Magento và điều này một lần nữa đẩy nhanh quá trình. Bây giờ tôi nhận được một tải thanh toán trong khoảng 4 giây. Giỏ hàng chậm hơn một chút với ~ 5 giây vì tải thông tin tổng. (trước hết hãy thử không có bộ nhớ đệm trình duyệt)

Tôi cho rằng việc khắc phục sự cố khóa phiên sẽ một lần nữa tăng tốc thời gian tải vì nhìn vào các cấu hình cho thấy vẫn còn phải chờ session_start()từ 300 đến 800 ms cho một số cuộc gọi.


Tôi cũng bị mắc kẹt trên Sateros này. Tôi đang sử dụng véc ni với cách giải quyết cho https và Redis. Trang web chậm. Đã xem qua newrelic và không thể tìm thấy câu trả lời kết luận. Có phải đó là vấn đề Redis?
Adarsh ​​Khatri

1

Tối ưu hóa có thể:

Hồ sơ


0

Bằng cách sử dụng Solar hoặc Memcache hoặc Varnish, bạn có thể tăng tốc trang web magento của mình.


Tôi đang sử dụng Redis và memcached. Tôi không thể sử dụng Varnish vì nó không hỗ trợ https và tôi không muốn sử dụng một trong các cách giải quyết.
Steros

@steros Vui lòng xem hồ sơ của tôi, Hồ sơ mạng để biết thông tin liên hệ và liên lạc với tôi qua Skype để được hỗ trợ.
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.