You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@kafka.apache.org by Gerard Ryan <ge...@redhat.com> on 2021/05/11 17:20:18 UTC

Trying to understand the quota mechanism better

Hi!

I've been using the ./bin/kafka-producer-perf-test.sh script to
experiment with the quota settings to try to understand them better.

With the following command, I'm producing one single-byte record per
second, and forcing each produce request to only have one record:

./bin/kafka-producer-perf-test.sh --producer.config producer.kafka --
topic test --throughput 1 --record-size 1 --num-records 100 --producer-
props batch.size=1

When I inspect the produce requests in Wireshark, it says that they're
version 8 produce requests, and their length is 119 bytes.

Now, when I run the same command with different produce quota values on
the broker, I can still sometimes see a non-zero throttle time (which I
guess indicates that quota the quota mechanism was activated and
decided that throttling was needed), until I set the quota to 131 or
greater.

Is my understanding correct that it's the size of the produce request
that the quota mechanism acts on? Is there anything else being
accounted for? Or could the fact that I still see throttling be caused
by the fact that the throughput rate is approximate?

I also notice that the first produce request always seems to contain 2
records, even though the batch.size is set to 1 (even when set to 0).
Could that be related?  Subsequent produce requests all contain the
expected single record.

Thanks for any advice or insights you can provide,

Gerard.