En BigData y aplicaciones «On Streaming» se está dando mucha importancia al uso de memoria RAM, ya que podemos encontrar servidores con hasta 244GB de memoria para tan solo mantener un servicio activo. En esta entrada veremos como el sistema hace uso de la RAM de manera que puedas calcular de forma mas exacta los recursos necesarios.
En entradas anteriores ya vimos algo sobre la JVM, muy típica en aplicaciones BigData (Hadoop, Kafka, Spark, Zookeeper y un largo etc…):
- Liberar memoria RAM caché
- Parámetros Java Virtual Machine
- Monitorizar procesos JAVA con Jconsole (parte 1)
- Monitorizar procesos JAVA con Jconsole (parte 2)
- Monitorizar procesos JAVA con Jconsole (parte 3)
En esta ocasión os voy a ilustrar con una imagen, ya que está vale mas que mil palabras, y además, tiene texto… jeje.
Existe mucha controversia a la hora de iniciar procesos en una máquina y saber si tuvo, tiene o tendrá suficientes recursos para computar, y mas si se trata de áreas de memoria RAM que a veces, o bien desconocemos o ignoramos por completo.
Sin más, ahí va:
En definitiva… cuando vayáis a desplegar una aplicación y en la documentación oficial encontréis que esta utiliza memoria RAM caché, estimar que además de la RAM que necesita para operar con normalidad, necesitará su correspondiente caché y que lo mejor es que ambas no se pisen. Dos grandes monstruos del BigData que hacen uso de esta memoria son Druid y ElasticSearch.