Cámara de Zaragoza

Mejorar el rendimiento o velocidad de Magento (performance)

Existe numerosa documentación y artículos entorno a este tema. Este artículo busca ser un resumen o compendio de las principales funciones que ayudarán a mejorar el rendimiento y velocidad de nuestro Magento utilizando de ejemplo de distribución un Ubuntu Server 12.04 64 bits.

Vamos a distinguir las medidas de mejora del rendimiento según el nivel del sistema en el que influya:

 

Servidor Web Apache

Es necesario tener activado el módulo «deflate» de apache para a nivel de Magento configurar la compresión de contenidos enviados a los usuarios con gzip.

Es muy interesante la instalación del módulo «pagespeed» para Apache. Este módulo realiza una serie de configuraciones a nivel de Apache para mejorar la velocidad y rendimiento y mantiene una caché de contenidos a nivel del servidor web.

La información sobre este módulo se puede encontrar en: https://developers.google.com/speed/docs/mod_pagespeed/download?hl=es

Para descargar e instalar ejecutamos en línea de comandos (el archivo a descargar cambiará para otros sistemas operativos):

 

Configuración PHP

Instalar APC. APC es un sistema de caché a nivel de PHP, mejora el rendimiento en la recopilación de datos y ejecución. Puedes ver información sobre él u otros sistemas de caché PHP en http://en.wikipedia.org/w/index.php?title=Alternative_PHP_Cache#Alternative_PHP_Cache_.28APC.29.

Para instalar APC ejecutaremos las siguiente acciones:

[APC]
extension=apc.so
apc.apc.stat = 0
apc.include_once_override = 0
apc.shm_size = 64

apc.include_once_override será igual a 0 si tenemos wordpress porque sino rompe el panel de administración en sus últimas versiones, en caso contrario o que se corriga este problema en wordpress pondremos el valor en 1.

 

Servidor de base de datos Mysql

La clave a nivel del MySQL pasa por configurar las conexiones y caché óptimos según los recursos del sistema; además la desactivación de logs puede ayudar también en la mejora del rendimiento.

Este es un ejemplo de archivo de configuración de MySQL (my.cnf):

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
bind-address = 127.0.0.1

# MYSQLD
key_buffer = 384M
max_allowed_packet = 1M
wait_timeout = 180
connect_timeout = 120
thread_stack = 192K
thread_cache_size       = 10
myisam-recover         = BACKUP
table_cache            = 1024
query_cache_size        = 48M
tmp_table_size = 64M
read_buffer_size = 2M

# LOG
#log_bin = /var/log/mysql/mysql-bin.log
#expire_logs_days = 10
#max_binlog_size         = 100M

# INNODB
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 2M
innodb_thread_concurrency       = 3
innodb_autoextend_increment = 512M

[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[isamchk]
key_buffer = 16M
!includedir /etc/mysql/conf.d/

Los datos de configuración de MySQL deberán responder a los recursos del sistema. Si el sistema es 32 bits no se podrá exceder el tamaño de 2 GB para la siguiente combinación: innodb_buffer_pool_size + key_buffer_size + max_connections*(sort_buffer_size + read_buffer_size + binlog_cache_size) + max_connections*2MB

 

Magento Performance

 

Estas configuraciones son el grueso de trabajo de optimización. Tanto la configuración pormenorizada de apache como de MySQL depende en gran medida de los recursos del servidor y del sistema operativo utilizado.

Última actualización: 12 de noviembre de 2012

¿Tienes alguna duda?
Contacta y te la resolvemos

Carlos Pérez Ximénez De Embún

Carlos Pérez Ximénez De Embún

Servicio de Tecnólogias
976 30 61 61 (ext. 108)
cperez@camarazaragoza.com

Inscripción a la agenda

Enviar consulta