Tengo el sitio web de magento. No hay ningún usuario (máximo 2-3 en el momento).
Nuestro servidor es: CPU: 2000MHz RAM: 2048Mb HDD: 50000Mb.
Instalé ZendServerCE (apc + memcached + Zend Optimizer + Zend Data Cache). Apagué memcached, porque el sitio web cargó mucho peor. Establecí la estructura de tipo plano, los datos reindexados y en caché en la consola de administración.
Entonces tengo apc + Zend Optimizer + Zend Data Cache .
El primer problema es que verifiqué en tiempo de ejecución cómo funciona el despacho. Las llamadas a start_session () tardan entre 500 y 700 ms. Parece que no es un buen resultado. ¿Por qué tanto tiempo? No lo sé.
He leído este: http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_key_buffer_size y descubrí las opciones óptimas para mi servidor.
Por hora:
Key_read_requests = 8887
Key_reads = 252
Key_write_request = 187
Key_writes = 146
Usted ve que 252/8887> 0.01, pero no demasiado. Es el valor óptimo que he recibido. Otros resultados comenzaron desde> 6.
Aquí está my.cnf:
key_buffer = 48M
myisam_sort_buffer = 2M
sort_buffer = 2M
read_buffer_size = 2M
join_buffer = 2M
read_rnd_buffer = 2M
max_allowed_packet = 128M
thread_stack = 192K
thread_cache_size = 16
query_cache_type = 1
myisam-recover = BACKUP
max_connections = 50
table_cache = 256
#thread_concurrency = 10
query_cache_limit = 8M
query_cache_size = 98M
3. Memcached por alguna razón no era bueno. Lo apagué. Pero el caché de datos zend y el optimizador zend aún funcionan.
4) APC parece correcto. Para cargar la acción del controlador, toma de 3 a 4 segundos por primera vez (configuré die () allí para verificarlo) y por primera vez toma de 1 a 1.3 segundos.
5) Después de varios minutos reinicé mysql obtuve un buen resultado. Las páginas se cargaban de 1,5 a 2,5 segundos. Pero ahora (después de varias horas) toma de 6 a 10 segundos. No puedo encontrar la razón.
Entonces, ¿ves alguna configuración incorrecta aquí? ¿Puede ser que mi servidor no sea adecuado para magento?
ACTUALIZACIÓN 1: aproximadamente 600 categorías y 1000 productos hoy y aproximadamente 20000 categorías (para diferentes tiendas web) y 1500-3000 productos en el futuro.
No hay muchos atributos.
ACTUALIZACIÓN 2 He notado que la consola ssh funciona demasiado lento. Reinicié el servidor y ahora funciona rápido. significa que tengo un problema con la RAM. No hay suficiente espacio.
Es el estado inicial sin apache:
total used free shared buffers cached
Mem: 2048 600 1447
ACTUALIZACIÓN 3 Lo tengo. Ahora se carga durante 0.5-1.5 segundos
Aquí está la configuración: mysql
[mysqld]
key_buffer_size = 256M
tmp_table_size = 32M
max_heap_table_size = 32M
myisam_sort_buffer = 4M
sort_buffer = 4M
read_buffer_size = 4M
join_buffer = 4M
read_rnd_buffer = 4M
max_allowed_packet = 64M
thread_stack = 192K
thread_cache_size = 16
query_cache_type = 1
myisam-recover = BACKUP
max_connections = 20
table_cache = 1024
innodb_buffer_pool_size = 128M
query_cache_limit = 24M
query_cache_size = 256M
php
[apc]
apc.stat=1
apc.enabled=1
apc.optimization=0
apc.cache_by_default=1
apc.shm_segments=10
apc.shm_size=256M
apc.ttl=0
apc.user_ttl=0
apc.num_files_hint=10000
;apc.mmap_file_mask="/tmp/apc"
apc.max_file_size=5M
apc.enable_cli=1
apc.mmap_file_mask="/tmp/apc.XXXXXX"
apc.slam_defense=0
apc.user_entries_hint=10000
Todo funciona perfecto, pero queda una pregunta. APC me muestra esta estadística:
¿Por qué golpes tan pequeños? ¿Algunas ideas?
fuente
xhprof
e intentar obtener una visualización de lo que está tardando más en cargar. ¿Es este un servidor de producción bajo carga o simplemente para pruebas?Respuestas:
Como la pregunta parece no estar muy centrada en el magento, aquí está mi respuesta no muy centrada en el magento.
El almacenamiento en caché de OpCode y las optimizaciones de base de datos son una buena manera de acelerar sus aplicaciones web hasta cierto punto. Pero el beneficio será relativamente moderado. Para obtener un aumento real de la velocidad, debería considerar usar caché de barniz. Es de código abierto, fácil de configurar y fácil de integrar con magento gracias a los módulos disponibles gratuitamente para magento.
También hay un buen artículo con una breve descripción de cómo funciona: http://www.fabrizio-branca.de/make-your-magento-store-fly-using-varnish.html
Considere especialmente la tabla:
fuente
Si su negocio depende de que su hosting funcione bien, ¿por qué está tratando de administrar el servidor sin experiencia?
Seguramente se beneficiaría simplemente contactando a un anfitrión especialista de Magento y dejándoles encargarse de la administración del sistema, mientras hace lo que hace bien, administrando su tienda.
Mirando sus especificaciones, no tiene suficiente RAM para intentar ejecutar una tienda Magento. Hay un montón de preguntas similares como la tuya,
/server//a/400748/113375 .
/server/430565/magento-hosting-on-a-budget
fuente
¿Es este hardware físico o un servidor privado virtual? Probablemente debería mover su base de datos a su propio servidor dedicado. Esto también le brinda la ventaja de poder aislar si sus problemas de velocidad están en Apache / PHP o en MySQL.
start_session () ser lento significa que probablemente estés sufriendo de hardware con poca potencia. No sé si sus opciones tecnológicas significan que las sesiones se almacenan en el disco o en la RAM, pero 500-700 ms casi seguro significa que se almacenan en el disco y que tiene problemas de rendimiento de E / S, probablemente porque su base de datos es cambiar a disco porque no cabe en la RAM ... pero eso es todo especulación.
¡Buena suerte!
fuente
free -m
le dirá si está utilizando el intercambio, y las últimas versiones deltop
comando le indicarán si presiona O y P para ordenar por uso de intercambio. De lo contrario, debe recurrir al uso de la identificación de proceso de mysqld con algo como esto:awk '/^Swap:/ { SWAP+=$2 } END { print SWAP" kB" }' /proc/$(pidof mysqld)/smaps
Todo se describe aquí: dbasquare.com/2012/04/10/…Obviamente, no hay forma de mostrarle una 'configuración de trabajo' que aumente su rendimiento, pero Magento realmente intenta hacer algo como esto y publica un ejemplo de una pila LAMP altamente configurada en sus informes de rendimiento. La metodología de estos documentos técnicos se aplica a CE y EE. Recomiendo leer ambos libros blancos por completo, ya que las ideas sugeridas allí hacen eco de gran parte de este hilo y proporcionaron recomendaciones muy específicas de Magento, directamente de la fuente: http://www.magentocommerce.com/whitepaper/
fuente
Configuración
ZendFramework (optimizador zend y caché de datos zend) + APC + Memcache + Nginx
funciona perfecto para mi
Más de 30 usuarios con experiencia pueden cargar la página en menos de un segundo (~ 0.4s-0.6s)
Configuré nginx en el puerto 80 (como proxy) y apache en 8080.
Gracias a @MattSchweers por los enlaces. Me habia olvidado de eso. Me ayuda a configurar MySQL
fuente
en mi experiencia, el servidor litespeed aumenta el rendimiento 2 veces bien vale la licencia de $ 32 / mes 1cpu. Me dijeron que solo necesita la licencia 1cpu ya que php se ejecuta por separado en litespeed.
fuente
Cuando tiene múltiples tiendas web y múltiples categorías, Magento está esencialmente creando un tipo de producto caretsian de entradas para todas las tiendas web, categorías y productos, lo que supondrá una carga significativa en la Base de Datos. Sus fallos de APC son bastante altos, y deberá investigarlo. Sin embargo, incluso si arregla APC, creo que su problema de rendimiento puede persistir, especialmente si aumenta su tráfico. Para acelerar su sitio, necesitará instalar un caché operativo, Varnish o caché de página completa (si es Enterprise Edition).
Magento realiza muchas escrituras de lectura en la base de datos, por lo que también puede intentar que su MySQl en un modo de replicación Master Slave haya recibido todas las lecturas de magento del esclavo, mientras que las escrituras le suceden al maestro.
fuente
Intentaría cambiar las siguientes opciones de APC y ver si los éxitos se recuperan.
apc.shm_segments 1
apc.ttl 7200
apc.user_ttl 7200
En un sitio en vivo, puede usar lo siguiente también.
apc.stat 0
Esto detendrá la comprobación de APC si el archivo ha cambiado desde la última vez que se compiló, lo que le brinda un buen aumento de velocidad. Simplemente no olvide vaciar su caché APC cuando edite archivos PHP.
fuente
Un par de otros pensamientos. Es posible que desee aumentar su tamaño innodb_buffer_pool_size, 128M puede ser un poco bajo e incluso los sitios pequeños pueden crecer rápidamente. La variable dicta la cantidad de datos que se guardan en la memoria.
Magento usa esto para todas sus tablas, incluidas las tablas de registro que crecen rápidamente. Deberá asegurarse de limitar la cantidad de datos que conserva. Ejecutar "php shell / log.php --status" desde la línea de comandos le dará una idea de dónde se encuentra y si se está yendo de las manos. También hay opciones para limpiar las tablas de registro con él.
No es mucho para trabajar con 2 GB de RAM, por lo que debe tener cuidado con la ubicación de su memoria.
También un calentador de caché de página completa + caché puede ayudar a mantener el catálogo de su sitio y las páginas de cms preparadas y rápidas. Puedes ver el nuestro aquí: http://ecommerce.brimllc.com/full-page-cache-magento.html
fuente