Recientemente me preguntaron "¿Sabes cuándo decidir entre buscar más RAM o más servidores?" (en el contexto de escalar aplicaciones de minería de datos).
No tenía idea, entonces, ¿cuáles son algunas formas de decidir? Tengo muy poco conocimiento de arquitectura y escalado (mi comprensión de la memoria de la computadora y lo que hace un servidor se limita a los conceptos básicos de alto nivel), por lo que los consejos para aprender más sobre estas cosas en general también son bienvenidos.
Respuestas:
La respuesta es que tan pronto como me proporcione las métricas para el servidor en cuestión, le diré cuál (o si vale la pena agregar). Este tipo de ajuste no es vudú (a menos que esté utilizando aplicaciones sin instrumentación y sistemas operativos de servidor sin instrumentación, entonces sí es vudú) es ciencia. Mida la aplicación y el servidor. En pocas palabras, el uso de las métricas de monitoreo determina dónde está el cuello de botella de rendimiento y agrega más.
fuente
Generalmente hay bastante vudú (o al menos prueba y error) en la mejora del rendimiento del servidor / aplicación.
La regla general para la pregunta específica que se hace es primero aumentar la memoria hasta que ya no se pueda aumentar O hasta que más memoria ya no mejore el rendimiento. Con una memoria relativamente barata, puede ser más sencillo simplemente maximizar la memoria. Además, si la aplicación requiere mucho disco, la actualización a unidades de alta velocidad o controladores de alto rendimiento puede marcar la diferencia.
Sin embargo, la naturaleza muy general de la pregunta me lleva a pensar que no ha habido otros intentos de mejorar el rendimiento. Estoy de acuerdo en que el hardware es barato, por lo que incluso lanzar más servidores a un problema es bastante fácil de lograr. Pero también me aseguraría de que se hayan hecho otras vías, particularmente el ajuste del sistema operativo y la base de datos. A veces, pequeños ajustes en la base de datos, el sistema operativo o incluso la configuración de la aplicación pueden generar grandes mejoras en el rendimiento.
Busque en este sitio con su sistema operativo, base de datos y aplicación específicos, y bien podría obtener el oro.
fuente
Como arquitecto empresarial, he tratado este problema casi a diario. ¿Escalado vertical u horizontal?
Cuales son tus necesidades?
¿Necesitas soportar más usuarios? ¿Necesitas mejorar la velocidad del servicio? ¿Necesitas ambos? ¿Necesita alta disponibilidad 99.9999 o pueden sus usuarios tomarse un tiempo de inactividad?
Para comenzar, necesita capturar métricas de rendimiento en el sistema actual. Número de usuarios activos, cargas de RAM y CPU, E / S de disco: descubra dónde están sus cuellos de botella.
Posibles soluciones basadas en problemas: comience con la optimización de los recursos actuales. Si su aplicación está impulsada por una base de datos, optimice la base de datos con consultas y cachés de subprocesos, índices, etc. Si comparte un servidor con otras aplicaciones, explore la posibilidad de pasar a un servidor dedicado. (Busque virtualización para aplicaciones menos activas / críticas para liberar recursos dedicados).
las máquinas actuales están a plena capacidad, RAM y CPU muy cargadas, E / S de disco altas: calcule el costo para agregar RAM, ¿puede cambiar a una E / S de disco más rápida (RAID, SATA en lugar de ATA)?
Si necesita alta disponibilidad, entonces probablemente necesite agregar hardware y equilibrio de carga de todos modos.
¿Es más barato agregar actualizaciones de hardware o agregar nuevos servidores? ¿Qué se ajusta a los objetivos y el crecimiento a largo plazo?
¿Cuándo es el mejor momento de su departamento de TI para gastar dinero? ¿Tiene fondos ahora o quiere cambiar los gastos a otro trimestre / año? Si los fondos son un problema, optimice ahora o explore liberar hardware de otras aplicaciones para agregar una solución de equilibrio de carga temporal.
No tenga miedo de explorar numerosas soluciones. Es posible que los proveedores quieran que compre una solución centrada en el almacenamiento SAN con carga equilibrada donde un nuevo servidor con iSCSI RAID 10 a bordo funcionará por el 10 por ciento del costo.
Si su CPU todavía está muy cargada después de la optimización, entonces necesita agregar / reemplazar hardware. Si la E / S de su disco es el cuello de botella y no puede actualizar la tecnología de almacenamiento, entonces debe reemplazar el hardware o agregar soluciones de almacenamiento de red / almacenamiento conectado.
Captura métricas de rendimiento. Optimice, mejore y capture métricas nuevamente. Siga documentando los aumentos / disminuciones del rendimiento para que pueda entregar un informe que documente cuánto gastó y cuánto resultó en el aumento del rendimiento. Este es el tipo de historias de éxito posibles que convierten a los administradores en arquitectos, arquitectos en gerentes de proyectos y PMs en la alta gerencia cuando se hace correctamente.
fuente
¿Estás buscando? ¿Vas a usar la RAM para almacenar en caché el disco? ¿Estás vinculado a la CPU con RAM libre?
Si está buscando y / o puede usar la RAM para almacenar en caché, obtenga más RAM. Si no encuentra presión de RAM, entonces es otra cosa.
fuente
La RAM es barata. Siempre debe hacerlo primero hasta el punto en que tenga la cantidad más económica (por ejemplo, los DIMM de 4 gb son prohibitivamente caros, por lo que no me molestaría con ellos).
Luego explore la escala lateral (más servidores). Considere hardware de consumo barato frente a piezas de servidor costosas, pero espere fallas y cree estimaciones de conmutación por error en su capacidad de procesamiento total.
Básicamente, haz un Google .
fuente
Qué sistema operativo está utilizando, cuánta RAM admite y cuánta RAM tiene también son preguntas que debe hacer. Si estás en el límite de un sistema operativo de 32 bits, comprar más RAM no te servirá de nada. Si está utilizando Windows, ciertas SKU están limitadas a ciertas cantidades de RAM que no están exactamente relacionadas con el límite de 32 bits.
fuente
Algunas personas parecen pensar que agregar RAM es una solución mágica. Solo ayuda si la RAM es el cuello de botella.
fuente
Más RAM = más máquinas virtuales.
¡Entonces supongo que más RAM = más servidores!
fuente