un servidor de alta gama con una Aplicación de Servidor o varios Servidores de Aplicaciones?

StackOverflow https://stackoverflow.com/questions/2543578

  •  23-09-2019
  •  | 
  •  

Pregunta

Si tengo un servidor de gama alta, por ejemplo, con 1T de memoria y 8x4core de la CPU...

va a traer más rendimiento si puedo ejecutar varias Servidor de la Aplicación (en diferentes JVM) en lugar de sólo una Aplicación de Servidor?

En el Servidor de la Aplicación que voy a ejecutar algunos de los servicios (OREJA con message driven beans) que el intercambio de mensajes el uno con el otro.

por cierto, ha java de 64 bits ahora no hay limitación de memoria más?http://java.sun.com/products/hotspot/whitepaper.html#64

¿Fue útil?

Solución

  

va a traer más rendimiento si corro múltiples servidor de aplicaciones (en diferentes JVM) en lugar de un solo servidor de aplicaciones?

Hay varias cosas a tener en cuenta:

  • Un servidor de aplicación solo significa un único punto de fallo. Para muchas aplicaciones, esta no es una opción y el uso de la escala horizontal y vertical es una configuración común (es decir, varias máquinas virtuales por máquina y máquinas múltiples). Y la adición de más máquinas es obviamente más fácil / más barato si son pequeños.

  • Un gran montón toma más tiempo para llenar de modo se ejecuta la aplicación más largo antes de que ocurra una recolección de basura. Sin embargo, un montón más grande también tarda más en compacto y hace que la recolección de basura a tomar más tiempo. Dimensionamiento de la máquina virtual por lo general significa encontrar un buen compromiso entre la frecuencia y la duración (en otras palabras, no siempre se quiere dar tanta RAM como sea posible para una máquina virtual)

Por lo tanto, a mi experiencia, la ejecución de varias máquinas que alojan múltiples JVM es la opción habitual (y suele ser más barato que una enorme bestia y le da más flexibilidad).

Otros consejos

No es automáticamente un impacto en el rendimiento cuando se necesita hacer fuera del proceso de comunicación, así que la pregunta es si el servidor de aplicaciones no se escala lo suficientemente bien, por lo que puede pagar.

Como una regla básica de la JVM diseño permite el uso de cualquier número de CPU y cualquier cantidad de RAM que proporciona el sistema operativo.Los límites reales son específicos a la implementación de la JVM, y usted necesita leer las especificaciones muy cuidadosamente antes de elegir para ver si hay alguna límites relevantes para usted.

Dado que hay una JVM que puede utilizar el hardware, entonces usted necesita un servidor de aplicaciones que se pueden escalar de manera apropiada.Un cuello de botella común en estos días es la cantidad de peticiones web que pueden ser procesadas por segundo - un moderno servidor debe ser capaz de procesar 10000 peticiones por segundo (ver http://www.kegel.com/c10k.html), pero no todos lo hacen.

Así, en primer lugar identificar sus necesidades más apremiantes (conexiones por segundo?el uso de la memoria?ancho de banda de red?) y el uso que para identificar la mejor plataforma + jvm + servidor de aplicaciones combinación.Si usted tiene necesidades concretas, los vendedores suelen estar encantados de ayudarle a realizar una venta.

Lo más probable es que usted va a obtener mediante la ejecución de varias JVM con montones más pequeños en lugar de una única JVM grande. Hay un par de razones para esto:

  1. montones más pequeños significan más corto de basura colecciones

  2. Más JVM medios menor competencia para recursos internos dentro de JVM, tales como grupos de subprocesos y otro acceso sincronizado.

¿Cuántas JVM debe encajar en ese cuadro depende de lo que hace la aplicación. La mejor manera de determinar esto es la creación de una prueba de carga que simula carga de producción y observar cómo el número de solicitudes del mango del sistema lata crece con el número de máquinas virtuales de Java añadido. En algún momento se verá que la adición de más JVM no mejora el rendimiento. Ahí es donde se debe parar.

Sin embargo, hay otra consideración. Es mejor tener varias máquinas físicas en lugar de una sola caja grande y gordo. Esta es la fiabilidad. En caso de que esta caja de ir fuera de línea, por alguna razón, que se llevará con él todos los servidores de aplicaciones que se ejecutan dentro de él. La infraestructura se ejecuta muchas máquinas físicas independientes más pequeños va a ser menos afectados por el fallo de una sola máquina en comparación con una sola caja.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top