我試圖確定在AWS上的示例Kafka集羣設置中可以實現的最大吞吐量。我在兩個EC2實例上配置了2個Kafka代理,並試圖使用ProducerPerformance Tool來監控吞吐量,如下所示。Kafka ProducerPerformance工具中的吞吐量參數
./bin/kafka-run-class.sh org.apache.kafka.tools.ProducerPerformance --throughput = 10000 - topic = TOPIC - num-records = 50000000 --record-size = 200 - producer-props bootstrap.servers = SERVERS buffer.memory = 67108864 batch.size = 64000
如果你能幫我澄清下面的問題,我將不勝感激。
- 吞吐量參數是什麼意思?
在文檔,我發現這個 信息 - 節氣門最大消息吞吐量大約 THROUGHPUT消息/秒
但我還注意到,-1作爲參數這個--throughput通過。 (例如這裏 - https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines)
- 當我們運行該腳本時,我們得到了一些輸出例如821,557記錄/秒(78.3 MB /秒)的示例輸出。這個值如何與我們之前設置的吞吐量參數相關聯?
謝謝。
感謝您的及時回覆。那麼,假設上面的腳本給出了給定硬件配置下的最大吞吐量,但是爲了簡單起見,如果我們忘記了批量大小和壓縮消息等,是否正確?假設只有一個生產者和一個消費者存在,我們如何才能找到給定硬件所能達到的最大吞吐量? –
理論上,單臺機器上客戶的TPS不會超過帶寬。如果性能結果遠低於帶寬,還有改進的餘地。 – amethystic
正如我對吞吐量的理解一樣,我們可以得到單個生產者爲經紀人生成記錄的最大速率,而無需限制。現在爲吞吐量參數設置一個值(例如:10000)有什麼好處?這不正是我們打算通過運行perf工具找到的值嗎? –