Magento

Fil des billets

08mar. 2010

Gestion des sessions Magento

magento_logo.jpg
Suite à mon article Centralisation des sessions Magento en cluster présentant l'utilisation de Memcached avec Magento, voici également d'autres façons de gérer les sessions.

  1. Utilisation du mode par défaut :

Lors de l'utilisation de ce mode par défaut, les sessions sont sauvegardées dans le répertoire /home/www/domain.com/var/session. Dans le cadre d'un système clusterisé il serait nécessaire de mutualiser ce répertoire.

Dans le cadre de l'utilisation de Magento sur un serveur en StandAlone, je vous conseil de stocker vos sessions (profitez-en pour vous occuper du cache) en RAM afin d'optimiser au mieux les accès.
Par exemple mon /etc/fstab avec 256Mo alloué pour le cache et 64Mo pour les sessions

tmpfs /home/www/domain.com/var/cache tmpfs size=256M 0 0
tmpfs /home/www/domain.com/var/session tmpfs size=64M 0 0

Attention en cas de redémarrage du serveur le cache et les sessions seront intégralement perdus, il conviendra donc de régénérer le cache depuis l'administration.

  1. Utilisation d'une base de données :

Il vous suffit de choisir l'option appropriée lors de l'étape 3 de l'assistant d'installation : Save session data in Database ou d'effectuer la modification suivante dans app/etc/local.xml.

<session_save><![CDATA[db]]></session_save>

Les sessions devraient à présent apparaître dans la table core_session.

  1. Utilisation de Memcached :

Voir le précèdent billet : Memcached et Magento

01janv. 2010

Optimisation de Magento avec la réplication Mysql

magento_logo.jpg
Pour les utilisateurs d'une réplication mysql et de Magento, il faut savoir que tout a été prévu par Magento afin d'optimiser le traitement des requêtes Mysql avec un serveur dédiée à la lecture, et un second à l'écriture.

Voici pour les développeurs la syntaxe à adopter :

       <resources>
            <db>
                <table_prefix><![CDATA[]]></table_prefix>
            </db>
            <default_setup>
                <connection>
                        <host><![CDATA[Mysql_Write:port]]></host>
                        <username><![CDATA[user]]></username>
                        <password><![CDATA[password]]></password>
                        <dbname><![CDATA[bdd_name]]></dbname>
                    <active>1</active>
                </connection>
            </default_setup>
            <default_read>
                <connection>
                        <host><![CDATA[Mysql_ReadOnly:port]]></host>
                        <username><![CDATA[user]]></username>
                        <password><![CDATA[password]]></password>
                        <dbname><![CDATA[bdd_name]]></dbname>
                    <active>1</active>
                </connection>
            </default_read>
        </resources>

Bien entendu, il ne faut pas oublier que je préconise un serveur Mysql dédié au rôle de Read Only, donc une réplication avec des paramètres avancés du type Replicate_Wild_Ignore_Table afin d'éviter une action du type Je me suis trompé de serveur lors de l'insertion et la réplication Mysql sur le serveur RO est donc en erreur

Lien :

Magento Performance Group

30mar. 2009

Centralisation des sessions Magento en cluster

magento_logo.jpg
Après avoir effectué quelques recherches sur la centralisation des sessions Magento en cluster, 2 modes ont retenu mon attention.

Le premier mode avec une centralisation par base de données, et le second via un serveur Memcached.

Voici pour les développeurs la syntaxe à adopter pour l'utilisation d'un serveur Memcached via Magento :

<session_save><![CDATA[memcache]]></session_save>
 <session_save_path><![CDATA[tcp://XXX.XXX.XXX.XXX:11211?persistent=1&weight=2&timeout=10&retry_interval=10]]></session_save_path>
 <session_cache_limiter><![CDATA[]]></session_cache_limiter>
 <cache>
     <backend>memcached</backend>
     <memcached>
  <servers>
      <server>
   <host><![CDATA[XXX.XXX.XXX.XXX]]></host>
   <port><![CDATA[11211]]></port>
   <persistent><![CDATA[0]]></persistent>

Je ne suis pas du tout développeur donc si vous avez des améliorations, des conseils n'hésitez pas ;) Par ailleurs je rappel que Magento est une vraie usine à gaz et qu'il existe sur la toile une foule de conseils afin de l'optimiser.

Lien :

Session-cache-limiter