Performance 如何减少服务器响应时间?

Performance 如何减少服务器响应时间?,performance,apache,magento,Performance,Apache,Magento,当我在GTmetrix.com上查看我的网站时,我得到了以下时间线截图 如何缩短接收时间,使站点加载更快 发生这种情况是因为未优化的php代码吗?问题和建议: 问:62毫秒的接收时间可以。减少1.5秒的等待时间怎么样 S:等待时间是服务器撰写页面所需的时间 - 问:您是否启用了平板电脑 S:启用平面表并确保所有自定义集合查询仍能正常工作(集合查询将自动从基于EAV资源的查询转换为基于平面资源的查询) - 问:您是否启用了缓存(使用缓存服务器而不是文件缓存) S:在local.xml中

当我在GTmetrix.com上查看我的网站时,我得到了以下时间线截图

如何缩短接收时间,使站点加载更快

发生这种情况是因为未优化的php代码吗?

问题和建议:

  • 问:62毫秒的接收时间可以。减少1.5秒的等待时间怎么样
  • S:等待时间是服务器撰写页面所需的时间
-


  • 问:您是否启用了平板电脑
  • S:启用平面表并确保所有自定义集合查询仍能正常工作(集合查询将自动从基于EAV资源的查询转换为基于平面资源的查询)
-

  • 问:您是否启用了缓存(使用缓存服务器而不是文件缓存)
  • S:在
    local.xml
    中将Memcached、Redis或APC配置为缓存服务器
-

  • 问:你的Magento更像是一个带有主题的开箱即用的安装,还是主题和逻辑都是高度定制的
  • S:如果是OOTB主题,那么该主题是否支持适当的缓存
  • S:如果它是一个高度定制的Magento,您是否考虑了必要的缓存支持代码
背景资料: 清漆: Varnish是一个完整的页面缓存,但是Magento是由块组成的——块独立地过期——完整的页面需要比不相关的块更频繁地重建

Varnish(默认情况下)处理静态内容(JS、CSS、图像等)。我不确定它(默认情况下)是否也会检查html文件是否使用eTag——我想它会检查——因此您可以从配置html页面使用eTag头开始缓存(但要注意过期时间——如果是动态页面,您的访问者将看到旧信息,您必须决定哪些页面可以接受

Memcached(或Redis或APC)和块缓存: 如果服务器上有Memcached,则可以将local.xml文件配置为开始在会话和块缓存中使用Memcached。但是,由于Magento被大量修改,因此块类需要可缓存--它们需要重写
getCacheKey
方法并返回字符串,该字符串需要根据渲染块的HTML内容

示例:

  • 如果您有一个显示恒定HTML片段的块,则键可以是任何唯一的字符串,您可以“计算”该字符串,而无需实际重建/重新命名该块(例如在layout.xml中为该块指定的名称)

  • 如果您有一个显示“Hi{{username}!”的块,那么密钥应该基于用户名或用户id,例如
    $key=“user\u welcome”。$user->getId();
    当前用户很容易从会话中获取,因此您不必运行数据库查询来获取它

  • 如果您有一个依赖于多个参数的块,那么在构建缓存键时需要考虑所有这些参数,并且您需要考虑这样一个事实,即参数信息需要通过尽可能少的处理来访问——如果您只是为了计算缓存k而从DB中获取信息的话ey您可能会误解我的做法——例如,一个块的内容可能根据当前的CMS页面id有所不同,但您不需要从DB加载页面对象,您只需处理URL或
    $\u GET
    变量并使用该信息构建缓存键即可


    • 删除任何不需要的插件


      删除任何不需要的非活动或活动插件。

      62毫秒的接收时间可以。减少1.5秒的等待时间如何?等待时间是服务器合成页面所需的时间。是否启用了平面表?是否启用了缓存(缓存服务器而不是文件缓存)?你的Magento更像是一个带有主题的开箱即用安装,还是主题和逻辑是高度定制的?如果是OOTB主题,主题是否支持适当的缓存?如果是高度定制的Magento,你有没有考虑到必要的缓存支持代码?@MihaiStancu我的Magento是高度定制的,我没有使用flat tables,我正在使用varnish。如何减少等待时间?varnish(默认情况下)处理静态内容(JS、CSS、图像等)。我不确定它(默认情况下)是否也会检查html文件是否正在使用——我想是的——因此您可以从配置html页面以使用eTag头开始缓存(但要注意过期时间——如果是动态页面,访问者会看到旧信息,你必须决定哪些页面可以接受。我将把我的评论总结成一个答案。