Tipo de Hardware utilizado para formar un cluster de nodos de Elasticsearch

Elasticsearch

Este artículo es un resumen de la documentación oficial de Elasticsearch. Lo que pretendemos reflejar en este artículo es una guía rápida de requisitos Hardware que debemos considerar cuando creamos un Cluster de nodos de elasticsearch.

Memoria RAM.

  • 64GB es ideal
  • 32GB y 16GB suele ser bastante común
  • Menos de 8GB o más de 64GB no es aconsejable

Memoria cache del sistema de ficheros

Los indices de Elasticsearch son indices de Lucene. Lo que significa que si aportamos más memoria al SO destinada a la cache del sistema de ficheros lograremos mejorar el rendimiento de elasticsearch.

  • Destinar memoria cache al sistema de ficheros

CPU Cores

Es recomendable un nodo con más Cores frente a menos Cores pero más rápidas. Es decir más Cores es mejor, ya que aumentamos la capacidad de concurrencia del nodo.

  • Entre 2 a 8 cores es lo más habitual.

Disco

  • Se desaconseja el uso de NAS (network-attached storage), es decir el uso de un sistema de ficheros compartido entre varios equipos.
  • Mejor discos sólidos o SSD frente a los tradicionales discos duros o HDD. Dan mejor rendimiento en escrituras y lecturas.
  • Raid 0 mejora la velocidad de acceso del disco.

Red

  • Ancho de banda de 1Gb a 10 Gb es suficiente para la mayoría de los Clusters.
  • Evitar redes con gran latencia ya que terminan ocasionando problemas.
  • Los nodos de un Cluster deben estar próximos y en el mismo Data Center
Anuncios

iftop. Análisis y monitorización del tráfico de red

iftop

En los sistemas unix existen diversos comandos de monitorización y análisis del tráfico de red que nos ayudan a analizar en un momento determinado el estado de nuestra red y el tráfico generado por nuestras aplicaciones. Algunos de estos comandos son los siguientes:

  • iftop
  • iptraf
  • nethogs
  • bmon
  • tcptrack
  • vnstat
  • bwm-ng
  • pktstat
  • trafshow

Muchos de ellos analizan y presentan la misma información utilizando distintos formatos, por lo que al final terminaremos utilizando casi siempre los mismos comandos. Mencionar que estos comandos son especialmente útiles en momento puntuales, ya que habitualmente existen herramientas más completas y con una interface gráfica mas sencilla de manejar. La última vez que utilizamos este comando iftop (entre otros) fue para detectar una vulnerabilidad o exploit en un VPS (Virtual private Server) donde comenzamos a notar lentitud en las conexiones ssh y un aumento significativo del tráfico de red.

Sigue leyendo

Netty, el framework para crear aplicaciones cliente y servidor asíncronas conducidas por eventos

Netty

Es un framework java que nos permite crear aplicaciones cliente y servidor aprovechando las posibilidades que nos da el paquete de java.nio de la JDK. Este paquete permite realizar operaciones I/O de forma no bloqueante. Conseguiremos desarrollar aplicaciones cliente y servidor con los mismos conceptos que nodejs, pero con una arquitectura diferente.

Sigue leyendo