es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuándo limpiará flink el estado inactivo en flink cep sql?

Estoy utilizando flink cep sql con el planificador blink.
Aquí está mi SQL:

select * from test_table match_recognize (
  partition by agent_id,room_id,call_type 
  order by row_time // process time
  measures
    last(BF.create_time) as create_time,
    last(AF.connect_time) as connect_time
  one row per match after match SKIP PAST LAST ROW 
  pattern (BF+ AF) WITHIN INTERVAL '10' SECOND
  define
    BF as BF.connect_time = 0,
    AF as AF.connect_time > 0
) as T ;

La tabla de prueba es una tabla de kafka.

He configurado table.exec.state.ttl=10000 y ejecuto mi programa, luego sigo enviando mensajes.

Dado que he configurado un tiempo de vida de estado (state ttl) y un intervalo de cep de 10 segundos, el tamaño del estado debería ser un número fijo después de 10 segundos desde que lo inicié.

Pero el estado sigue creciendo durante al menos 15 minutos. Además, la JVM activó dos veces una recolección completa de basura (full GC).

¿Hay alguna configuración que no haya configurado?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Basándonos en la información y la captura de pantalla proporcionada, es difícil determinar si hay alguna configuración específica que no se haya configurado. Sin embargo, es posible que existan otras configuraciones que podrían afectar el tamaño del estado y el uso de la memoria.

    Aquí hay algunas sugerencias que pueden ayudar a investigar e identificar configuraciones potenciales que podrían estar afectando el tamaño del estado y el uso de la memoria:

    1. Verifique la configuración del conector Kafka utilizado para la tabla de prueba, ya que esto podría afectar potencialmente el tamaño del estado y el uso de la memoria.

    2. Revise cualquier otra configuración relacionada con la retención y limpieza del estado, y asegúrese de que estén correctamente configuradas según la documentación de Flink.

    3. Considere aumentar el tamaño del montón de JVM o ajustar otras configuraciones de JVM, ya que esto podría aliviar potencialmente parte de la presión de memoria y los eventos de recolección de basura (GC).

    4. Busque posibles fugas de memoria o ineficiencias en el propio código, especialmente en áreas relacionadas con la gestión del estado y el procesamiento de los datos de la tabla de prueba.

    5. Considere utilizar las herramientas integradas de monitoreo y perfilado de Flink, como las métricas del administrador de tareas y el perfilado de JVM, para obtener una mejor comprensión del rendimiento y el uso de recursos de su programa.

Comments are closed.