
Recientemente me preguntaron "¿Sabes cuándo decidir entre más RAM o más servidores?" (en el contexto de la ampliación de aplicaciones de minería de datos).
No tenía idea, entonces, ¿cuáles son algunas formas de decidir? Tengo muy pocos conocimientos sobre arquitectura y escalamiento (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.
Respuesta1
"¿Sabes cuándo decidir entre más RAM o más servidores?" (en el contexto de la ampliación de aplicaciones de minería de datos).
La respuesta es que tan pronto como me des las métricas del servidor en cuestión, te diré cuál (o si vale la pena agregar cualquiera de ellas). Este tipo de ajuste no es vudú (a menos que esté usando 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, utilizando las métricas de monitoreo, determine dónde está el cuello de botella en el rendimiento y agregue más.
Respuesta2
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 es aumentar primero la memoria hasta que ya no se pueda aumentar más.Ohasta que más memoria ya no mejore el rendimiento. Dado que la memoria es 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 agregar más servidores a un problema es bastante fácil de lograr. Pero también me aseguraría de que se hayan tomado otras vías, en particular 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 enormes mejoras en el rendimiento.
Busque en este sitio con su sistema operativo, base de datos y aplicación específicos y es posible que encuentre oro.
Respuesta3
Como arquitecto empresarial, me he ocupado de este problema casi a diario. ¿Escala vertical u horizontal?
¿Cuáles son tus necesidades?
¿Necesitas dar soporte a más usuarios? ¿Necesitas mejorar la velocidad del servicio? ¿Necesitas ambos? ¿Necesita alta disponibilidad 99,9999 o sus usuarios pueden sufrir 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á basada en una base de datos, optimícela con cachés de consultas y subprocesos, índices, etc. Si comparte un servidor con otras aplicaciones, explore la posibilidad de pasar a un servidor dedicado. (Busque la 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, alta E/S de disco: calcule el costo de agregar RAM, ¿puede cambiar a una E/S de disco más rápida (RAID, SATA en lugar de ATA)?
Si necesita alta disponibilidad, probablemente necesite agregar hardware y equilibrio de carga de todos modos.
¿Es más económico agregar actualizaciones de hardware o agregar nuevos servidores? ¿Cuál se ajusta a los objetivos y el crecimiento a largo plazo?
¿Cuándo es el mejor momento para que su departamento de TI gaste dinero? ¿Tiene fondos ahora o desea trasladar los gastos a otro trimestre/año? Si los fondos son un problema, optimice ahora o explore la posibilidad de 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 usted compre una solución de almacenamiento SAN con equilibrio de carga en la que un nuevo servidor con iSCSI RAID 10 incorporado 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 necesita reemplazar el hardware o agregar almacenamiento en red/soluciones de almacenamiento adjunto.
Capture métricas de rendimiento. Optimizar, mejorar y capturar métricas nuevamente. Siga documentando los aumentos/disminuciones del rendimiento para que pueda entregar un informe que documente cuánto gastó y cuánta ganancia de rendimiento resultó. Este es el tipo de posibles historias de éxito que convierten a los administradores en arquitectos, a los arquitectos en gerentes de proyectos y a los PM en alta gerencia cuando se hacen bien.
Respuesta4
La RAM es barata. Siempre debes subir eso primero hasta el punto en que tengas la cantidad más económica (por ejemplo, los DIMM de 4 GB son prohibitivamente caros, por lo que no me molestaría en comprarlos).
Luego explore la ampliación 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,hacer un google.