Magento Sangat Lambat Saat Cache "Penuh"

8

Kami menjalankan Magento 1.9.2.1 dengan Lesti_Fpc di server yang dikelola dengan cukup baik. Awalnya, kami menggunakan cache file default, yang baik-baik saja. Tetapi setelah katalog bertambah (walaupun saya pikir ~ 8000 produk tidak terlalu buruk) dan crawler menjadi lebih agresif, situs menjadi lambat begitu cache menjadi sedikit lebih besar. Ketika cache dihapus, semuanya berjalan cepat lagi.

Kami mencoba untuk beralih ke APC sebagai backend cache melalui entri berikut di local.xml:

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

Tapi ini membuat masalahnya semakin buruk. Saya kemudian membaca bahwa Cm_Cache_Backend_File dibuat untuk masalah ini dan diintegrasikan melalui:

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

Ini terasa sedikit lebih baik, tetapi masalahnya masih sama. Untuk menjaga cache tetap kecil dan rapi, saya juga mengintegrasikan Aoe_CacheCleaner , tetapi ini juga tidak membantu. Namun, begitu cache dihapus, semuanya berjalan cepat lagi.

EDIT:
Berdasarkan jawaban oleh infabo, saya juga mengaktifkan Cm_Cache_Backend_FileFPC dengan file app/etc/fpc.xmldan konten berikut:

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

Saya yakin ini masuk akal, tetapi juga tidak menyelesaikan masalah.

Saya tahu bahwa solusi umum untuk masalah ini tampaknya Redis (atau mungkin sebagai alternatif Memcached) sebagai backend cache, tetapi sayangnya, itu tidak tersedia di server kami yang dikelola. Beralih ke perusahaan hosting lain belum (belum) menjadi pilihan.

Saya banyak menyelidiki sekarang, tetapi saya tidak punya ide lagi. Mungkin orang lain bisa membantu?

Simon
sumber
Apa URL situs itu? Akan bermanfaat untuk dapat melihat bagaimana halaman dimuat.
Jonathan Hussey
@JonathanHussey maaf, tidak bisa berbagi dan seperti yang dijelaskan, ini sangat tergantung pada status cache, jadi tidak akan membantu kok ...
Simon
Tentu ok, baik tanpa bisa melihat masalah, sangat sulit bahkan berspekulasi tentang apa yang mungkin salah. Mampu membuat profil permintaan HTML setidaknya akan memberi tahu kami jika ada hal-hal yang menempel pada FPC atau tidak (yaitu masih cepat, atau memperlambat TTFB ketika ada masalah).
Jonathan Hussey
Masalah yang sudah lama diketahui dari 2011 fbrnc.net/blog/2011/05/magento-caching-internals
Fiasco Labs
@FiascoLabs Saya mengikuti Fabrizio dengan cermat, tetapi saya tidak melihat ada solusi (selain Redis). Bisakah kamu?
Simon

Jawaban:

7

Saya menyelidiki lebih banyak dan saya pikir saya akhirnya menyelesaikan masalah. Jadi apa yang dapat Anda lakukan untuk menganalisis masalah seperti itu?

  1. Untuk memiliki ide yang baik ketika cache menjadi terlalu besar dan jika masalahnya adalah ukuran cache yang sebenarnya, tambahkan cronjob yang memanggil skrip berikut, misalnya setiap 15 menit:

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

    Kemudian Anda dapat menganalisis konten /html/cache_loguntuk melihat bagaimana ukuran cache berkembang, ketika halaman Anda menjadi terlalu lambat dan jika penyebab sebenarnya adalah cache.

  2. Analisis file cache Anda. Oleh karena itu, sangat membantu untuk menulis semua file cache ke file log dengan misalnya:

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

    Lihatlah file ini dan nama-nama file di dalamnya. Apa jenis file cache yang ada? Adakah yang mencurigakan? Dalam kasus saya, ada banyak file cache yang berisi AMSHOPBYnama file mereka - referensi ke ekstensi Amasty Improved Navigation ( Amasty_Shopby). Itu menciptakan banyak file cache. Beberapa dari mereka terlihat sangat aneh bagi saya. Menonaktifkan cache Navigasi yang Disempurnakan Amasty memecahkan masalah secara instan. Saya menghubungi dukungan mereka dengan deskripsi terperinci dan dukungannya sangat bagus. Strategi caching dengan cepat dirombak total dan sekarang jauh lebih baik. Mereka berjanji untuk mengintegrasikan tambalan dalam versi ekstensi berikutnya, sehingga setiap versi> 2.8.3 akan baik-baik saja.

Semoga berhasil menemukan penyebab utama cache besar Anda!

Simon
sumber
4

Sudahkah Anda mencoba Cm_Cache_Backend_File sebagai backend di fpc.xml juga? Mungkin mencobanya. Saya akan memberikan Aoe_Profiler suntikan juga. Jika Anda dapat mereproduksi "pelambatan" pada staging-copy - pergi dan profil permintaan lambat Anda di sana. Kalau tidak, Anda dapat melakukannya pada produksi ( saya benar-benar tidak merekomendasikannya , tetapi jika Anda berani, Anda dapat mengkonfigurasi profiler hanya diaktifkan ketika parameter GET diatur dan lanjutkan)

infabo
sumber
Tidak, saya belum (tidak tahu tentang fpc.xml). Ide yang menarik, akan coba, terima kasih!
Simon