Más RAM frente a más servidores

9

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.


fuente
3
¿Puedo tener ambas, por favor?
Dirk Eddelbuettel
1
Más RAM en cada instancia que se me ocurre ... (excepto que el servidor está al máximo en RAM)
jcolebrand
3
Como con la mayoría de los thys sysadmin. La mejor respuesta, si es posible, es recopilar datos en un sistema de desarrollo o producción y luego tomar una decisión basada en los datos que ha recopilado.
Zoredache
La pregunta que está haciendo es si ampliar o reducir.
micmcg
La mayoría del software de minería de datos está diseñado para una computadora. por lo tanto más RAM. Si está utilizando Mahout o R-paralelo o lo que tenga, entonces más servidores. Alquilaría servidores Amazon AWS para experimentar y encontrar la mejor combinación de # servidores / ram.
Neil McGuigan

Respuestas:

8

"¿Sabes cuándo decidir entre buscar más RAM o más servidores?" (en el contexto de escalar aplicaciones de minería de datos).

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.

Jim B
fuente
No, todavía es vudú, ¡pero eres un médico brujo! Más concretamente ... ¿cómo utiliza un neófito esta respuesta para resolver su problema? ¿Cuáles son las métricas básicas que debe examinar y cómo sabe qué números son significativos? Get my point ...
tomjedrz
Esto me recuerda a la vieja broma del globo. officediversions.com/discover/modules/wfsection/…
tomjedrz
La respuesta de qué métricas básicas depende de qué sistema. La pregunta es tan genérica que es imposible dar una respuesta más específica que no sea lo básico (CPU, memoria, disco, etc. y monitores de aplicaciones). Dado el neófito hipotético, simplemente no pueden obtener una respuesta a este problema porque primero necesita saber cómo monitorear los servidores en cuestión, y esa sería una pregunta completamente separada
Jim B
5

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.

tomjedrz
fuente
5

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.

linux911
fuente
2

¿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.

Will Hartung
fuente
2

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 .

Oli
fuente
1

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
1

Algunas personas parecen pensar que agregar RAM es una solución mágica. Solo ayuda si la RAM es el cuello de botella.

Rob Moir
fuente
No es "mágico", pero es relativamente barato y es un buen primer intento la mayor parte del tiempo.
tomjedrz
1
@ tomjedrz: Un buen primer intento, excepto cuando no lo es. Es realmente muy simple: ¿estamos haciendo 'administración de sistemas como ciencia' y agregamos RAM a una máquina después de haber realizado pruebas y monitoreo de recursos que muestran que lo necesita, o estamos haciendo 'administración de sistemas como un culto religioso' y agregamos RAM a una máquina porque eso es lo que nos dicen los pergaminos religiosos ¿es la oración correcta por un servidor que es un poco lento? Personalmente prefiero el enfoque científico.
Rob Moir
0

Más RAM = más máquinas virtuales.

¡Entonces supongo que más RAM = más servidores!

JohnyD
fuente
1
Se requiere más máquina virtual, más iops, ram es solo uno de los muchos recursos para jugar.
Tony Roth