Hi,

I’m trying to understand the behavior flink auto-tuning.
I wrote a simple pipeline that reads from kafka and stores events in a state 
that keeps growing. The pipeline is not busy, it has a low input rate, the only 
problem is with the memory.

I see that initially, flink-kubernetes-operator configures the pipeline memory 
as follows:

2024-08-15 06:36:51,059 o.a.f.k.o.l.AuditUtils         [INFO 
][nwdaf-edge/pipeline-mece-ip-session] >>> Event  | Info    | SPECCHANGED     | 
UPGRADE change(s) detected (Diff: FlinkDeployment
Spec[taskManager.resource.memory : 1g -> 775639740, 
flinkConfiguration.taskmanager.memory.jvm-metaspace.size : null -> 127315831 
bytes, flinkConfiguration.pipeline.jobvertex-parallelism-over
rides : null -> 
9f09ef6ac7374093337e9834d0187fdd:2,ec567f3cb83b94e2e606155604dd608f:2,09b5b5f6bcf99a2d0b90160db0a18af0:2,9940eb4ca57add3596d0bc686a58cd2e:2,95c07c0f4a30d6ba565d4901b0ed9289:2
,10d9de4416be230c379396ba05a3261c:2,a6eb160f7f31aaa477e53b8363b2d263:2, 
flinkConfiguration.taskmanager.memory.task.heap.size : 80m -> null, 
flinkConfiguration.taskmanager.memory.process.size
: null -> 775639740 bytes, flinkConfiguration.taskmanager.memory.network.min : 
32m -> 76416 kb, flinkConfiguration.taskmanager.memory.network.max : 64m -> 
76416 kb, flinkConfiguration.taskm
anager.memory.jvm-overhead.fraction : null -> 0.26, 
flinkConfiguration.taskmanager.memory.managed.size : 50m -> null, 
flinkConfiguration.taskmanager.memory.framework.heap.size : null -> 0 by
tes, flinkConfiguration.taskmanager.memory.managed.fraction : null -> 0.0]), 
starting reconciliation.


However, I don’t see any change/update in the memory configuration later, after 
the state grows.
Is it something that is supposed to be handled?
Is the flink-kubernetes-operator expected to update the memory configurations, 
even if the pipeline does not appear as “busy”?
Does anyone have an example of a case where the memory configuration changes 
over time?

Thanks,
Ifat

Reply via email to