页面加载缓慢


8

我目前面临的页面加载速度很慢,而结帐是速度最快的

  • 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特定问题。结帐/购物车似乎没有受到影响。


我对此一无所知。我在致电第三方api或插件时遇到了这个问题。当我没有收到任何回应时,就会发生这种情况。
55840 '18

我目前正在尝试消除所有可能的干扰。我也正在调用第三方API,因此我将其关闭以进行测试。没变。到目前为止,我无法排除导致页面加载如此缓慢的原因。
steros

我会费力地猜测一下,如果您关闭Chrome调试器,则时间将“神奇地”减少到(或至少显着接近)2-4秒的加载时间。在对实时M2网站进行调查期间,我无法理解商家如何接受15秒的加载时间。我最终意识到,通过使用chrome调试器作为计时机制,我无意中将请求的速度降低了一个数量级。
彼得·奥卡拉汉

我只是在测试。大多数页面仍需要至少约4秒,并且购物车最多需要7秒。但是至少在所有其他浏览器中,结帐不会在15秒内加载,更像是5秒。似乎这与镀铬有关。
steros

我设法通过使用memcached进行会话缓存来减少时间。如前所述,我使用了redis,但是这导致了锁定,所以我切换回了文件,但似乎也锁定了。所以我切换到了memcached,现在购物车在第二次加载中的加载时间约为2秒,而第一次加载时的加载时间为5-7秒。估计运输方法和总计信息似乎是这里的障碍。如果我不做任何改动就重新装车,那是2秒钟。如果我添加产品或只是更改金额并刷新购物车-> 5-7秒。
steros

Answers:


3

看来我的主要问题是无论出于何种原因都在进行会话并发。我尝试按照文档中的建议对Redis使用会话缓存。

'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'
  )
),

但是,由于我遇到了会话锁定问题,我认为这是考虑在内的:

break_after_frontend

尝试打破前端(即店面)会话锁之前要等待的秒数。

表示始终存在最大延迟。5秒。当我切换到memcached会话时,它的性能会有所提高,因为等待时间较短。它默认为以下设置:

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

这些是一些较旧的php-memcached版本的默认值。最新版本建议这些默认值:

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

读完这两篇之后:https : //github.com/php-memcached-dev/php-memcached/pull/350 https://github.com/php-memcached-dev/php-memcached/issues/269

我尝试了:

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);

在Magento的index.php中,这再次加快了过程。现在,我大约在4秒钟内完成了结帐工作。由于加载了总计信息,购物车的速度慢了约5秒。(首先尝试不使用浏览器缓存)

我想解决会话锁定问题将再次加快加载时间,因为查看配置文件可以发现,session_start()对于多个呼叫,仍需要等待300到800毫秒。


我也被困在这个Sateros上。我正在使用带有https和Redis解决方法的清漆。网站速度慢。一直在浏览newrelic,找不到最终的答案。是Redis问题吗?
Adarsh Khatri

1

可能的优化:

探查器


0

通过使用Solar或Memcache或Varnish,您可以加快magento网站的速度。


我正在使用Redis和memcached。我不能使用Varnish,因为它不支持https,并且我不想使用其中一种解决方法。
steros

@steros请查看我的个人资料,网络个人资料以获取联系信息,并通过Skype与我联系以获取帮助。
威尔逊·哈克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.