cómo determinar los requisitos de alojamiento

23

Nos estamos preparando para lanzar 2 sitios de comercio electrónico usando CE ver 1.9. Cada sitio comenzará con alrededor de 10000 sku's.

¿Cuáles son las cosas clave que debemos buscar en un proveedor de alojamiento web ... son importantes, como el tamaño de la base de datos, el número de imágenes, etc.?

Obviamente, la velocidad de carga de la página también es muy importante.

¿Cómo seleccionamos mejor un host adecuado?

Gracias

walter kaatz
fuente
Bienvenido agua en MageOverflow. Lamentablemente, el hosting de Magento es algo complejo y hay muchas compañías que lo invitan a discutir con ellos sus requisitos. No hay forma de recomendarle nada sin mucha más información. Y con toda la información, la pregunta es demasiado específica para ser útil.
Fabian Blechschmidt
@FabianBlechschmidt: no creo que sea una pregunta duplicada de la mencionada. Y es una pregunta bastante razonable en eso. Escribí una respuesta bastante exhaustiva sobre los requisitos de dimensionamiento (también lo haré más detallado) y es lo suficientemente genérico como para que esto sirva como una muy buena pregunta de referencia para el dimensionamiento de la arquitectura.
Ben Lessani - Sonassi
Usted es el experto, así que voté por la reapertura :-)
Fabian Blechschmidt

Respuestas:

31

Descargo de responsabilidad: Sonassi es un host de Magento


TL; DR: un buen host le dirá qué es exactamente lo que necesita (y lo justificará). No deberías estar haciendo esto tú mismo.

Cuando un cliente se acerca a nosotros, hacemos algunas preguntas para comprender cuáles son los requisitos actuales, los requisitos máximos y los requisitos futuros para su tienda. Luego proporcionaremos una recomendación sobre esa base.

Dado que alojamos miles de tiendas Magento, tenemos una comprensión bastante sólida de exactamente qué infraestructura se requiere para un conjunto determinado de requisitos de los clientes, por lo que es bastante fácil para nosotros recomendar (y predecir exactamente qué recursos se utilizarán) cuando en realidad se van a vivir.

El detalle a tener en cuenta aquí es que, si bien podemos decirle los requisitos para nuestra propia infraestructura que ejecuta MageStack, es casi seguro que no sea lo mismo que una configuración en otro lugar, así que tenga esto en cuenta.

Deje que otra persona evalúe sus requisitos

Tienda y Catálogo

  1. ¿Versión de Magento?
  2. ¿Número de productos simples en catálogo?
  3. ¿Número de categorías en el catálogo?
  4. ¿Número de atributos en el catálogo?
  5. ¿Número de conjuntos de atributos en el catálogo?
  6. ¿Número de visitas a la tienda Magento (Admin> Sistema> Administrar tiendas)?
  7. ¿Transacciones por día?
  8. ¿Transacciones pico en una sola hora?

Tráfico y ancho de banda

  1. ¿Cuál es el nivel de visitantes únicos diarios?
  2. ¿Cuál es el pico más alto en una sola hora de visitantes únicos?
  3. ¿Número de visitas a la página por visitante?
  4. ¿De qué país son principalmente los visitantes?
  5. ¿Anticipa el crecimiento del tráfico del sitio en los próximos 12 meses, en caso afirmativo, en cuánto?
  6. ¿Opera campañas / boletines de alto tráfico (que tienen una captación significativa) de forma regular?
  7. ¿Su sitio ofrece descargas digitales?
  8. Uso actual de ancho de banda?
  9. ¿Requiere un servicio de filtrado dDOS?

Requisitos de hardware

  1. ¿Uso actual del espacio en disco?
  2. ¿Requiere almacenamiento de registros a largo plazo (conformidad con PCI-DSS)?
  3. ¿Requiere almacenamiento de respaldo fuera del sitio?
  4. ¿Necesita ejecutar algún software especializado / alternativo en el servidor?
  5. ¿Sus regulaciones de cumplimiento de PCI dictan el uso de un firewall de hardware?
  6. ¿Necesita una solución tolerante a fallas, altamente disponible o con equilibrio de carga?

Etapa / práctica de desarrollo

  1. ¿Necesita un entorno dedicado separado para la puesta en escena / desarrollo?
  2. ¿Requiere un entorno "Test Live" para que coincida con el entorno "Live" (para las pruebas finales previas al live)?

Presupuesto

  1. ¿Tienes un presupuesto mensual?

Luego, utilizando esta información, envíela al proveedor de alojamiento que elija y vea qué recomiendan.


Dimensionando sus propios requisitos

Como regla general, es posible

  1. Correlacione directamente sus niveles de tráfico con los requisitos de su CPU
  2. Correlacione directamente sus requisitos de CPU con los requisitos de RAM
  3. Correlacione directamente su almacenamiento MySQL con los requisitos de RAM

Selección de CPU

Primero comience dimensionando su tráfico.

  • Una tienda de demostración estándar de Magento es capaz de ofrecer aproximadamente 230 unidades únicas por GHz, por hora.
  • Una tienda web típica, con actividad de usuario administrador, actividad de desarrollo, adición / eliminación de productos, puede ver que esto se degrada en aproximadamente un 100%, a 115 únicos por GHz, por hora.
  • Una tienda con una plantilla mal construida / pesada puede reducir aún más la cifra en otro 100-200%, a 50 únicos por GHz, por hora.

Con estos números, puede calcular exactamente lo que necesita en términos de recursos de CPU.

P.ej. Si tiene 4.025 visitantes únicos sostenidos / día, necesita un recurso de CPU total de 28 GHz (es decir, 8 núcleos a 3.5 GHz o 12 núcleos a 2.3 GHz)

El otro detalle importante es la velocidad de la CPU, es posible tener:

  • Un tiempo de carga de página lento y compatibilidad con baja concurrencia (CPU de baja velocidad de reloj (GHz), pocos núcleos)
  • Un tiempo de carga de página rápido, pero poca compatibilidad simultánea (CPU de alta velocidad de reloj (GHz), pocos núcleos)
  • Un tiempo de carga de página lento, pero soporte de alta concurrencia (CPU de baja velocidad de reloj (GHz), muchos núcleos)
  • Un tiempo de carga de página rápido y alta compatibilidad simultánea (CPU de alta velocidad de reloj (GHz), muchos núcleos)

Selección de RAM

Para un servidor independiente (la mejor configuración para Magento), la regla aquí es 2 GB de RAM / CPU Core. Entonces, si tiene 8 núcleos, entonces 16 GB de RAM debería ser el mínimo.

Para calcular lo que necesita además de esto, debe tener en cuenta el tamaño de su catálogo. Hacer esto es fácil, multiplique su número de visitas a la tienda por el tamaño total del catálogo.

P.ej. En su caso, 1 vista de tienda * 10,000 productos = 10,000

Nuestra recomendación es

<1,000    = 8GB   RAM
<50,000   = 16GB  RAM
<100,000  = 32GB  RAM
<100,000  = 32GB  RAM
<250,000  = 48GB  RAM
<500,000  = 64GB  RAM
<750,000  = 96GB  RAM
>999,999  = 128GB RAM   

Desea tomar el mayor de los dos números (es decir, de la CPU Core: relación de RAM y los requisitos del catálogo), o una combinación sensata de los dos.

Selección de HDD

Dejemos algo en claro, para la tienda promedio de Magento (es decir, <50k visitantes únicos / día), Magento no está sujeto a E / S ; los SSD no harán que su tienda Magento sea más rápida; no mejorará la concurrencia y no mejorará TTFB. Del mismo modo, el uso de niveles RAID rayados (por ejemplo, RAID10) tampoco proporcionará ninguna ventaja (ya que casi todos los archivos en el disco serán más pequeños que el tamaño de la banda de todos modos, por lo que solo se usará un solo disco).

El único momento de almacenamiento es un cuello de botella en los servicios contendidos (es decir, en la nube / VPS).

Sin embargo, ciertamente existen ventajas para acelerar la E / S más allá de la operación de la tienda en sí. Con los SSD, las operaciones de archivo (por ejemplo, estado de Git / SVN, copia de seguridad / restauración, copia de directorios, etc.) son sustancialmente más rápidas. La vida de su desarrollador será sustancialmente más fácil (con tareas de rutina mucho más rápidas).

También tenga en cuenta que no todas las unidades de disco son iguales.

  • Los SSD baratos / de grado de escritorio funcionarán más lentamente que los HDD convencionales
  • Los HDD baratos / de escritorio tendrán un rendimiento más lento que los HDD empresariales
  • Los HDD baratos / de escritorio tendrán tasas de NRE bajas (generalmente 10 ^ 14) en comparación con los discos empresariales (generalmente 10 ^ 16)

Así que asegúrese de elegir realmente las unidades de disco que merecen estar en un servidor, es decir. Intel DC S3700.

La capacidad de selección es fácil, solo necesita dos comandos,

Para la raíz del documento Magento

cd /path/to/magento/installation 
du -hsL . \
--exclude="/var/log" \
--exclude="/var/session" \
--exclude="/var/cache" \
--exclude="/var/full_page_cache" \
--exclude="/var/report" \
--exclude="/var/tmp" \
--exclude="/includes/src/"    

Para la base de datos MySQL

SELECT 
IFNULL(B.engine,'Total') "Storage Engine", CONCAT(LPAD(REPLACE(FORMAT(B.DSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Data Size", CONCAT(LPAD(REPLACE(FORMAT(B.ISize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Index Size", CONCAT(LPAD(REPLACE(FORMAT(B.TSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Table Size" FROM (SELECT engine,SUM(data_length) DSize,SUM(index_length) ISize,SUM(data_length+index_length) TSize 
FROM information_schema.tables 
  WHERE table_schema NOT IN ('mysql','information_schema','performance_schema') 
  AND engine IS NOT NULL 
GROUP BY engine 
WITH ROLLUP) B,(SELECT 3 pw) A 
ORDER BY TSize;

.

A quien elegir

Bueno, eso depende de ti. No puedo dar una recomendación [aunque sería obvio :)], pero ciertamente puedes formarte tu propia opinión,

  1. Si tienen el hardware para cumplir con sus requisitos mínimos
  2. Si tienen una sólida herencia / reputación en Magento (es decir, participar en sitios como este y demostrar experiencia en el mundo real)
  3. Si pueden proporcionar una demostración de su tienda, en su alojamiento (es decir, para que pueda ver exactamente cómo funciona)
  4. Si pueden responder a todas y cada una de sus preguntas relacionadas con Magento (es decir, intente probarlas con las preguntas que ha tenido en el pasado y vea cómo responden)
  5. Si su precio coincide con su presupuesto
  6. Asegúrese de que su soporte coincida con sus expectativas (es decir, ¿está dispuesto a hacer toda la diligencia debida usted mismo antes de ponerse en contacto con el soporte, o tiene la expectativa de que puedan depurar sus problemas de Magento en su nombre)
  7. Asegúrese de que el alcance de los trabajos incluidos coincida con sus necesidades (es decir, totalmente administrado, metal desnudo, etc.)
  8. Si la solución es escalable (es decir, es una plataforma de servidor único, ¿puede escalarse para ser una solución de servidor múltiple?).
  9. Si la solución presenta todo el software que necesita para su tienda Magento (por ejemplo, ElasticSearch / Sphinx / SOLR, Redis / Memcache, Varnish, etc.)

Hay algo que agregar aquí, obtendrá dos tipos de hosts

  • Gestionado (por ejemplo, donde el servidor está completamente configurado y cuidado)
  • No administrado (por ejemplo, donde configura el servidor completo usted mismo)

Lo que sea más apropiado para usted realmente depende de cuál sea su conjunto de habilidades. En mi sincera opinión, los desarrolladores no son administradores de sistemas, solo porque puedes ejecutarlos apt-get install nginx, no te convierte en un administrador de sistemas experimentado. De lo contrario, cualquier propietario de una tienda que pueda usar Magento Connect podría clasificarse como desarrollador.

Comprender su rol (y limitaciones) como desarrollador y dejar que alguien con la experiencia adecuada en la administración del servidor tenga un valor extremo. Cualquiera puede instalar una serie de paquetes, pero ajustar la configuración del software para garantizar que sea estable, libre de errores, seguro y de alto rendimiento es algo completamente diferente.

Solo recomendaría toda la ruta de bricolaje a las personas que tienen una gran cantidad de experiencia en la configuración del servidor Magento, que han implementado miles de servidores antes, con configuraciones probadas y estables conocidas. De lo contrario, vaya con un host Magento administrado que sepa lo que está haciendo y le permita hacer su trabajo sin interrupciones.


Fuentes:

Ben Lessani - Sonassi
fuente