Optimizing ES settings for bulkinserts


(Anurag Phadke) #1

We are trying to insert raw-build log files inside ES. The scenario
involves transferring 20 files every 10 minutes via Flume and using
ES'es REST API for bulk inserts
Size of single log-line: 10kb
Avg. # of log-lines/second: 10K
Avg. size of ES REST API call for bulk-inserts: 4mb

Currently, it takes about 2 minutes for every REST API to return a
HTTP 200 reply. Other than adding more hardware, are there any config
settings to tweak around to speed up this process? Any idea how
logstash (http://code.google.com/p/logstash/) might be doing this?

-anurag


(Shay Banon) #2

How do you index the files? Is it a single bulk request executed every 10
minutes with all the data? Would also be interesting to see where time is
spent, since most http libs out there are not amazing...

On Tue, Jan 4, 2011 at 10:31 PM, Anurag anurag.phadke@gmail.com wrote:

We are trying to insert raw-build log files inside ES. The scenario
involves transferring 20 files every 10 minutes via Flume and using
ES'es REST API for bulk inserts
Size of single log-line: 10kb
Avg. # of log-lines/second: 10K
Avg. size of ES REST API call for bulk-inserts: 4mb

Currently, it takes about 2 minutes for every REST API to return a
HTTP 200 reply. Other than adding more hardware, are there any config
settings to tweak around to speed up this process? Any idea how
logstash (http://code.google.com/p/logstash/) might be doing this?

-anurag


(Shay Banon) #3

I added https://github.com/elasticsearch/elasticsearch/issues/issue/599which
includes how long the bulk execution took within ES. This will help in
the future to analyze if there is something "in the middle" that takes
longer.

On Wed, Jan 5, 2011 at 2:05 PM, Shay Banon shay.banon@elasticsearch.comwrote:

How do you index the files? Is it a single bulk request executed every 10
minutes with all the data? Would also be interesting to see where time is
spent, since most http libs out there are not amazing...

On Tue, Jan 4, 2011 at 10:31 PM, Anurag anurag.phadke@gmail.com wrote:

We are trying to insert raw-build log files inside ES. The scenario
involves transferring 20 files every 10 minutes via Flume and using
ES'es REST API for bulk inserts
Size of single log-line: 10kb
Avg. # of log-lines/second: 10K
Avg. size of ES REST API call for bulk-inserts: 4mb

Currently, it takes about 2 minutes for every REST API to return a
HTTP 200 reply. Other than adding more hardware, are there any config
settings to tweak around to speed up this process? Any idea how
logstash (http://code.google.com/p/logstash/) might be doing this?

-anurag


(system) #4