elasticsearch elasticsearch请求的高延迟
我正在使用传输客户端对数据进行索引。下面是一个小测试程序:elasticsearch elasticsearch请求的高延迟,elasticsearch,indexing,time,latency,elasticsearch,Indexing,Time,Latency,我正在使用传输客户端对数据进行索引。下面是一个小测试程序: @Test public void LatencyTest() throws Exception { // warmup for (int i = 0; i < 10; i++) { client.prepareGet("ts_head", "doc", "latency_test_id").get(); } List<Long> times = Lists.newAr
@Test
public void LatencyTest() throws Exception {
// warmup
for (int i = 0; i < 10; i++) {
client.prepareGet("ts_head", "doc", "latency_test_id").get();
}
List<Long> times = Lists.newArrayList();
for (int i = 0; i < 100; i++) {
final long t1 = System.nanoTime();
final IndexResponse response = client.prepareIndex("ts_head", "doc", "latency_test_id").setSource("{}", XContentType.JSON).get();
final long t2 = System.nanoTime();
times.add(t2 - t1);
}
final double average = times.stream().mapToLong(v -> v).average().getAsDouble();
System.out.println("Average time: " + (average / 1_000_000f) + "ms");
}
通过HTTP编制索引的速度也相当慢:
$ curl -w "@curl-format.txt" -X POST -s "http://172.***:9200/ts_head/doc/latency_test_id" --data '{}'
{"_index":"ts_head","_type":"doc","_id":"latency_test_id","_version":211,"result":"updated","_shards":{"total":2,"successful":2,"failed":0},"created":false} time_namelookup: 0,001381
time_connect: 0,135607
time_appconnect: 0,000000
time_pretransfer: 0,136056
time_redirect: 0,000000
time_starttransfer: 0,283840
----------
time_total: 0,284044
现在我的问题是:我做错了什么?Elasticsearch肯定能够更快地编制索引,对吗
为了进行测试,我还读取了数据,它报告了“take”:1
,但仍然持续超过100ms,无法通过curl进行响应
$ curl -w "@curl-format.txt" -X POST -s "http://172.***:9200/ts_head/doc/latency_test_id" --data '{}'
{"_index":"ts_head","_type":"doc","_id":"latency_test_id","_version":211,"result":"updated","_shards":{"total":2,"successful":2,"failed":0},"created":false} time_namelookup: 0,001381
time_connect: 0,135607
time_appconnect: 0,000000
time_pretransfer: 0,136056
time_redirect: 0,000000
time_starttransfer: 0,283840
----------
time_total: 0,284044