当缓存“满”时,Magento非常慢


8

我们正在具有足够大小的受管服务器上使用Lesti_Fpc运行Magento 1.9.2.1 。最初,我们使用默认的文件缓存,这很好。但是在目录增加之后(尽管我认为〜8000产品还不错)并且爬虫变得更加激进,但只要缓存变得更大,站点就会变慢。清除缓存后,所有内容再次快速运行。

我们尝试通过local.xml中的以下条目切换到APC作为缓存后端:

<global>
    <cache>
        <backend>apc</backend>
        <prefix>MYSHOP_</prefix>
    </cache>
</global>

但这使问题更加严重。然后,我读到Cm_Cache_Backend_File是针对此问题而制作的,并通过以下方式进行了集成:

<global>
    <cache>
        <backend>Cm_Cache_Backend_File</backend>
    </cache>
</global>

感觉好一些,但问题仍然存在。为了使缓存小而整洁,我还集成了Aoe_CacheCleaner,但这也无济于事。不过,清除缓存后,一切都会再次快速运行。

编辑:
基于infabo的回答,我还Cm_Cache_Backend_File为FPC 激活了文件app/etc/fpc.xml和以下内容:

<?xml version="1.0"?>
<config>
    <global>
        <fpc>
            <lifetime>86400</lifetime>
            <backend>Cm_Cache_Backend_File</backend>
        </fpc>
    </global>
</config>

我确信这是有道理的,但它也不能解决问题。

我知道,解决此问题的一般方法似乎是将Redis(或者可能是Memcached)作为缓存后端,但是不幸的是,它在我们的托管服务器上不可用。切换到另一个托管公司(尚未)是一种选择。

我现在进行了很多调查,但我没有其他想法。也许其他人可以帮忙吗?


网站的网址是什么?能够查看页面的加载方式将很有用。
乔纳森·侯赛

@JonathanHussey抱歉,无法共享,如上所述,这在很大程度上取决于缓存状态,因此无论如何也无济于事……
Simon

当然可以,但是无法看到问题所在,甚至很难推测出什么地方出了问题。能够描述HTML请求至少可以告诉我们事情是否在FPC上粘附(即,出现问题时仍保持快速或慢速TTFB)。
乔纳森·侯赛

从2011年开始的
Fiasco Labs

@FiascoLabs我密切关注了Fabrizio,但是我看不到有任何解决方案(Redis除外)。你可以吗?
西蒙(Simon)

Answers:


7

我进行了更多调查,我终于解决了这个问题。那么,您该怎么做才能分析此类问题?

  1. 为了更好地了解高速缓存过大的问题,如果问题确实出在高速缓存的大小上,请添加cronjob,它会每隔15分钟调用一次以下脚本:

    #!/bin/bash
    
    # this script is an attempt to check if the full cache is the real performance problem
    # it should be called regularly as a cronjob
    
    cache_dir="/html/shop/var/cache/"
    log_file="/html/cache_log"
    
    line=$(date)
    line="$line Size of cache directory: $(du -hs $cache_dir)"
    echo "$line" >> $log_file
    
    line=$(date)
    line="$line Total cache tags: $(find $cache_dir'cm-tags/' -type f | wc -l)"
    echo "$line" >> $log_file

    然后,您可以分析的内容,/html/cache_log以查看高速缓存大小如何发展,页面变得太慢以及根本原因是否确实是高速缓存。

  2. 分析您的缓存文件。因此,使用以下命令将所有缓存文件写入日志文件非常有帮助:

    ls -R /html/shop/var/cache > /html/cachefiles

    看一下这个文件和其中的文件名。有什么样的缓存文件?有什么可疑的吗?就我而言,AMSHOPBY文件名中包含大量缓存文件-引用了Amasty改进导航(Amasty_Shopby)扩展名。它正在创建大量缓存文件。他们中有些人对我来说很奇怪。禁用Amasty改进的导航缓存可立即解决该问题。我联系了他们的支持并提供了详细说明,并且支持非常好。缓存策略很快就被彻底修改,现在已经好得多。他们承诺将补丁集成到扩展的下一个版本中,因此每个版本大于2.8.3的版本都可以。

祝您找到高速缓存的根本原因好运!


4

您是否也尝试过将Cm_Cache_Backend_File作为fpc.xml中的后端?也许尝试一下。我也会给Aoe_Profiler一个机会。如果您能够在登台副本上重现“减速”,请在此处配置您的慢速请求。否则,您可以在生产环境中执行此操作(我严格不建议这样做,但是如果您敢,可以将探查器配置为仅在设置GET参数时启用,然后继续)


不,我还没有(不知道fpc.xml)。有趣的主意,会尝试的,谢谢!
西蒙(Simon)
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.