Skip to main content

TYPO3 & Magento mit Memcached Server betreiben

Memcached Server

phpMemcachedAdmin

phpMemcachedAdmin zur Darstellung von Statistiken und Live Daten des Memcached Servers

Ein Memcached ist ein Caching System zur Steigerung der Performance von Dynamischen Seiten.

Neben den bekannten Caching Lösungen wie APC, xCache oder eAccelerator, macht die Verwendung eines Memcached-Servers erst bei der Verwendung von mehreren Servern (z.B. mit einem LoadBalancer) Sinn, da er gemeinsame und doch physikalisch voneinander getrennte Daten über das Netzwerk verwalten kann.

Viele große Softwarelösungen wie z.B. Magento, OpenX oder TYPO3, bieten eine solche Kommunikation mit einem MemCached-Server "Out-of-the-Box" an.

Daten wie z.B. Usersessions oder geparste Seiten, welche Ursprünglich ein jeder Server für sich anlegen würde, verwaltet so ein Mamcache Server global. Es gibt keine Redundanzen und einem jeden zusätzlichen Server entfallen unnötige Berechnungsroutinen.

Memcache installieren

Abhängig vom Betriebssystem ist eine Installation eines Memcache-Servers recht einfach und schnell durchgeführt.

Unter Ubuntu und Centos ist dies quasi mit nur zwei Zeilen erledigt. Dabei müssen sowohl die Server-Software, als auch das PHP-Memcache Modul installiert werden. Hier von dem irreführenden memcached als Server und memcache (ohne d) als Modul nicht durcheinander bringen lassen

Ubuntu

  • sudo apt-get install memcached
  • sudo apt-get install php5-memcache 

CentOS

  • yum install memcached.x86_64 (für 64bit Version)
  • yum install php-pecl-memcache.x86_64 


Jetzt Memcached Server und Apache neu starten und natürlich testen.

Memcached unter TYPO3

Unter Typo3 ist die Verwendung des Memcached seit der neusten Version relativ einfach zu aktivieren. Der folgende Code muss samt Anpassung des Hosts in die localconf.php Datei eingepflegt werden.

$TYPO3_CONF_VARS['SYS']['useCachingFramework'] = '1';

$mserver = 'HostIP:11211';
$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_pages'] = array (
   'frontend' => 't3lib_cache_frontend_VariableFrontend',
   'backend' => 't3lib_cache_backend_MemcachedBackend',
   'options' => array(
      'servers' => array($mserver),
   )
);

$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_hash'] = array (
   'frontend' => 't3lib_cache_frontend_VariableFrontend',
   'backend' => 't3lib_cache_backend_MemcachedBackend',
   'options' => array(
      'servers' => array($mserver),
   )
);

$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_pagesection'] = array (
   'frontend' => 't3lib_cache_frontend_VariableFrontend',
   'backend' => 't3lib_cache_backend_MemcachedBackend',
   'options' => array(
      'servers' => array($mserver),
   )
);

 

Memcached unter Magento benutzen

Unter Magento ist dies ähnlich einfach einzurichten. Hierzu verwenden wir die local.xml Datei aus dem Ordner /app/etc und fügen den folgenden Code zwischen <global> ... </global>, wo u.a. auch die Datenbankverbindung steht.

<cache>
   <backend>memcached</backend><!-- apc / memcached / empty=file -->
   <memcached><!-- memcached cache backend related config -->
      <servers><!-- any number of server nodes can be included -->
         <server>
            <host><![CDATA[memcachedHostAddress]]></host>
            <port><![CDATA[11211]]></port>
            <persistent><![CDATA[1]]></persistent>
          </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>
</cache>



Es gibt natürlich noch viele Stellschrauben, sowohl am Memcached, als auch Magento und TYPO3. Interessant wird das zusätzlich mit der Verwendung des Igbinary-Serializer, welches sowohl der Memcache Server, als auch Magento mit dem Zend Framework und TYPO3 verwenden können.
Hierdurch können weitere Performanceoptimierungen durchgeführt werden. Doch auf dieses gehen wir nächste mal ein.

Memcached Statistiken

Eine gutes Memcached Statistik-Tool ist das frei erhältliche phpMemcachedAdmin. Dieses kann live Daten und Alerts, aber auch generelle Statistiken über das Netzwerk, Deletes, gets, sets, etc. darstellen.
Zu beziehen ist das unter PHP geschriebene Tool unter:
http://code.google.com/p/phpmemcacheadmin/