N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.
Afin d’optimiser les performances de notre site magento, nous allons mettre en place les optimisations suivantes :
- stockage des sessions dans memcache
- stockage du cache dans redis
Cette solution est modulable et applicable à une configuration multi-serveurs.( En centralisant les sessions sur un serveur spécifique, dans ce cas il suffit de replacer l’ip 127.0.0.1, par l’ip du serveur )
Pour commencer il faut installer les services memcached et redis sur votre serveur si ce n’est pas déjà fait
sudo apt-get install redis-server |
sudo apt-get install memcached |
installer également les librairies memcache pour php
sudo apt-get install php5-memcached php5-memcache |
vous pouvez ensuite configurer le fichier local.xml avec les informations suivantes :
Pour la gestion des sessions dans memcache :
<!-- Stockage des sessions dans memcache --> <session_save><![CDATA[memcache]]></session_save> <session_save_path><![CDATA[tcp://127.0.0.1:11211?persistent=1&weight=2&timeout=10&retry_interval=10]]></session_save_path> |
Les avantages du stockage dans memcache des sessions sont les suivants :
- accès très rapide aux informations car stockées dans la mémoire vive
- partage des sessions facile entre plusieurs serveurs
Puis pour la gestion du cache dans Redis :
<!-- Stockage du cache dans redis --> <cache> <backend>Mage_Cache_Backend_Redis</backend> <backend_options> <server>127.0.0.1</server> <!-- or absolute path to unix socket or ip --> <port>6379</port> <persistent></persistent> <!-- Specify a unique string like "cache-db0" to enable persistent connections. --> <database>0</database> <password></password> <force_standalone>0</force_standalone> <!-- 0 for phpredis, 1 for standalone PHP --> <connect_retries>1</connect_retries> <!-- Reduces errors due to random connection failures --> <read_timeout>10</read_timeout> <!-- Set read timeout duration --> <automatic_cleaning_factor>0</automatic_cleaning_factor> <!-- Disabled by default --> <compress_data>1</compress_data> <!-- 0-9 for compression level, recommended: 0 or 1 --> <compress_tags>1</compress_tags> <!-- 0-9 for compression level, recommended: 0 or 1 --> <compress_threshold>20480</compress_threshold> <!-- Strings below this size will not be compressed --> <compression_lib>gzip</compression_lib> <!-- Supports gzip, lzf and snappy --> </backend_options> </cache> |
Redis vous permets également de gagner en performances par rapport à un stockage standard du cache dans les fichiers.
Une fois ces solutions en place, votre instance de magento devrait tourner plus rapidement 🙂