我在AWS上配置了兩個節點的Kafka集羣,目前正在測試其性能屬性。卡夫卡消費者從磁盤讀取緩存數據庫
我使用kafka-consumer-perf-test.sh從單個線程讀取來自Kafka主題的5000萬條消息。
我在測試消費者吞吐量時觀察到以下情況。
觀察1
上m4.large EC2實例單個消費者 - 讀吞吐量40.2MB /秒
3名消費者在三個獨立的m4.large EC2實例 - 個人讀取吞吐量 - 40.25MB /秒。
無磁盤讀取或寫入報告了卡夫卡代理端
(由2 EBS卷支持兩個單獨m4.2xlarge EC2實例中運行)我一段時間後再次運行該工具。
觀察2名
3名消費者在三個獨立的m4.large EC2實例 - 個人讀取吞吐量下降至 - 34.25MB /秒。
在這種情況下,我觀察到Kafka broker節點中磁盤讀取率相當高。
如果你能幫助我澄清以下內容,我將不勝感激。
在觀察1次,因爲我沒有觀察到任何磁盤讀取,可能所有的數據已經從存儲器中取出(它被緩存)?
在觀察2中,我假設由於磁盤讀取性能下降。雖然它從磁盤讀取,但仍然有足夠的可用內存可用,如nmon報告所示。
消費者從磁盤而不是內存讀取的原因是什麼?生產者生成的數據保留在緩存中多長時間?
- 我假設最大40MB/s的讀取吞吐量是由於m4.large EC2實例的網絡帶寬限制所致。這個假設是否正確?
謝謝。