I now believe that Roshan is correct that the channel may be the place to look.
With tests using null sinks I had found that the channel was not much of a factor with 1.3, but now that I check 1.5 and 1.6 with null sinks, they still show the same pattern of performance degradation. The interesting thing is that I find similar performance hits both when using file channel AND when using memory channel. Looking forward to Johny's findings. From: Hari Shreedharan [mailto:[email protected]] Sent: Thursday, July 23, 2015 12:33 PM To: [email protected] Subject: Re: HDFS Sink performance This is interesting. I believe Johny is actually looking into this performance issue. Thanks, Hari On Thu, Jul 23, 2015 at 9:27 AM, lohit <[email protected]> wrote: Majority of messages need not be persisted to disk for us. So, we are interested in MemoryChannel. There has been gradual performance degradation from 1.3.1 -> 1.4.0 -> 1.6.0. See this graph below, were I have a constant stream of messages (blue line). While this is happening I swap different versions of flumes for agent. Orange line shows messages dropped. (Flat line is when data is streamed to HDFS) and I have marked flat lines with different versions. 2015-07-22 19:48 GMT-07:00 Roshan Naik <[email protected]>: My guess is that most of you will probably use File channel in production with HDFS sink? In which scenario the common observation seems to be that the File channel becomes the primary bottleneck. Going by Robert's observations too seems to have dropped also since v1.3. Robert, can u confirm how many data dirs were used for your readings with FCh ? -roshan From: lohit <[email protected]> Reply-To: "[email protected]" <[email protected]> Date: Wednesday, July 22, 2015 3:01 PM To: "[email protected]" <[email protected]> Subject: Re: HDFS Sink performance Thanks for sharing these number Robert. Curious, I did the same experiment. Flume 1.3.1 version has higher throughput than 1.6.0 (I was able to get sustained 60MB/s with Flume 1.3.1) No config or setup change, just changing flume version shows this difference. We should probably look at change set between 1.3.1 and 1.5 to see if there was any obvious changes. 2015-07-22 14:00 GMT-07:00 Robert B Hamilton <[email protected]>: Here is a comparison between versions 1.3, 1.5, and 1.6. I would estimate that error bars are plus or minus 15%. All parameters are identical, as between runs all I change is the version of flume. Lohit’s numbers are fairly consistent with this, because if we double the sinks from my 4 to his 8 and assuming linear scalability we would expect to get somewhere close to 30-40MB/s. It looks like the drop off is more pronounced for the larger event size. This is of concern to us because we are looking at this for a high volume feed with message sizes up to 80 kB. ------------------------------------------ HDFSx4 sink, Memory channel -------------------------------------- Payload V1.3 v1.5 v1.6 (kB) MB/s ---------- ----- ----- ----- 1 27 17 20 25 56 15 15 From: Hari Shreedharan [mailto:[email protected]] Sent: Wednesday, July 22, 2015 1:27 PM To: [email protected] Subject: Re: HDFS Sink performance That is a bit disconcerting. Are you using the same HDFS setup and same config for both tests? Would it be possible for you to take a look at Flume 1.6.0? Such drops in performance should be taken care of. Thanks, Hari On Wed, Jul 22, 2015 at 11:04 AM, Robert B Hamilton <[email protected]> wrote: My mailer totally scrambled the numbers, probably by inserting special characters. Sorry, here are the actual results.... All rates in MB/s Payload in KB Flume 1.3.1 Payload rate memchRate Fch 25 34 29 25 31 27.6 25 50 23.3 25 46.5 27.2 50 31.3 23.8 50 37.4 31.3 50 32.3 31.8 80 30.5 25.8 80 46.2 25.2 80 39.1 25.8 80 56.5 25.1 Flume 1.5. Payload rate memchRate Fch 25 18.7 15.6 50 18.3 17.3 80 18.4 15.6 -----Original Message----- From: Robert B Hamilton [mailto:[email protected]] Sent: Wednesday, July 22, 2015 11:00 AM To: [email protected] Subject: RE: HDFS Sink performance I only see that kind of throughput for event sizes of 25kB to 50kB or larger. These particular tests are done on flume version 1.3.1. But because you asked, I thought to do a few quick runs on 1.5.0.1 and added those results below. The results are significantly different for 1.5 and I wonder if this is a cause for concern. None of this has been peer reviewed so it should be considered as tentative. As to the HDD, here is result of a quick and dirty dd test. dd if=/dev/zero of=100M bs=1M count=100 conv=fsync oflag=sync 104857600 bytes (105 MB) copied, 0.685646 s, 153 MB/s Source data: each record consists of random ascii strings of constant length (25k,50k,or 80k depending on the run). Source: spooldir Channel: file channel single dataDir, or memory channel. Sink: four HDFS, SequenceFile, Text, Batch size=10, rollInterval=20 seconds. Batch size was kept small because of memory channel capacity. Increasing batch size for file channel did not improve performance so I kept it at 10. Here I have numbers for some runs where the payload is varied from 25K,50K, and 80K. I include memory channel for comparison. Multiple runs were peformed for each event size. As you can see the throughput can vary from run to run because these particular measurements were done on an environment that is not tightly controlled. Think of them as "in situ" measurements :) Flume 1.3.1 memory channel and file channel ------------------------------------------------------- Payload Rate memch Rate(filechl) (kB)(MB/s) (MB/s) ----------------------------------------------------- 253429 253127.6 255023.3 2546.527.2 5031.223.8 5037.431.3 5032.331.8 8030.525.8 8046.225.2 8039.125.8 8056.525.1 Flume 1.5 File Channel and Memory Channel --------------------------------------------------- Event size Rate memch Rate filech (KB) (MB/s) (MB/s) --------------------------------------------------- 2518.715.6 5018.317.3 8018.415.6 -----Original Message----- From: Roshan Naik [mailto:[email protected]] Sent: Friday, July 17, 2015 6:21 PM To: [email protected] Subject: Re: HDFS Sink performance I Updated the Flume wiki with my measurements. Also added section with Hive sink measurements. https://cwiki.apache.org/confluence/display/FLUME/Performance+Measurements+ -+round+2 @Robert: What sort of a HDD are you using ? What is event size ? Which version of flume ? -roshan On 7/17/15 12:51 PM, "Robert B Hamilton" <[email protected]> wrote: >Our testing has shown up to 60MB/s to HDFS if we use up to 8 or 10 >sinks per agent, and with a file channel with a single dataDir. > > >From: lohit [mailto:[email protected]] >Sent: Wednesday, July 15, 2015 11:11 AM >To: [email protected] >Subject: HDFS Sink performance > >Hello, > >Does anyone have some numbers which they can share around HDFS sink >performance. From our testing, for single sink writing to HDFS >(CompressedStream) and reading from MemoryChannel can only do about >35000 events per second (each event is about 1K) in size. After >compression this turns out to be ~10MB/s write stream to HDFS file. >Which is pretty low. Our configuration looks like this > >agent.sinks.hdfsSink.type = hdfs >agent.sinks.hdfsSink.channel = memoryChannel >agent.sinks.hdfsSink.hdfs.path = /tmp/lohit >agent.sinks.hdfsSink.hdfs.codeC = lzo >agent.sinks.hdfsSink.hdfs.fileType = CompressedStream >agent.sinks.hdfsSink.hdfs.writeFormat = Writable >agent.sinks.hdfsSink.hdfs.rollInterval = 3600 >agent.sinks.hdfsSink.hdfs.rollSize = 1073741824 >agent.sinks.hdfsSink.hdfs.rollCount = 0 >agent.sinks.hdfsSink.hdfs.batchSize = 10000 >agent.sinks.hdfsSink.hdfs.txnEventMax = 10000 > >agent.channels.memoryChannel.type = memory > >agent.channels.memoryChannel.capacity = 3000000 >agent.channels.memoryChannel.transactionCapacity = 10000 > >-- >Have a Nice Day! >Lohit > > >Nothing in this message is intended to constitute an electronic >signature unless a specific statement to the contrary is included in this >message. > >Confidentiality Note: This message is intended only for the person or >entity to which it is addressed. It may contain confidential and/or >privileged material. Any review, transmission, dissemination or other >use, or taking of any action in reliance upon this message by persons >or entities other than the intended recipient is prohibited and may be >unlawful. If you received this message in error, please contact the >sender and delete it from your computer. Nothing in this message is intended to constitute an electronic signature unless a specific statement to the contrary is included in this message. Confidentiality Note: This message is intended only for the person or entity to which it is addressed. It may contain confidential and/or privileged material. Any review, transmission, dissemination or other use, or taking of any action in reliance upon this message by persons or entities other than the intended recipient is prohibited and may be unlawful. If you received this message in error, please contact the sender and delete it from your computer. Nothing in this message is intended to constitute an electronic signature unless a specific statement to the contrary is included in this message. Confidentiality Note: This message is intended only for the person or entity to which it is addressed. It may contain confidential and/or privileged material. Any review, transmission, dissemination or other use, or taking of any action in reliance upon this message by persons or entities other than the intended recipient is prohibited and may be unlawful. If you received this message in error, please contact the sender and delete it from your computer. Nothing in this message is intended to constitute an electronic signature unless a specific statement to the contrary is included in this message. Confidentiality Note: This message is intended only for the person or entity to which it is addressed. It may contain confidential and/or privileged material. Any review, transmission, dissemination or other use, or taking of any action in reliance upon this message by persons or entities other than the intended recipient is prohibited and may be unlawful. If you received this message in error, please contact the sender and delete it from your computer. -- Have a Nice Day! Lohit -- Have a Nice Day! Lohit Nothing in this message is intended to constitute an electronic signature unless a specific statement to the contrary is included in this message. Confidentiality Note: This message is intended only for the person or entity to which it is addressed. It may contain confidential and/or privileged material. Any review, transmission, dissemination or other use, or taking of any action in reliance upon this message by persons or entities other than the intended recipient is prohibited and may be unlawful. If you received this message in error, please contact the sender and delete it from your computer.
