Всех приветствую!
Есть 2 параллельно работающих кластера - старый, работающий на версии 2.4.1 и новый на 5.2.1 (ставил 5.0, 5.1, 5.2 версии).
Данные на них записываются одинаково, через два output в logstash. Проблема заключается в том, что есть запросы, которые 2.4.1 отрабатывает за 4.5 секунды, а 5.х виснет глухо, сжирает весь HeapSize и либо отваливается, либо перестаёт отвечать несколько нод.
Кластер 2.4.1 содержит 13 серверов  (3 мастера и 10 дата-инстансов) 8CPU/64GbRam/916Gb SSD/Ubuntu 14.04/Java 1.8
Кластер 5.2.1 содержит 3 сервера  (3 мастера и 9 дата-инстансов) 32CPU/128Gb/3x1Tb SSD + 1HDD/ ubuntu 16.04/ Java 1.8
На серверах с версией 2.4.1 запущен всего один процесс эластика. (30Гб памяти на процесс эластика)
На серверах с версией 5.2.1 запущено 4 процесса эластика. (один мастер с 8Гб памяти на hdd и три дата-инстанса с 24Гб памяти и своим SSD на 1Тб)
Суммарный объём данных в обоих кластерах:
Nodes: 12 Disk Available: 1TB / 2TB (63.62%) JVM Heap: 23.89% (57GB / 238GB) Indices: 164 Documents: 4,553,799,983 Disk Usage: 3TB Primary Shards: 658 Replica Shards: 199
Для примера есть запрос, который смотрит в индекс views-2017.02.11 объёмом:
44,525,722 Documents 33.8GB Primary Size 33.8GB Total Size 4 Total Shards
curl -XGET 'http://CLUSTERNAME:9200/views-2017.02.11/_search?pretty' -d '{
  "size" : 0,
  "query" : {
    "bool" : {
      "must" : [
        {
          "query_string" : {
            "query" : "*",
            "fields" : [ ],
            "use_dis_max" : true,
            "tie_breaker" : 0.0,
            "default_operator" : "or",
            "auto_generate_phrase_queries" : false,
            "fuzziness" : "AUTO",
            "fuzzy_prefix_length" : 0,
            "fuzzy_max_expansions" : 50,
            "phrase_slop" : 0,
            "analyze_wildcard" : true,
            "escape" : false,
            "boost" : 1.0
          }
        },
        {
          "range" : {
            "@timestamp" : {
              "from" : 1486789200000,
              "to" : 1486799200000,
              "include_lower" : true,
              "include_upper" : true,
              "format" : "epoch_millis",
              "boost" : 1.0
            }
          }
        }
      ],
      "disable_coord" : false,
      "adjust_pure_negative" : true,
      "boost" : 1.0
    }
  },
  "_source" : {
    "includes" : [ ],
    "excludes" : [ ]
  },
  "aggregations" : {
    "2" : {
      "terms" : {
        "field" : "ip",
        "size" : 5,
        "min_doc_count" : 1,
        "shard_min_doc_count" : 0,
        "show_term_doc_count_error" : false,
        "order" : [
          {
            "1" : "desc"
          },
          {
            "_term" : "asc"
          }
        ]
      },
      "aggregations" : {
        "1" : {
          "cardinality" : {
            "field" : "ip"
          }
        }
      }
    }
  }
}
}'
На 2.4.1 он отрабатывает:
# time sh elasticdie.sh 
{
  "took" : 4105,
  "timed_out" : false,
  "_shards" : {
    "total" : 4,
    "successful" : 4,
    "failed" : 0
  },
  "hits" : {
    "total" : 4241136,
    "max_score" : 0.0,
    "hits" : [ ]
  },
  "aggregations" : {
    "2" : {
      "doc_count_error_upper_bound" : -1,
      "sum_other_doc_count" : 4241121,
      "buckets" : [ {
        "key" : "1.0.164.97",
        "doc_count" : 5,
        "1" : {
          "value" : 1
        }
      }, {
        "key" : "1.0.167.140",
        "doc_count" : 4,
        "1" : {
          "value" : 1
        }
      }, {
        "key" : "1.0.192.154",
        "doc_count" : 1,
        "1" : {
          "value" : 1
        }
      }, {
        "key" : "1.0.192.56",
        "doc_count" : 2,
        "1" : {
          "value" : 1
        }
      }, {
        "key" : "1.0.195.13",
        "doc_count" : 1,
        "1" : {
          "value" : 1
        }
      } ]
    }
  }
}
real	0m4.298s
user	0m0.004s
sys	0m0.000s
На новом идёт тайм-аут:
# time sh elasticdie.sh 
curl: (52) Empty reply from server
real	1m32.485s
user	0m0.004s
sys	0m0.000s
            
