Veritabanı Magento EE 1.12 dosya yerine slow_backend olarak nasıl kullanılır?


14

Magento EE 1.12.0.0'da Hangi yapılandırma değişiklikleri yaptığım önemli değil app/etc/local.xml, varsayılan dosya önbelleği kullanılmaya devam ediyor gibi görünüyor (ki var/cache/her zaman doldurularak kanıtlanmaktadır ).

beklenti

  • Memcached, fast_backend olarak kullanılır.
  • Veritabanı slow_backend olarak kullanılır.
  • Dosya önbelleği hiç kullanılmaz (yani var/cache/her zaman boş olmalıdır).

Gerçek Çıktı

  • Memcached, fast_backend olarak kullanılır.
  • Veritabanı hiç kullanılmıyor.
  • Dosya önbelleği kullanılıyor.

Test Prosedürü

  1. Olarak yapılandırma değişikliğini yapın app/etc/local.xml.
  2. Memcached ve Apache'yi yeniden başlatın (sadece iyi bir ölçü için ve yerel geliştirici kutumda bu yüzden ben de yapabilirim).
  3. Dosya önbelleğini ( rm -rf var/cache/*) temizleyin .
  4. Ana sayfayı yenileyin.
  5. Dosya önbelleğinin ( ls var/cache) içeriğini kontrol edin .
  6. Üzülün ve farklı bir yapılandırma değişikliği ile # 1'e dönün.

Yapılandırma

My içeriği app/etc/local.xmlaşağıdaki gibidir:

<config>
    <global>
        <install>
            <date><![CDATA[{{actual_data}}]]></date>
        </install>
        <crypt>
            <key><![CDATA[{{actual_data}}]]></key>
        </crypt>
        <disable_local_modules>false</disable_local_modules>
        <resources>
            <db>
                <table_prefix><![CDATA[]]></table_prefix>
            </db>
            <default_setup>
                <connection>
                    <host><![CDATA[{{actual_data}}]]></host>
                    <username><![CDATA[{{actual_data}}]]></username>
                    <password><![CDATA[{{actual_data}}]]></password>
                    <dbname><![CDATA[{{actual_data}}]]></dbname>
                    <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
                    <model><![CDATA[mysql4]]></model>
                    <type><![CDATA[pdo_mysql]]></type>
                    <pdoType><![CDATA[]]></pdoType>
                    <active>1</active>
                </connection>
            </default_setup>
        </resources>
        <session_save><![CDATA[db]]></session_save>
        <cache>memcached</cache>
        <slow_backend>database</slow_backend>
        <slow_backend_store_data>1</slow_backend_store_data>
        <memcached>
            <servers>
                <server>
                    <host><![CDATA[{{actual_data}}]]></host>
                    <port><![CDATA[{{actual_data}}]]></port>
                    <persistent><![CDATA[0]]></persistent>
                    <weight><![CDATA[2]]></weight>
                    <timeout><![CDATA[10]]></timeout>
                    <retry_interval><![CDATA[10]]></retry_interval>
                    <status><![CDATA[]]></status>
                </server>
            </servers>
            <compression><![CDATA[0]]></compression>
            <cache_dir><![CDATA[]]></cache_dir>
            <hashed_directory_level><![CDATA[]]></hashed_directory_level>
            <hashed_directory_umask><![CDATA[]]></hashed_directory_umask>
            <file_name_prefix><![CDATA[]]></file_name_prefix>
        </memcached>
    </global>
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <frontName><![CDATA[admin]]></frontName>
                </args>
            </adminhtml>
        </routers>
    </admin>
</config>


Bu soruna asla bir çözüm bulamadım; Ancak, o zamandan beri farklı bir şirketin kullanımı altındaki ek Magento projeleri üzerinde çalıştığım ve burada açıklananlara benzer konfigürasyonlar kullandığımdan, bunun aşağıdakilerden biriyle ilgili bir sorun olduğuna inanmaya meyilliyim: 1. Magento'nun kurulumu (kötü modifikasyonlar / modüller / vb.) 2. Şirketin sunucuları için Drupal'dan kötü bir şekilde uyarlanmış komut dosyaları ve bazı şeyler kaçırıldı 3. Tanrı / Doğa Yasası 4. (büyük olasılıkla) Magento Ne olursa olsun, @fantasticrice, Google çalışanlarına yardım et, böylece ödülü alır!
Robr3rd

Yanıtlar:


5

Bence bu önbellek düğümleri için doğru format değil. Anladığım kadarıyla, tüm önbellek ayarlarının <cache>düğümün içine yerleştirilmesi gerekiyor . Memcached + veritabanı ile iki seviyeli önbellek kullanmak için şöyle bir şey olurdu:

<cache>
    <backend>memcached</backend>
    <slow_backend>database</slow_backend>
    <memcached>
        <servers>
            <server1>
                <host>...</host>
                <port>11211</port>
                <persistent>1</persistent>
                <weight>2</weight>
                <timeout>10</timeout>
                <retry_interval>10</retry_interval>
                <status/>
            </server1>
            ...
        </servers>
        <compression>0</compression>
        <cache_dir/>
        <hashed_directory_level/>
        <hashed_directory_umask/>
        <file_name_prefix/>
    </memcached>
</cache>

Akılda Ayı <full_page_cache>tamamen aynı şekilde yapılandırılabilir ve isterseniz farklı ayarları kullanabilirsiniz. Bunlar yalnızca iki ayrı önbellek örneğidir.

Sadece bir yan not olarak, ben ederim derece tavsiye REDIS kullanarak yerine. Etiketleri destekler, böylece tek seviyeli bir önbellek olarak kullanılabilir ve iki seviyeli memcached + veritabanından çok daha iyi performans gösterir.


3
Redis'i savunuyorum. Db yavaş arka uç yardımcı olduğundan daha fazla zarara neden olur.
philwinkle

Ayrıca bu yapılandırmayı denedim (aslında başladığım şey - yukarıdakiler çalışmadığı için bir alternatif olarak yayınladım). Misiniz <full_page_cache>muhtemelen doldurulması var/cache? Benim anlayışım bunun yerine kullanıyor var/full_page_cache. Ben de boşuna ve <cache>...</cache>için aynı (tarzı) kullanarak denedim . Redis'e gelince, maalesef DB arka ucunu kullanmak şart. <full_page_cache>enterprise.xml
Robr3rd

Sadece fark ettim <cache>...<servers>...<server1>...</server1>. Mı 1içinde server1önemli?
Robr3rd

@RobertRobinson - hayır, altındaki birden fazla düğümü tanımlamanın bir yolu dışında hiç önemli değil <servers>. Foo, bar, baz'ı server1, server2, server3 gibi kolayca kullanabilirsiniz. Bu full_page_cacheörnek, vardosyaları kullanıyorsa kendi alt dizinini alır .
fantasticrice

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.