AWS上に2ノードのカフカクラスタを設定し、現在そのパフォーマンス属性をテスト中です。Kafkaコンシューマディスクから読み取るキャッシュキャッシュ
私はkafka-consumer-perf-test.shを使用して、カフカのトピックから1つのスレッドを使って5千万のメッセージを読みました。
私は消費者のスループットをテストしながら次のことを観察しました。
観察1
m4.large EC2インスタンス上の単一の消費者 - 3つの別々m4.large EC2インスタンス上のスループット40.2メガバイト/秒
を読む三消費者 - 個々のスループットを読む - 40.25メガバイト/秒である。
ませディスクは読まないか、書き込みが(2つのEBSボリュームに裏打ちされた2つの別々m4.2xlarge EC2インスタンス上で実行されている)カフカブローカー側に報告された
私はいくつかの時間後に再度ツールを実行しました。
観察2
三3つの別々m4.large EC2インスタンス上の消費者 - 34.25メガバイト/秒 - 個々のスループットが低下したに読みます。
この場合、私はKafkaブローカーノードでかなりの割合のディスク読み取りを観察しました。
私が次のことを明確にするのに役立つと感謝します。
私はディスクの読み取りを観察しなかったので、メモリからすべてのデータを取得できましたか(キャッシュされている場所)?
観測2では、ディスクの読み取りによってパフォーマンスが低下すると想定しています。ディスクから読み込んだにもかかわらず、まだ十分な空きメモリがnmonのレポートで明らかになっています。
消費者がメモリではなくディスクから読み込む理由は何でしょうか?生産者が生産したデータがキャッシュに滞留する時間はどれくらいですか?
- 最大40MB/sの読み取りスループットは、m4.large EC2インスタンスのネットワーク帯域幅の制限によるものとします。この仮定は正しいですか?
ありがとうございます。