Hi Team,
Actually i am working on optimising pull query response time and while doing load testing i have observed below results w.r.t. respective configuration.
Below are Jmeter configs :-
jmeter.sh -JtargetConcurrency=100 -JrampUpTime=10 -JrampUpStepsCount=10 -JholdTargetRateTime=130 -JtargetThroughput=6000
-- ===================== Observation 1 ===============================
Configs :
ksql.streams.num.stream.threads=1
ksql.streams.cache.max.bytes.buffering=400000000 # it serves as a read cache to speed up reading data from a state store
ksql.streams.commit.interval.ms=1000 # For shorter intervals between updates
Result :
-- ===================== Observation 2 ===============================
Configs :
ksql.streams.num.stream.threads=5
ksql.streams.cache.max.bytes.buffering=400000000 # it serves as a read cache to speed up reading data from a state store
ksql.streams.commit.interval.ms=1000 # For shorter intervals between updates
Result :
-- ===================== Observation 3 ===============================
Configs :
ksql.streams.num.stream.threads=5
ksql.streams.cache.max.bytes.buffering=
2147483648 # it serves as a read cache to speed up reading data from a state store
ksql.streams.commit.interval.ms=1000 # For shorter intervals between updates
Result :
-- ===================== Observation 4 ===============================
Configs :
ksql.streams.num.stream.threads=1
ksql.streams.cache.max.bytes.buffering=800000000 # it serves as a read cache to speed up reading data from a state store
ksql.streams.commit.interval.ms=1000 # For shorter intervals between updates
Result :
Here i have 3 node KsqlDB cluster and i can see that memory and CPU both are under 25% utilisation. So i have 2 questions :-
1. May I know why increasing the value of "ksql.streams.num.stream.threads" is impacting pull query performance(Increasing response time) ?
2. How to reduce response time further i.e. 95th pct / 99th pct ?