Realización de la estimación de capacidad para Kafka Cluster

¿Cuántos corredores deberíamos tener? ¿Cuál es el tamaño de ram ideal? ¿Deberíamos usar RAID o SSD? Nos encontramos con preguntas como esta al configurar e implementar un clúster de Kafka.

En este artículo, cubriremos brevemente sobre la estimación y planificación de la capacidad de Kafka. Tenga en cuenta que este es un consejo subjetivo y debe ajustarlo de acuerdo con sus necesidades.

Esta estimación asume un grupo de Kafka con 3 intermediarios y 3 cuidadores del zoológico en un grupo.

Para hacer una estimación, asumimos que nuestro clúster debería manejar 1 millón de mensajes por minuto.

UPC

Para ejecutar Zookeeper en producción, puede y debe utilizar una CPU de 2 núcleos o superior. Debe tener habilitado el soporte de hyperthreading.

Para ejecutar Kafka Broker en producción, debe utilizar servidores multinúcleo como CPU de 12 núcleos o superior. Debe tener habilitado el soporte de hyperthreading.

RAM

Para ejecutar Zookeeper en producción, debe usar la RAM entre 16-24 GB. Personalmente, siento que Zookeeper consume mucha memoria y tener suficiente RAM es una prioridad.

Para ejecutar Kafka en producción, debe usar alrededor de 24-32 GB. Usamos 36 Gigas de RAM y nuestro uso nunca supera el 60%.

Disco

El tamaño del disco de Zookeeper puede oscilar entre 500 GB y 1 TB. Utilizo 500GB de espacio y funciona bastante bien.

Para los corredores de Kafka, puede hacer el cálculo del disco en función de su período de retención. Por ejemplo:

Suponiendo que usaremos una partición y replicaremos el tema en 3 nodos. Aquí está la planificación de capacidad de muestra.

Período de retención: 2 semanas.

Suponiendo 100 mensajes por segundo.

Luego 6000 mensajes por minuto y 360000 por hora.

Suponiendo que cada mensaje tiene un tamaño de 1 kb, entonces necesitamos 360000 kb o 360 MB de almacenamiento por hora.

Suponiendo una retención de 2 semanas, será de alrededor de 120960 MB por 2 semanas, es decir, 120,96 GB de almacenamiento por 2 semanas.

No es necesario utilizar un disco SSD, ya que la mayoría de los registros están en la memoria y se escriben en el disco periódicamente. EXT también es una buena opción.

Tamaño del montón de JVM

Asegúrese de asignar al menos 6-8 GB de RAM al montón de JVM. Este es uno de los graves errores que comete la mayoría de nosotros. Dale a JVM un buen montón.

En un sistema operativo, debe aumentar el límite del descriptor de archivo a cualquier lugar entre 100K-150K. Esto ayuda a aumentar el rendimiento de Kafka.

Este artículo es parte de una serie, consulte otros artículos aquí:

1: Qué es Kafka
2: Configuración de Zookeeper Cluster para Kafka en AWS EC2
3: Configuración de Multi-Broker Kafka en AWS EC2
4: Configuración de la autenticación en el clúster de Multi-Broker Kafka en AWS EC2
5: Configuración de la administración de Kafka para el clúster de Kafka
6: Estimación de capacidad para Kafka Cluster en producción
7: Prueba de rendimiento Kafka Cluster

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *