我目前面临的页面加载速度很慢,而结帐是速度最快的:
- 28个要求
- 传输了18.5 KB(其余磁盘或内存缓存)
- 完成:15.24秒(加载程序消失,用户可以执行某些操作)
- DOMContentLoaded:6.45秒
- 负载:10.28秒
加载结帐/购物车的结局是:
- 29个请求
- 传输了28.5 KB(其余磁盘或内存缓存)
- 完成:6.35秒
- DOMContentLoaded:1.9秒
- 负载:3.79秒
而空的购物车有:
- 22个请求
- 传输8.2 KB(其余磁盘或内存缓存)
- 完成:2.78秒
- DOMContentLoaded:1.22s
- 负载:2.65s
我正在使用redis进行缓存,并且所有缓存都处于活动状态。Javascript以及CSS和HTML都被缩小,合并和捆绑。该服务器的位置非常好,带有8个CPU,16GB RAM和一个SSD。负载等永远不会高到足以被提及。基本上服务器正在休眠...
大约有80种产品和一家商店。我们不使用Magento的内容部分。Magento只提供产品详细信息页面,结帐和客户区域(以及后端)。Magento的“前面”有一个CMS系统,该页面所提供的页面不到第二秒,包括介质。
我看到结帐文档的TTFB已经是5.66s。启用了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个调用,查询也不会花费超过1毫秒的时间。但这加起来只有120ms。
我在本地生成了一个xdebug配置文件,可以看到大部分时间都浪费在自动加载上。但是我不确定这是否“正常”。我只是想知道为什么file_exists经常被调用。就像我印象中的那样,所有内容都是预先编译和缓存的。我composer dump-autoload -o --apcu
在编译di后使用。当然,apc已启动并正在运行。
但是我现在被困在这里。我似乎无法弄清为什么TTFB已经是5秒了。即使我解决了,仍然还有10秒钟的时间来解释和解决。我目前的主要猜测是这些是后台阻止中的一些xhr请求。就是 我看到估算运输方法仅在13秒的大约7秒的长时间间隔之后才开始,大约需要647ms。为什么要等待这么长时间才能触发呢?在此之前,将显示加载程序动画,使页面似乎“挂起”。
任何输入都非常欢迎!我希望页面加载时间最多2-4秒。因为这就是我开始的目的。
编辑:我修复了高TTFB。如前所述,我正在使用Redis进行缓存。也用于会话缓存,但它导致两个并发会话之间的锁定。实际上是结帐请求和估计装运请求,导致5秒超时。我将会话切换回普通文件模式。不幸的是,这根本无法解决较长的加载时间!我目前的最佳猜测是,某些东西使估算运输方法在被调用之前等待,导致页面被阻塞。另外,我尝试推迟所有JS并保持不变。
Edit2:正如@ peter-ocallaghan指出的那样,结帐加载的问题如此缓慢(+10秒)实际上只是打开dev-console的Chrome特定问题。结帐/购物车似乎没有受到影响。