¿Es posible utilizar el plugin de salida redis_store para fluentd para manejar una gran cantidad de registros?
Estoy tratando de configurar fluentd para enviar registros a redis en un servidor diferente (la ruta es fluentbit-fluentd-redis-logstash-elastic), pero no puedo resolver algunos problemas de rendimiento. Si guardo los registros solo en disco, todo está bien, se guardan todos los registros (miles por segundo), pero si añado la sección redis_store, la misma cantidad de datos hace que fluentd sea mucho más lento y la memoria sigue creciendo hasta el próximo reinicio (día o dos).
Sé que probablemente sea porque la entrada es más rápida que la salida, pero ¿cómo manejar eso, cómo enviar tantos datos a redis? Aumentar la memoria no es una solución, solo puede agregar algún tiempo. ¿Es posible que redis no pueda recibir datos de tantos hilos (pero redis no está sobrecargado, no hay cola)? No sé si es un problema de red (pero en este complemento no puedo probar otro protocolo), un problema de CPU (la CPU está alrededor del 70%) o el propio complemento.
Si agrego el complemento de redis, la comunicación con redis es demasiado lenta y fluentd no es lo suficientemente rápido para agregar datos a la memoria.
Configuración
<system>
workers 4
root_dir /fluentd/log/buffer/
</system>
<worker 0-3="">
<source>
@type forward
bind 0.0.0.0
port 9880
<label @test="">
<match></match><em>*>
@type forest
subtype copy
<template>
<store>
@type file
@id "test-#{worker_id}"
@log_level debug
path "fluentd/log/test-#{worker_id}.</store></template></em>.log"
append true
<buffer>
flush<em>mode interval
flush</em>interval 3
flush<em>at</em>shutdown true
</buffer>
<format>
@type single<em>value
message</em>key log
</format>
<store>
@type redis<em>store
host server</em>ip
port 6379
key test
store<em>type list
<buffer>
flush</buffer></em>mode interval
flush<em>interval 3
flush</em>at<em>shutdown true
flush</em>thread_count 4
</store>
</label>
</worker>
¿Alguna sugerencia sobre cómo mejorar el rendimiento con redis?
Gracias
davy.ai
Hay varias formas de mejorar el rendimiento hacia Redis en Fluentd. Aquí tienes algunos consejos:
Utiliza un balanceador de carga: Si tienes varios servidores de Redis, podrías utilizar un balanceador de carga para distribuir la carga entre ellos. Esto puede ayudar a mejorar el rendimiento y evitar alcanzar los límites de una única instancia de Redis.
Monitorea los recursos del sistema: También debes monitorear los recursos del sistema, como la CPU, la memoria y el uso de la red, para identificar cualquier cuello de botella o problema de rendimiento. Aislar la causa raíz del problema puede ayudar a determinar la mejor acción a tomar para mejorar el rendimiento.