Uploaded image for project: 'Apache Storm'
  1. Apache Storm
  2. STORM-1674

Idle KafkaSpout consumes more bandwidth than needed

    XMLWordPrintableJSON

Details

    Description

      Discovered 30 megabits of traffic flowing between a set of KafkaSpouts
      and our kafka servers even though no Kafka messages were moving.
      Using the wireshark kafka dissector, we were able to see that
      each FetchRequest had maxWait set to 10000
      and minBytes set to 0. When binBytes is set to 0 the kafka server
      responds immediately when there are no messages. In turn the KafkaSpout
      polls without any delay causing a constant stream of FetchRequest/
      FetchResponse messages. Using a non-KafkaSpout client had a similar
      traffic pattern with two key differences
      1) minBytes was 1
      2) maxWait was 100
      With these FetchRequest parameters and no messages flowing,
      the kafka server delays the FetchResponse by 100 ms. This reduces
      the network traffic from megabits to the low kilobits. It also
      reduced the CPU utilization of our kafka server from 140% to 2%.

      Attachments

        Activity

          People

            mr.robert.hastings@gmail.com Robert Hastings
            mr.robert.hastings@gmail.com Robert Hastings
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 10m
                10m