我一直在试验flume ng(flume-ng-1.2.0+24.81-1~lucid),一直在比较内存通道和文件通道的性能。
我的测试系统中的每个事件的大小为 1KB,在我当前的配置下,我能够使用内存通道处理大约 30,000 EPS。但是,当使用文件通道时,我只能处理大约 1600 EPS。
平均而言,我希望在我的生产系统上平均接收 2500 EPS,并且我想使用文件通道在接收器故障的情况下提供大约 1 小时的事件缓冲(我正在使用具有 1Gbps 连接的 HDFS 接收器到hadoop集群)。
这是我的文件通道配置:
agent.channels.c1.checkpointDir = ~/.flume/file-channel/checkpoint
agent.channels.c1.dataDirs = ~/.flume/file-channel/data
agent.channels.c1.transactionCapacity = 13107200
agent.channels.c1.checkpointInterval = 30000
agent.channels.c1.maxFileSize = 9216000000
agent.channels.c1.minimumRequiredSpace = 524288000
agent.channels.c1.capacity = 9000000
agent.channels.c1.keep-alive = 3
agent.channels.c1.write-timeout = 3
agent.channels.c1.checkpoint-timeout = 600
agent.channels.c1.use-log-replay-v1 = FALSE
agent.channels.c1.use-fast-replay = FALSE
我的 HDFS 接收器的批量大小已设置为 5000。
任何人都可以就如何提高文件通道的性能提出任何建议吗?
谢谢