ElasticSearch(ES) servers: X.X.X.71, X.X.X.72, X.X.X.73. 72 and 73 with Mem:16G CPU:16 core 2.4GHz; 71 with Mem:8G CPU:4 core 2.27GHz
OS: Linux x86_64 GNU/Linux
tools: jmeter2.6 , youykit11.0.5
1. follow the offical installation guide of ES:ES Installation guide
go to $ES_HOME and start the ES with command( default config) :
./bin/elasticsearch
1. the index request for preper index-data to ES cluster look like :
PUT http://X.X.X.71:9200/test/person/
PUT data:
[no cookies]
Request Headers:
Content-Length: 281
Connection: keep-alive
the format of put data (document for indexing) look like:
{oid:"456",ts:"1342463467567",name:"aluha",age:"10",company:"Cisco Systems, Inc.",branch:"Cloud Application Services",mail:"[email protected]",interest:"Have intensive interest in Internet-surfing,singing, writing and reading.",address:"address,The Golden Gate Bridge,Wall Street."}
each doc for indexing have a size about 300 bytes
the detail of this script can find here:
2. after got 15G index data with more than 20 million docs, we are ready to test the performance ofES, just keep the same order of magnitude of index-data as SolrCloud
all test with NRT availible
one or more clients to request to X.X.X.71-73 randomly. we have tow test cases
(1)5 shards ,each with 2 replicas (2) 1 shard, each with 2 replicas
case (1) :5 shards
1. index performance test (with search):
index result: index jmeter script elasticsearch_index_cluster.jmx
request thread nums | avg response time | throughput |
---|---|---|
50 | 19 | 2533 |
150 | 105 | 1446 |
300 | 200 | 1479 |
at the same time the search result: search jmeter script elasticsearch_search_cluster.jmx
request thread nums | avg response time | throughput |
---|---|---|
50 | 662 | 74 |
150 | 1200 | 117 |
300 | 1869 | 154 |
case(2) :1 shard
1. index performance test (with search):
index result: index jmeter script elasticsearch_index_cluster.jmx
request thread nums | avg response time | throughput |
---|---|---|
50 | 23 | 2314 |
150 | 158 | 2541 |
300 | 101 | 2946 |
at the same time the search result: search jmeter script elasticsearch_search_cluster.jmx
request thread nums | avg response time | throughput |
---|---|---|
50 | 15 | 3206 |
150 | 145 | 3230 |
300 | 93 | 3167 |
the performance of indexing between case 1 and case 2 is almost the same, but the performance of searching while indexing is very bad when the shard is too many. with single searching or indexing ,theES is very powerful. ES is also very good for small seach application. But for large scale data indexing and searching, too many shards will lead some problems. It would be too hard for a new developer work withES due to its inactivity community and poor document compare withSolr. But ES has a lot of good feature we should bring into our system. Our team will step forword with this test. We will hava a deeper research onES.