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
- ¿Versión de Magento?
- ¿Número de productos simples en catálogo?
- ¿Número de categorías en el catálogo?
- ¿Número de atributos en el catálogo?
- ¿Número de conjuntos de atributos en el catálogo?
- ¿Número de visitas a la tienda Magento (Admin> Sistema> Administrar tiendas)?
- ¿Transacciones por día?
- ¿Transacciones pico en una sola hora?
Tráfico y ancho de banda
- ¿Cuál es el nivel de visitantes únicos diarios?
- ¿Cuál es el pico más alto en una sola hora de visitantes únicos?
- ¿Número de visitas a la página por visitante?
- ¿De qué país son principalmente los visitantes?
- ¿Anticipa el crecimiento del tráfico del sitio en los próximos 12 meses, en caso afirmativo, en cuánto?
- ¿Opera campañas / boletines de alto tráfico (que tienen una captación significativa) de forma regular?
- ¿Su sitio ofrece descargas digitales?
- Uso actual de ancho de banda?
- ¿Requiere un servicio de filtrado dDOS?
Requisitos de hardware
- ¿Uso actual del espacio en disco?
- ¿Requiere almacenamiento de registros a largo plazo (conformidad con PCI-DSS)?
- ¿Requiere almacenamiento de respaldo fuera del sitio?
- ¿Necesita ejecutar algún software especializado / alternativo en el servidor?
- ¿Sus regulaciones de cumplimiento de PCI dictan el uso de un firewall de hardware?
- ¿Necesita una solución tolerante a fallas, altamente disponible o con equilibrio de carga?
Etapa / práctica de desarrollo
- ¿Necesita un entorno dedicado separado para la puesta en escena / desarrollo?
- ¿Requiere un entorno "Test Live" para que coincida con el entorno "Live" (para las pruebas finales previas al live)?
Presupuesto
- ¿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
- Correlacione directamente sus niveles de tráfico con los requisitos de su CPU
- Correlacione directamente sus requisitos de CPU con los requisitos de RAM
- 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,
- Si tienen el hardware para cumplir con sus requisitos mínimos
- Si tienen una sólida herencia / reputación en Magento (es decir, participar en sitios como este y demostrar experiencia en el mundo real)
- Si pueden proporcionar una demostración de su tienda, en su alojamiento (es decir, para que pueda ver exactamente cómo funciona)
- 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)
- Si su precio coincide con su presupuesto
- 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)
- Asegúrese de que el alcance de los trabajos incluidos coincida con sus necesidades (es decir, totalmente administrado, metal desnudo, etc.)
- 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?).
- 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: