現在、ページの読み込みが遅く、チェックアウトがすべての中で最も遅いです:
- 28リクエスト
- 18.5 KB転送(残りはディスクまたはメモリからキャッシュ)
- 終了:15.24秒(ローダーが消え、ユーザーは何かを実行できます)
- DOMContentLoaded:6.45s
- ロード:10.28s
チェックアウト/カートのロードは次で終了します:
- 29リクエスト
- 28.5 KB転送(残りはディスクまたはメモリからキャッシュ)
- 終了:6.35秒
- DOMContentLoaded:1.9秒
- 負荷:3.79秒
空のカートにはこれがあります:
- 22件のリクエスト
- 8.2 KB転送(残りはディスクまたはメモリからキャッシュ)
- 終了:2.78秒
- DOMContentLoaded:1.22s
- 負荷:2.65秒
キャッシュにredisを使用しており、すべてのキャッシュがアクティブです。JavaScriptは、cssとhtmlだけでなく、縮小、マージ、バンドルされています。サーバーは、8つのCPU、16GBのRAM、およびSSDを備えたかなり良い場所にあります。負荷などは、言及されるほど高くはありません。基本的にサーバーはスリープしています...
約80の商品と1つの店舗しかありません。Magentoのコンテンツ部分は使用しません。製品の詳細ページ、チェックアウト、顧客領域(およびバックエンド)だけがMagentoによって提供されます。Magentoの「前」にあるCMSシステムは、メディアを含めて2秒未満でページを提供します。
チェックアウトドキュメントのTTFBがすでに5.66秒であることがわかります。Magentoプロファイラーを有効にするとmagento->routers_match->CONTROLLER_ACTION:checkout_index_index->action_body
、ほとんどの場合それが原因であることがわかります。正確に何が原因かははっきりしていませんが。ここではプロファイラーはあまり役に立ちません(少なくとも私は)。
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
データベースプロファイラーも有効にしましたが、呼び出しがほぼ120であっても、クエリに1ms以上かかることはありません。しかし、その合計はたった120msになります。
xdebugプロファイルをローカルで生成しましたが、オートローディングでほとんどの時間が無駄になっていることがわかります。しかし、それが「正常」であるかどうかはわかりません。なぜfile_existsが頻繁に呼び出されるのかと思います。印象に残ったように、すべてがプリコンパイルおよびキャッシュされています。composer dump-autoload -o --apcu
diをコンパイルして使っています。そしてもちろん、apcは稼働しています。
まだ私は今ここで立ち往生しています。TTFBが既に5秒である理由を理解できていないようです。そして私がそれを解決したとしても、説明して修正するのにまだ10秒残っています。現在の私の主な推測は、これらがバックグラウンドブロッキングでのいくつかのxhrリクエストであるということです。つまり。見積もり配送方法は、13秒で約7秒の非常に長いギャップの後に始まり、約647ミリ秒かかることがわかります。それをトリガーするのになぜそんなに長く待つのですか?それが完了するまで、ローダーのアニメーションが表示され、ページが「ハング」しているように見えます。
どんな入力でも大歓迎です!最大2〜4秒のページ読み込みを期待しています。それが私が始めたものだからです。
編集:私は高いTTFBを修正しました。言ったように、私はキャッシュにRedisを使用しています。セッションキャッシングの場合も、2つの同時実行セッション間のロックアップにつながります。実際には、チェックアウト要求であり、5秒のタイムアウトにつながる見積もり配送要求です。セッションを通常のファイルモードに切り替えました。残念ながら、これは長いロード時間をまったく修正しませんでした!私の現在の最良の推測は、何かが呼び出される前に見積もり配送方法を待たせ、ページをブロックすることです。さらに、すべてのJSを変更せずに延期しようとしました。
Edit2:@ peter-ocallaghanが指摘するように、チェックアウトの読み込みが非常に遅い(+10秒)の問題は、実際にはdev-consoleを開いたときのChrome固有の問題にすぎません。チェックアウト/カートは影響を受けていないようです。