Siguiendo con la serie de posts sobre Kafka, hoy veremos cómo mejorar el rendimiento con la modificación de algunos parámetros de configuración:

  1. ¿Qué es Apache Kafka?
  2. Cómo instalar y configurar el Oracle Java Development Kit.
  3. Cómo instalar y configurar en modo clúster el Apache Zookeeper.
  4. Cómo instalar y configurar en modo clúster el Apache Kafka.
  5. Operaciones habituales en Apache Zookeeper.
  6. Operaciones habituales en Apache Kafka.
  7. Cómo monitorizar Zookeeper desde el PRTG.
  8. Cómo monitorizar Apache Kafka con el PRTG.
  9. Mejoras de rendiemiento en Apache Kafka y valores óptimos de los sensores.
  10. Problemas frecuentes en la instalación, configuración y uso de un clúster Kafka.

Todos los ficheros de configuración de esta serie de posts estan publicados en gitlab.

Os paso algunos cambios a realizar en el sistema operativo a fin de mejorar el performance de Kafka, junto con un listado de las alarmas que deberíamos controlar. Si hemos usado la clase que hicimos en este post los valores ya los tenemos, de lo contrario, podemos monitorizarlos con el sistema de nuestra elección, ya que los nombre de los objetos JMX no varían, evidentemente, de una instalación a otra.

Cambios en el sistema operativo

Java Heap Size

Para evitar swapping, el JHS debe ser menor a la cantidad de memoria RAM disponible en el sistema.

Configurar vm.swappiness=1

Por defecto este valor es de 60, como se puede ver en la siguiente imagen.

2016-11-15_13h29_38.png
 

Para modificar este valor, se debe hacer de la siguiente forma.

sudo bash -c "echo 'vm.swappiness = 1' >> /etc/sysctl.conf"

Y para que sea permanente

sudo sysctl -p

Reiniciamos y listo. Hay que tener en cuenta que para modificar estos valores hay que  reiniciar el servidor, por lo tanto, ya que tenemos un clúster, hagamos los cambios de forma controlada, de servidor en servidor. El la instalación que hicimos en este post, los servidores eran ubnsrv01, ubnsrv02 y ubnsrv03.

Alarmas en los sensores del PRTG

Network bandwith usage

Configurado sobre las interfícies de red que se usen para kafka. Los valores a monitorizar podrían ser:

Normal : 0%-70%
Warning : 70% - 80 %
Error : > 80%

Free disk

Configurado sobre /data y sobre /. Los valores correctos podrían ser los siguientes.

Normal : > 25%
Warning : 25% - 10 %
Error : < 10%

Memory used

Normal : < 75%
Warning : 75% - 90 %
Error : > 90%

Channel : kafka.server.Status.Online

Este valor debe ser 1. De lo contrario, debe saltar una alarma. Nos indica si el servidor está o no Online. No es propio del Kafka, se genero desde la clase de  comprobación  KafkaMonitor creada en este post. Valores :

Normal : 1
Error : 0

Channel : kafka.server.UnderReplicatedPartitions.ReplicaManager.Value

Este valor debe ser 0. De lo contrario, debe saltar una alarma. Nos indica si hay particiones por replicar o no. Para funcionar correctamente y no perder datos todas las particiones deberían estar correctamente replicadas.

Normal : 0
Error : > 0

Channel : kafka.controller.OfflinePartitionsCount.KafkaController.Value

Este valor debe ser 0. Nos indica el número de particiones sin un leader activo, por lo tanto, no se pueden ni leer ni escribir.

Normal : 0
Error : > 0

Channel : kafka.controller.ActiveControllerCount.KafkaController.Value

El valor correcto es 1. Todo lo demás debe dar error.

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s