# Elasticsearch expected performance

**URL:** https://discuss.elastic.co/t/elasticsearch-expected-performance/8710
**Category:** Elasticsearch
**Created:** [August 10, 2012, 7:41pm UTC](https://discuss.elastic.co/t/elasticsearch-expected-performance/8710 "2012-08-10T19:41:00Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Abhishek\_Pratap](https://avatars.discourse-cdn.com/v4/letter/a/fbc32d/32.png) [@Abhishek\_Pratap](https://discuss.elastic.co/u/Abhishek_Pratap)
#### Post date: [August 10, 2012, 7:41pm UTC](https://discuss.elastic.co/t/elasticsearch-expected-performance/8710/1 "2012-08-10T19:41:00Z")

</div>

Hi Guys

I have started using ES as of today and I wondering being a naive user  
without doing any specific tweaks to the defaults what kind of performance  
I can expect to get from ES. I also have few other questions.

1. 

On a small index few hundred lines of text I am seeing very good  
performance. Right now I am inserting about 100K records into ES index  
using pyes and I am seeing about 1000 lines of text inserted in 3-4 seconds  
? Is this close to the optimal performance ? The server running the ES is  
not busy either.

1. I would assume to get a orders of magnitude faster performance when I do  
the searches..

2. Also about pyes, once the index is created how I can directly query the  
index without creating each time..I dont see creating a connection handle  
to existing ES index in pyes

3. Is there any performance diff if I use pyes compared to direct server  
queries

-A

--

---

<div class="post-metadata">

### Author: ![Abhishek\_Pratap](https://avatars.discourse-cdn.com/v4/letter/a/fbc32d/32.png) [@Abhishek\_Pratap](https://discuss.elastic.co/u/Abhishek_Pratap)
#### Post date: [August 13, 2012, 9:32pm UTC](https://discuss.elastic.co/t/elasticsearch-expected-performance/8710/2 "2012-08-13T21:32:16Z")

</div>

Guys

I am still wondering if anyone can give me some basic benchmarks on ES. I  
am trying to see if I can do better than inserting 1000 records into ES  
index in 3-5 seconds. Each record in my case is a 3 col text.

-Abhi

On Friday, August 10, 2012 12:41:00 PM UTC-7, Abhishek Pratap wrote:

> Hi Guys
> 
> I have started using ES as of today and I wondering being a naive user  
> without doing any specific tweaks to the defaults what kind of performance  
> I can expect to get from ES. I also have few other questions.
> 
> 1. 
> 
> On a small index few hundred lines of text I am seeing very good  
> performance. Right now I am inserting about 100K records into ES index  
> using pyes and I am seeing about 1000 lines of text inserted in 3-4 seconds  
> ? Is this close to the optimal performance ? The server running the ES is  
> not busy either.
> 
> 1. I would assume to get a orders of magnitude faster performance when I  
> do the searches..
> 
> 2. Also about pyes, once the index is created how I can directly query  
> the index without creating each time..I dont see creating a connection  
> handle to existing ES index in pyes
> 
> 3. Is there any performance diff if I use pyes compared to direct server  
> queries
> 
> -A

--

---

<div class="post-metadata">

### Author: ![Radu\_Gheorghe1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/radu_gheorghe1/32/2688_2.png) [@Radu\_Gheorghe1](https://discuss.elastic.co/u/Radu_Gheorghe1)
#### Post date: [August 14, 2012, 5:43am UTC](https://discuss.elastic.co/t/elasticsearch-expected-performance/8710/3 "2012-08-14T05:43:01Z")

</div>

Hi Abhishek,

1. I would suppose this is far from the optimal performance. But of course  
performance depends on loads of factors. The most important regarding  
indexing is using the Bulk API:

> **[Elasticsearch Platform — Find real-time answers at scale](https://www.elastic.co)**
>
> Power insights and outcomes with the Elasticsearch Platform and AI. See into your data and find answers that matter with enterprise solutions designed to help you build, observe, and protect. Try Elasticsearch free today.

If you're not using it already, you need to specify bulk=true when you call  
index() on your connection. What this does (as far as I understand) is it  
puts your document into a buffer which gets flushed to ES via the Bulk API  
once the bulk\_size is reached. You specify bulk\_size when creating your  
connection, and is 400 by default.

You have to take care of what happens when you have some documents in your  
"buffer" for a long time. Or whether you want to exit. For example, when  
you insert 1000 items with a bulk size of 400 you might find only 800 in  
Elasticsearch. For that you might need to flush the bulk manually via  
flush\_bulk(forced=True). Or, you can refresh the index, which also flushes  
your bulk via refresh(). But that will take a lot more time, and it's not  
really recommended because ES automatically flushes your index each second  
by default.

However, if you insert loads of data, you might be better off by disabling  
automatic refresh from ES:

> **[Elasticsearch Platform — Find real-time answers at scale](https://www.elastic.co)**
>
> Power insights and outcomes with the Elasticsearch Platform and AI. See into your data and find answers that matter with enterprise solutions designed to help you build, observe, and protect. Try Elasticsearch free today.

and do it manually from your script once indexing is done. Note that during  
that time your documents won't be available for search. And you also might  
want to turn automatic refresh back on again afterwards.

If you want a raw figure of indexing performance, I get 15K inserts/sec  
when putting pretty standard syslog lines to ES using pyes on a relatively  
high-end laptop (i7, 8GB RAM). In this case, ES config is pretty standard,  
but I'm using thrift as a transport (yes, pyes supports it, you just need  
to install the plugin to ES and specify the default 9500 port to your  
connection settings), and also with multithreading.

1. It depends on how your searches look like, but it's very fast. On the  
same laptop I get sub-second query times when I search my logs for getting  
the newest 100 lines, at index sizes of up to 30M documents or so. And I  
don't have SSD storage.

2. I don't know how pyes handles this, but if you're worried about  
connection overhead, I think you should be looking at Thrift.

3. I haven't noticed a performance penalty. But if you want a more direct  
client for Python, may I suggest mine 😃

[https://github.com/radu-gheorghe/slimes](https://github.com/radu-gheorghe/slimes)

It's useful if you just want to look in the ES docs and apply the things  
you see there directly in your Python app.

It's at a pretty early stage, but I haven't found issues so far. I'd be  
glad to hear your feedback.

On Friday, August 10, 2012 10:41:00 PM UTC+3, Abhishek Pratap wrote:

> Hi Guys
> 
> I have started using ES as of today and I wondering being a naive user  
> without doing any specific tweaks to the defaults what kind of performance  
> I can expect to get from ES. I also have few other questions.
> 
> 1. 
> 
> On a small index few hundred lines of text I am seeing very good  
> performance. Right now I am inserting about 100K records into ES index  
> using pyes and I am seeing about 1000 lines of text inserted in 3-4 seconds  
> ? Is this close to the optimal performance ? The server running the ES is  
> not busy either.
> 
> 1. I would assume to get a orders of magnitude faster performance when I  
> do the searches..
> 
> 2. Also about pyes, once the index is created how I can directly query  
> the index without creating each time..I dont see creating a connection  
> handle to existing ES index in pyes
> 
> 3. Is there any performance diff if I use pyes compared to direct server  
> queries
> 
> -A

--

---

<div class="post-metadata">

### Author: ![Abhishek\_Pratap](https://avatars.discourse-cdn.com/v4/letter/a/fbc32d/32.png) [@Abhishek\_Pratap](https://discuss.elastic.co/u/Abhishek_Pratap)
#### Post date: [August 14, 2012, 6:11pm UTC](https://discuss.elastic.co/t/elasticsearch-expected-performance/8710/4 "2012-08-14T18:11:22Z")

</div>

Thanks a lot Radu. I will try the tweaks based on your advice and see what  
I get.

-Abhi

On Monday, August 13, 2012 10:43:01 PM UTC-7, Radu Gheorghe wrote:

> Hi Abhishek,
> 
> 1. I would suppose this is far from the optimal performance. But of course  
> performance depends on loads of factors. The most important regarding  
> indexing is using the Bulk API:
> 
> [Elasticsearch Platform — Find real-time answers at scale | Elastic](http://www.elasticsearch.org/guide/reference/api/bulk.html)
> 
> If you're not using it already, you need to specify bulk=true when you  
> call index() on your connection. What this does (as far as I understand) is  
> it puts your document into a buffer which gets flushed to ES via the Bulk  
> API once the bulk\_size is reached. You specify bulk\_size when creating your  
> connection, and is 400 by default.
> 
> You have to take care of what happens when you have some documents in your  
> "buffer" for a long time. Or whether you want to exit. For example, when  
> you insert 1000 items with a bulk size of 400 you might find only 800 in  
> Elasticsearch. For that you might need to flush the bulk manually via  
> flush\_bulk(forced=True). Or, you can refresh the index, which also flushes  
> your bulk via refresh(). But that will take a lot more time, and it's not  
> really recommended because ES automatically flushes your index each second  
> by default.
> 
> However, if you insert loads of data, you might be better off by disabling  
> automatic refresh from ES:
> 
> [Elasticsearch Platform — Find real-time answers at scale | Elastic](http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings.html)
> 
> and do it manually from your script once indexing is done. Note that  
> during that time your documents won't be available for search. And you also  
> might want to turn automatic refresh back on again afterwards.
> 
> If you want a raw figure of indexing performance, I get 15K inserts/sec  
> when putting pretty standard syslog lines to ES using pyes on a relatively  
> high-end laptop (i7, 8GB RAM). In this case, ES config is pretty standard,  
> but I'm using thrift as a transport (yes, pyes supports it, you just need  
> to install the plugin to ES and specify the default 9500 port to your  
> connection settings), and also with multithreading.
> 
> 1. It depends on how your searches look like, but it's very fast. On the  
> same laptop I get sub-second query times when I search my logs for getting  
> the newest 100 lines, at index sizes of up to 30M documents or so. And I  
> don't have SSD storage.
> 
> 2. I don't know how pyes handles this, but if you're worried about  
> connection overhead, I think you should be looking at Thrift.
> 
> 3. I haven't noticed a performance penalty. But if you want a more direct  
> client for Python, may I suggest mine 😃
> 
> [https://github.com/radu-gheorghe/slimes](https://github.com/radu-gheorghe/slimes)
> 
> It's useful if you just want to look in the ES docs and apply the things  
> you see there directly in your Python app.
> 
> It's at a pretty early stage, but I haven't found issues so far. I'd be  
> glad to hear your feedback.
> 
> On Friday, August 10, 2012 10:41:00 PM UTC+3, Abhishek Pratap wrote:
> 
> > Hi Guys
> > 
> > I have started using ES as of today and I wondering being a naive user  
> > without doing any specific tweaks to the defaults what kind of performance  
> > I can expect to get from ES. I also have few other questions.
> > 
> > 1. 
> > 
> > On a small index few hundred lines of text I am seeing very good  
> > performance. Right now I am inserting about 100K records into ES index  
> > using pyes and I am seeing about 1000 lines of text inserted in 3-4 seconds  
> > ? Is this close to the optimal performance ? The server running the ES is  
> > not busy either.
> > 
> > 1. I would assume to get a orders of magnitude faster performance when I  
> > do the searches..
> > 
> > 2. Also about pyes, once the index is created how I can directly query  
> > the index without creating each time..I dont see creating a connection  
> > handle to existing ES index in pyes
> > 
> > 3. Is there any performance diff if I use pyes compared to direct server  
> > queries
> > 
> > -A

--

---

<div class="post-metadata">

### Author: ![Abhishek\_Pratap](https://avatars.discourse-cdn.com/v4/letter/a/fbc32d/32.png) [@Abhishek\_Pratap](https://discuss.elastic.co/u/Abhishek_Pratap)
#### Post date: [August 14, 2012, 10:52pm UTC](https://discuss.elastic.co/t/elasticsearch-expected-performance/8710/5 "2012-08-14T22:52:58Z")

</div>

Radu

I am wondering how can I turn on/off indexing through Pyres ? I think most  
of my questions are related to documentation on pyes but I understand this  
is work in progress.

-Abhi

On Tuesday, August 14, 2012 11:11:22 AM UTC-7, Abhishek Pratap wrote:

> Thanks a lot Radu. I will try the tweaks based on your advice and see what  
> I get.
> 
> -Abhi
> 
> On Monday, August 13, 2012 10:43:01 PM UTC-7, Radu Gheorghe wrote:
> 
> > Hi Abhishek,
> > 
> > 1. I would suppose this is far from the optimal performance. But of  
> > course performance depends on loads of factors. The most important  
> > regarding indexing is using the Bulk API:
> > 
> > [Elasticsearch Platform — Find real-time answers at scale | Elastic](http://www.elasticsearch.org/guide/reference/api/bulk.html)
> > 
> > If you're not using it already, you need to specify bulk=true when you  
> > call index() on your connection. What this does (as far as I understand) is  
> > it puts your document into a buffer which gets flushed to ES via the Bulk  
> > API once the bulk\_size is reached. You specify bulk\_size when creating your  
> > connection, and is 400 by default.
> > 
> > You have to take care of what happens when you have some documents in  
> > your "buffer" for a long time. Or whether you want to exit. For example,  
> > when you insert 1000 items with a bulk size of 400 you might find only 800  
> > in Elasticsearch. For that you might need to flush the bulk manually via  
> > flush\_bulk(forced=True). Or, you can refresh the index, which also flushes  
> > your bulk via refresh(). But that will take a lot more time, and it's not  
> > really recommended because ES automatically flushes your index each second  
> > by default.
> > 
> > However, if you insert loads of data, you might be better off by  
> > disabling automatic refresh from ES:
> > 
> > [Elasticsearch Platform — Find real-time answers at scale | Elastic](http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings.html)
> > 
> > and do it manually from your script once indexing is done. Note that  
> > during that time your documents won't be available for search. And you also  
> > might want to turn automatic refresh back on again afterwards.
> > 
> > If you want a raw figure of indexing performance, I get 15K inserts/sec  
> > when putting pretty standard syslog lines to ES using pyes on a relatively  
> > high-end laptop (i7, 8GB RAM). In this case, ES config is pretty standard,  
> > but I'm using thrift as a transport (yes, pyes supports it, you just need  
> > to install the plugin to ES and specify the default 9500 port to your  
> > connection settings), and also with multithreading.
> > 
> > 1. It depends on how your searches look like, but it's very fast. On the  
> > same laptop I get sub-second query times when I search my logs for getting  
> > the newest 100 lines, at index sizes of up to 30M documents or so. And I  
> > don't have SSD storage.
> > 
> > 2. I don't know how pyes handles this, but if you're worried about  
> > connection overhead, I think you should be looking at Thrift.
> > 
> > 3. I haven't noticed a performance penalty. But if you want a more direct  
> > client for Python, may I suggest mine 😃
> > 
> > [https://github.com/radu-gheorghe/slimes](https://github.com/radu-gheorghe/slimes)
> > 
> > It's useful if you just want to look in the ES docs and apply the things  
> > you see there directly in your Python app.
> > 
> > It's at a pretty early stage, but I haven't found issues so far. I'd be  
> > glad to hear your feedback.
> > 
> > On Friday, August 10, 2012 10:41:00 PM UTC+3, Abhishek Pratap wrote:
> > 
> > > Hi Guys
> > > 
> > > I have started using ES as of today and I wondering being a naive user  
> > > without doing any specific tweaks to the defaults what kind of performance  
> > > I can expect to get from ES. I also have few other questions.
> > > 
> > > 1. 
> > > 
> > > On a small index few hundred lines of text I am seeing very good  
> > > performance. Right now I am inserting about 100K records into ES index  
> > > using pyes and I am seeing about 1000 lines of text inserted in 3-4 seconds  
> > > ? Is this close to the optimal performance ? The server running the ES is  
> > > not busy either.
> > > 
> > > 1. I would assume to get a orders of magnitude faster performance when I  
> > > do the searches..
> > > 
> > > 2. Also about pyes, once the index is created how I can directly query  
> > > the index without creating each time..I dont see creating a connection  
> > > handle to existing ES index in pyes
> > > 
> > > 3. Is there any performance diff if I use pyes compared to direct server  
> > > queries
> > > 
> > > -A

--

---

<div class="post-metadata">

### Author: ![Abhishek\_Pratap](https://avatars.discourse-cdn.com/v4/letter/a/fbc32d/32.png) [@Abhishek\_Pratap](https://discuss.elastic.co/u/Abhishek_Pratap)
#### Post date: [August 14, 2012, 10:57pm UTC](https://discuss.elastic.co/t/elasticsearch-expected-performance/8710/6 "2012-08-14T22:57:46Z")

</div>

forgot to mention : I did try refresh\_interval=-1l when I call the index  
(conn.index()) but get an unexpected keyword argument error.

-A

On Tuesday, August 14, 2012 3:52:58 PM UTC-7, Abhishek Pratap wrote:

> Radu
> 
> I am wondering how can I turn on/off indexing through Pyres ? I think most  
> of my questions are related to documentation on pyes but I understand this  
> is work in progress.
> 
> -Abhi
> 
> On Tuesday, August 14, 2012 11:11:22 AM UTC-7, Abhishek Pratap wrote:
> 
> > Thanks a lot Radu. I will try the tweaks based on your advice and see  
> > what I get.
> > 
> > -Abhi
> > 
> > On Monday, August 13, 2012 10:43:01 PM UTC-7, Radu Gheorghe wrote:
> > 
> > > Hi Abhishek,
> > > 
> > > 1. I would suppose this is far from the optimal performance. But of  
> > > course performance depends on loads of factors. The most important  
> > > regarding indexing is using the Bulk API:
> > > 
> > > [Elasticsearch Platform — Find real-time answers at scale | Elastic](http://www.elasticsearch.org/guide/reference/api/bulk.html)
> > > 
> > > If you're not using it already, you need to specify bulk=true when you  
> > > call index() on your connection. What this does (as far as I understand) is  
> > > it puts your document into a buffer which gets flushed to ES via the Bulk  
> > > API once the bulk\_size is reached. You specify bulk\_size when creating your  
> > > connection, and is 400 by default.
> > > 
> > > You have to take care of what happens when you have some documents in  
> > > your "buffer" for a long time. Or whether you want to exit. For example,  
> > > when you insert 1000 items with a bulk size of 400 you might find only 800  
> > > in Elasticsearch. For that you might need to flush the bulk manually via  
> > > flush\_bulk(forced=True). Or, you can refresh the index, which also flushes  
> > > your bulk via refresh(). But that will take a lot more time, and it's not  
> > > really recommended because ES automatically flushes your index each second  
> > > by default.
> > > 
> > > However, if you insert loads of data, you might be better off by  
> > > disabling automatic refresh from ES:
> > > 
> > > [Elasticsearch Platform — Find real-time answers at scale | Elastic](http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings.html)
> > > 
> > > and do it manually from your script once indexing is done. Note that  
> > > during that time your documents won't be available for search. And you also  
> > > might want to turn automatic refresh back on again afterwards.
> > > 
> > > If you want a raw figure of indexing performance, I get 15K inserts/sec  
> > > when putting pretty standard syslog lines to ES using pyes on a relatively  
> > > high-end laptop (i7, 8GB RAM). In this case, ES config is pretty standard,  
> > > but I'm using thrift as a transport (yes, pyes supports it, you just need  
> > > to install the plugin to ES and specify the default 9500 port to your  
> > > connection settings), and also with multithreading.
> > > 
> > > 1. It depends on how your searches look like, but it's very fast. On the  
> > > same laptop I get sub-second query times when I search my logs for getting  
> > > the newest 100 lines, at index sizes of up to 30M documents or so. And I  
> > > don't have SSD storage.
> > > 
> > > 2. I don't know how pyes handles this, but if you're worried about  
> > > connection overhead, I think you should be looking at Thrift.
> > > 
> > > 3. I haven't noticed a performance penalty. But if you want a more  
> > > direct client for Python, may I suggest mine 😃
> > > 
> > > [https://github.com/radu-gheorghe/slimes](https://github.com/radu-gheorghe/slimes)
> > > 
> > > It's useful if you just want to look in the ES docs and apply the things  
> > > you see there directly in your Python app.
> > > 
> > > It's at a pretty early stage, but I haven't found issues so far. I'd be  
> > > glad to hear your feedback.
> > > 
> > > On Friday, August 10, 2012 10:41:00 PM UTC+3, Abhishek Pratap wrote:
> > > 
> > > > Hi Guys
> > > > 
> > > > I have started using ES as of today and I wondering being a naive user  
> > > > without doing any specific tweaks to the defaults what kind of performance  
> > > > I can expect to get from ES. I also have few other questions.
> > > > 
> > > > 1. 
> > > > 
> > > > On a small index few hundred lines of text I am seeing very good  
> > > > performance. Right now I am inserting about 100K records into ES index  
> > > > using pyes and I am seeing about 1000 lines of text inserted in 3-4 seconds  
> > > > ? Is this close to the optimal performance ? The server running the ES is  
> > > > not busy either.
> > > > 
> > > > 1. I would assume to get a orders of magnitude faster performance when  
> > > > I do the searches..
> > > > 
> > > > 2. Also about pyes, once the index is created how I can directly query  
> > > > the index without creating each time..I dont see creating a connection  
> > > > handle to existing ES index in pyes
> > > > 
> > > > 3. Is there any performance diff if I use pyes compared to direct  
> > > > server queries
> > > > 
> > > > -A

--

---

<div class="post-metadata">

### Author: ![Radu\_Gheorghe1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/radu_gheorghe1/32/2688_2.png) [@Radu\_Gheorghe1](https://discuss.elastic.co/u/Radu_Gheorghe1)
#### Post date: [August 15, 2012, 3:36pm UTC](https://discuss.elastic.co/t/elasticsearch-expected-performance/8710/7 "2012-08-15T15:36:12Z")

</div>

I have no idea how/if you can change the refresh interval through pyes. I  
was thinking about doing it from the command line if you only need to do it  
one time.

Something like:

# curl -XPUT 'localhost:9200/my\_index/\_settings' -d '{

```
"index" : {
    "refresh_interval" : -1
}

```

}'

You can skip the "my\_index" part if you want to apply the setting to all  
your indices.

On Wednesday, August 15, 2012 1:57:46 AM UTC+3, Abhishek Pratap wrote:

> forgot to mention : I did try refresh\_interval=-1l when I call the index  
> (conn.index()) but get an unexpected keyword argument error.
> 
> -A
> 
> On Tuesday, August 14, 2012 3:52:58 PM UTC-7, Abhishek Pratap wrote:
> 
> > Radu
> > 
> > I am wondering how can I turn on/off indexing through Pyres ? I think  
> > most of my questions are related to documentation on pyes but I understand  
> > this is work in progress.
> > 
> > -Abhi
> > 
> > On Tuesday, August 14, 2012 11:11:22 AM UTC-7, Abhishek Pratap wrote:
> > 
> > > Thanks a lot Radu. I will try the tweaks based on your advice and see  
> > > what I get.
> > > 
> > > -Abhi
> > > 
> > > On Monday, August 13, 2012 10:43:01 PM UTC-7, Radu Gheorghe wrote:
> > > 
> > > > Hi Abhishek,
> > > > 
> > > > 1. I would suppose this is far from the optimal performance. But of  
> > > > course performance depends on loads of factors. The most important  
> > > > regarding indexing is using the Bulk API:
> > > > 
> > > > [Elastic — The Search AI Company | Elastic](http://www.elasticsearch.org/guide/reference/api/bulk.html)
> > > > 
> > > > If you're not using it already, you need to specify bulk=true when you  
> > > > call index() on your connection. What this does (as far as I understand) is  
> > > > it puts your document into a buffer which gets flushed to ES via the Bulk  
> > > > API once the bulk\_size is reached. You specify bulk\_size when creating your  
> > > > connection, and is 400 by default.
> > > > 
> > > > You have to take care of what happens when you have some documents in  
> > > > your "buffer" for a long time. Or whether you want to exit. For example,  
> > > > when you insert 1000 items with a bulk size of 400 you might find only 800  
> > > > in Elasticsearch. For that you might need to flush the bulk manually via  
> > > > flush\_bulk(forced=True). Or, you can refresh the index, which also flushes  
> > > > your bulk via refresh(). But that will take a lot more time, and it's not  
> > > > really recommended because ES automatically flushes your index each second  
> > > > by default.
> > > > 
> > > > However, if you insert loads of data, you might be better off by  
> > > > disabling automatic refresh from ES:
> > > > 
> > > > [Elastic — The Search AI Company | Elastic](http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings.html)
> > > > 
> > > > and do it manually from your script once indexing is done. Note that  
> > > > during that time your documents won't be available for search. And you also  
> > > > might want to turn automatic refresh back on again afterwards.
> > > > 
> > > > If you want a raw figure of indexing performance, I get 15K inserts/sec  
> > > > when putting pretty standard syslog lines to ES using pyes on a relatively  
> > > > high-end laptop (i7, 8GB RAM). In this case, ES config is pretty standard,  
> > > > but I'm using thrift as a transport (yes, pyes supports it, you just need  
> > > > to install the plugin to ES and specify the default 9500 port to your  
> > > > connection settings), and also with multithreading.
> > > > 
> > > > 1. It depends on how your searches look like, but it's very fast. On  
> > > > the same laptop I get sub-second query times when I search my logs for  
> > > > getting the newest 100 lines, at index sizes of up to 30M documents or so.  
> > > > And I don't have SSD storage.
> > > > 
> > > > 2. I don't know how pyes handles this, but if you're worried about  
> > > > connection overhead, I think you should be looking at Thrift.
> > > > 
> > > > 3. I haven't noticed a performance penalty. But if you want a more  
> > > > direct client for Python, may I suggest mine 😃
> > > > 
> > > > [https://github.com/radu-gheorghe/slimes](https://github.com/radu-gheorghe/slimes)
> > > > 
> > > > It's useful if you just want to look in the ES docs and apply the  
> > > > things you see there directly in your Python app.
> > > > 
> > > > It's at a pretty early stage, but I haven't found issues so far. I'd be  
> > > > glad to hear your feedback.
> > > > 
> > > > On Friday, August 10, 2012 10:41:00 PM UTC+3, Abhishek Pratap wrote:
> > > > 
> > > > > Hi Guys
> > > > > 
> > > > > I have started using ES as of today and I wondering being a naive user  
> > > > > without doing any specific tweaks to the defaults what kind of performance  
> > > > > I can expect to get from ES. I also have few other questions.
> > > > > 
> > > > > 1. 
> > > > > 
> > > > > On a small index few hundred lines of text I am seeing very good  
> > > > > performance. Right now I am inserting about 100K records into ES index  
> > > > > using pyes and I am seeing about 1000 lines of text inserted in 3-4 seconds  
> > > > > ? Is this close to the optimal performance ? The server running the ES is  
> > > > > not busy either.
> > > > > 
> > > > > 1. I would assume to get a orders of magnitude faster performance when  
> > > > > I do the searches..
> > > > > 
> > > > > 2. Also about pyes, once the index is created how I can directly query  
> > > > > the index without creating each time..I dont see creating a connection  
> > > > > handle to existing ES index in pyes
> > > > > 
> > > > > 3. Is there any performance diff if I use pyes compared to direct  
> > > > > server queries
> > > > > 
> > > > > -A

--

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [July 6, 2017, 3:16am UTC](https://discuss.elastic.co/t/elasticsearch-expected-performance/8710/8 "2017-07-06T03:16:16Z")

</div>


