Magento estremamente lento quando la cache è "piena"


8

Stiamo eseguendo Magento 1.9.2.1 con Lesti_Fpc su un server gestito di dimensioni adeguate. Inizialmente, abbiamo utilizzato la cache dei file predefinita, che andava bene. Ma dopo che il catalogo è cresciuto (anche se penso che ~ 8000 prodotti non siano poi così male) e i crawler sono diventati più aggressivi, il sito è diventato lento non appena la cache è diventata un po 'più grande. Quando la cache è stata cancellata, tutto è tornato veloce.

Abbiamo provato a passare ad APC come backend della cache tramite la seguente voce in local.xml:

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

Ma questo ha aggravato ulteriormente i problemi. Ho quindi letto che Cm_Cache_Backend_File è stato creato per questo problema e integrato tramite:

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

Questo sembra un po 'meglio, ma il problema è sempre lo stesso. Per mantenere la cache piccola e ordinata, ho anche integrato Aoe_CacheCleaner , ma anche questo non aiuta. Tuttavia, non appena la cache viene cancellata, tutto torna a essere veloce.

EDIT: in
base alla risposta di infabo, ho anche attivato Cm_Cache_Backend_Filel'FPC con il file app/etc/fpc.xmle il seguente contenuto:

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

Sono sicuro che abbia senso, ma non risolve il problema.

So che la soluzione generale a questo problema sembra essere Redis (o forse in alternativa Memcached) come backend della cache, ma sfortunatamente non è disponibile sul nostro server gestito. Passare a un'altra società di hosting non è (ancora) un'opzione.

Ho studiato molto ora, ma non ne ho più idea. Forse qualcun altro può aiutare?


Qual è l'URL del sito? Sarebbe utile poter vedere come si stanno caricando le pagine.
Jonathan Hussey,

@JonathanHussey scusate, non posso condividere e, come descritto, dipende molto dallo stato della cache, quindi non sarebbe di grande aiuto ...
Simon,

Certo ok, beh senza poter vedere il problema, è molto difficile persino speculare su cosa potrebbe essere sbagliato. Essere in grado di profilare la richiesta HTML ci direbbe almeno se le cose si sono attaccate all'FPC o meno (cioè ancora veloce o TTFB lento quando ci sono problemi).
Jonathan Hussey il


@FiascoLabs Ho seguito da vicino Fabrizio, ma non riesco a vedere che esiste una soluzione (oltre a Redis). Puoi?
Simon,

Risposte:


7

Ho indagato ancora di più e penso di aver finalmente risolto il problema. Quindi cosa puoi fare per analizzare un simile problema?

  1. Per avere una buona idea quando la cache diventa troppo grande e se il problema è davvero la dimensione della cache, aggiungi un cronjob che chiama il seguente script, ad esempio ogni 15 minuti:

    #!/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
    

    Quindi puoi analizzare il contenuto di /html/cache_logper vedere come si sviluppa la dimensione della cache, quando la tua pagina diventa troppo lenta e se la causa principale è davvero la cache.

  2. Analizza i tuoi file di cache. Pertanto, è abbastanza utile scrivere tutti i file di cache in un file di registro con ad esempio:

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

    Dai un'occhiata a questo file e ai nomi dei file all'interno. Che tipo di file di cache ci sono? C'è qualcosa di sospetto? Nel mio caso, c'erano molti file di cache che contenevano AMSHOPBYnel loro nome di file, un riferimento all'estensione di navigazione migliorata ( Amasty_Shopby). Stava creando molti file cache. Alcuni mi sembravano abbastanza strani. La disabilitazione della cache di navigazione migliorata Amasty ha risolto immediatamente il problema. Ho contattato il loro supporto con una descrizione dettagliata e il supporto è stato davvero buono. La strategia di memorizzazione nella cache è stata rapidamente completamente rivista e ora è molto meglio. Hanno promesso di integrare la patch nella prossima versione dell'estensione, quindi ogni versione> 2.8.3 dovrebbe andare bene.

Buona fortuna a trovare la causa principale per la tua grande cache!


4

Hai provato Cm_Cache_Backend_File come backend anche in fpc.xml? Forse provaci. Darei anche a Aoe_Profiler. Se riesci a riprodurre i "rallentamenti" su una copia temporanea, vai e profila le tue richieste lente. Altrimenti puoi farlo in produzione ( non lo consiglio assolutamente , ma se hai il coraggio, puoi configurare il profiler per essere abilitato solo quando il parametro GET è impostato e vai avanti)


No, non l'ho ancora fatto (non lo sapevo fpc.xml). Idea interessante, ci proverò, grazie!
Simon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.