2016-11-02 2 views
0

Ich frage einfache Elasticsearch Index mit Hausnummern Daten.Elasticsearch Reaktionszeit - seltsame Werte

".house-numbers": { 
    "mappings": { 
     "house-number": { 
     "properties": { 
      "id": { 
      "type": "keyword" 
      }, 
      "value": { 
      "type": "text", 
      "index_options": "docs" 
      } 
     } 
     } 
    } 
    } 

Dann bin ich die Abfrage Daten wie POST HTTP-Anfrage

URL

http://localhost:9200/.house-numbers/housenumber/_search 

Headers:

Content-Type: text/plain 
Content-Length: 55 
Accept: */* 
Accept-Encoding: gzip, deflate, br 

Anfrage Körper:

{ 
    "size": 30, 
    "query": { 
    "match": { 
     "value": { 
     "query": "2 3" 
     } 
    } 
    } 
} 

Anfrage liefert Daten in 10ms - 30ms und alles funktioniert gut. Elasticsearch Antwort Parameter nahm ist in allen Fällen 3-5ms klein.

Wenn ich Größe in Anforderung Körper zu "size": 35 ändern, hat Reaktionszeit plötzlich 500ms. Take-Parameter von Elasticsearch ist das gleiche. Es gibt keine Sonderzeichen und die Größe der Antwort ist sehr ähnlich.

Ich versuchte viele Clients NEST, Postman, Fiddler diese Anfragen zu tun, jeder Client hat das gleiche Verhalten.

Rahmen meiner Elasticsearch enthält nur

http.compression : true 
http.compression_level : 9 

Rahmen meiner Jvm

"jvm": { 
    "timestamp": 1478108615141, 
    "uptime_in_millis": 17150141, 
    "mem": { 
    "heap_used_in_bytes": 1384307624, 
    "heap_used_percent": 66, 
    "heap_committed_in_bytes": 2077753344, 
    "heap_max_in_bytes": 2077753344, 
    "non_heap_used_in_bytes": 96403904, 
    "non_heap_committed_in_bytes": 101502976, 
    "pools": { 
     "young": { 
     "used_in_bytes": 324358632, 
     "max_in_bytes": 558432256, 
     "peak_used_in_bytes": 558432256, 
     "peak_max_in_bytes": 558432256 
     }, 
     "survivor": { 
     "used_in_bytes": 69730304, 
     "max_in_bytes": 69730304, 
     "peak_used_in_bytes": 69730304, 
     "peak_max_in_bytes": 69730304 
     }, 
     "old": { 
     "used_in_bytes": 990220848, 
     "max_in_bytes": 1449590784, 
     "peak_used_in_bytes": 1190046816, 
     "peak_max_in_bytes": 1449590784 
     }... 

ich verschiedene Versionen von Elasticsearch habe ich versucht, verschiedene Einstellungen ausprobiert - ausschalten http.compression, ändern Komprimierungs I versuchte einen anderen Hosts für elasticsearch

Ich habe keine Ahnung, was dieses Problem verursachen kann und Ich kann meine Arbeit nicht fortsetzen. Irgendeine Idee, wohin man schaut oder wie man fortfährt?

+0

Wenn Sie diese Abfrage 10-20 mal ausführen, wird es schneller? ElasticSearch verschiebt die Daten nach Bedarf automatisch in den Cache und wieder aus diesem heraus. Daher ist die erste Abfrage manchmal langsam, aber nachfolgende Abfragen sind sehr schnell. – jhilden

+0

Wie viel Speicher hast du an die JVM angehängt? [Holen Sie sich diese Informationen hier] (http://StackOverflow.com/Questions/32100072/Checking-Elastic-Search-Heap-Size/32107177#32107177) – jhilden

+0

@Jhilden Es wird nicht schneller nach Anfragen, aber manchmal dauert eine Anfrage z. 8ms und dann wieder zehn Anfragen dauern 500ms. –

Antwort

0

Natürlich Problem war nicht in Elasticsearch aber in der http-Kommunikation, vor allem, wenn die HTTP-Komprimierung auf

Hinweise gedreht wurde Verzögerungen entfernen

  • schließt Fiedler
  • deaktivieren Firewall und Anti-Virus-Software
  • Schließen Sie alle Programme, die HTTP-Kommunikation möglicherweise abfangen können