Con sesiones basadas en archivos, se eliminarán automáticamente mediante el cron de limpieza de la sesión PHP, por lo que es probable que los archivos se eliminen dentro de ~ 7200 segundos de la creación. Por lo tanto, incluso en un sitio ocupado (30.000 exclusivos por día), normalmente solo hay unos 4.000 archivos de sesión en ./var/session, que no es nada para un servidor Linux.
Sin embargo, la limpieza realmente depende del funcionamiento de cron, que normalmente no se ve en el directorio ./var/session de Magento. Por lo que debe establecer un nuevo sistema de cron
/usr/bin/find /home/myuser/public_html/var/session -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 -exec rm {} \; >/dev/null 2>&1
El valor predeterminado limpiar periodo de sesiones es de 7200 segundos, lo que debería ser más que suficiente, aunque se puede cambiar para adaptarse lo anterior.
Con las sesiones de Memcache, TCP/IP es la única sobrecarga, que para una implementación de servidor único, lo haría más lento que el archivo. Entonces, usaría un socket Unix en su lugar, lo que elimina esa sobrecarga y brinda una mayor seguridad. Pero aún así, sus sesiones de cliente se verán truncadas/limitadas en cuanto a la cantidad de RAM que puede asignar. La sesión promedio de Magento es de 4 Kb, por lo que podrá admitir 256 sesiones activas, por MB que asigne. Por lo tanto, asegúrese de establecer un límite apropiado para evitar que los clientes pierdan la compra/sesión al azar. Y también ten en cuenta que un reinicio del daemon Memcache borrará todas las sesiones existentes (¡MALO!).
Con Redis (no nativo, pero disponible a través de una extensión), obtiene un nivel similar de compatibilidad como Memcache, pero con los beneficios adicionales de la persistencia (si desea usarlo). Con la extensión Cm_Redis, también podrá aprovechar la compresión de sesión. Hemos encontrado que esta extensión funciona muy bien en las implementaciones de CE y EE.
Con DB, la configuración de expiración predeterminada es de 1 semana, por lo que con el tamaño de tienda anterior como ejemplo (30k únicos por día), verá un tamaño de tabla DB para core_cache_session de alrededor de 7 GB - que hará que tu tienda se detenga por completo, para casi cada operación basada en sesión.
De la experiencia de acoger ambos de gran tamaño (230 mil visitantes únicos por día) y pequeños (< 1k visitantes únicos por día) almacena, nuestra recomendación es:
un solo servidor de despliegue - archivos
Multi implementación -server - Redis (utilizando una base de datos separada de la principal caché Magento)
me escribió algunas respuestas muy completas aquí http://magebase.com/magento-tutorials/magento-session-storage-which-to-choose-and-why/comment-page-1/#comment-1980
¿Existen otras ventajas para usar la base de datos para la gestión de sesiones? Normalmente he usado el sistema de archivos (creo que es el predeterminado). – Chris
Las sesiones almacenadas en la base de datos serían más fáciles de realizar copias de seguridad. Si la base de datos fuera un servidor separado, se reduciría el esfuerzo realizado en la unidad de disco duro del servidor principal, aunque también podría montar la carpeta de la sesión como tmpfs si estuviera preocupado por ese tipo de cosas. A diferencia de los archivos, una base de datos no usaría los identificadores de archivos a medida que aumentara el número de sesiones, un sistema de archivos tiene un límite en la cantidad de archivos que puede contener y un servidor ocupado podría exceder ese límite. Una base de datos también podría comprimir de forma transparente su tabla, lo que reduciría también el requisito de espacio. – clockworkgeek
Recomendaría no usar Memcache para almacenar sesiones, ya que Magento Cache Flush con Memcache es todo o nada, lo que significa que cuando vacíe la caché, matará las sesiones de los clientes. Memcache es genial para magento, pero no las sesiones. –