2013-04-09 10 views
14

Otrzymywanie poniższych komunikatów ostrzegawczych w sposób ciągły. Nie jestem pewien, co należy zrobić. Widziałem niektóre z odpowiednich postów, proszących o zwiększenie liczby deskryptorów plików.Zbyt wiele otwartych plików ostrzeżenie przed elastycznym przeszukiwaniem

Jak zrobić to samo?

Nawet jeśli teraz zwiększę, czy napotkam ten sam problem przy dodawaniu nowych wskaźników. (obecnie współpracuje z około 400 indeksami, 6 shardami i 1 repliką). Liczba indeksów rośnie bardziej.

[03:58:24,165][WARN ][cluster.action.shard  ] [node1] received shard failed for [index9][2], node[node_hash3], [P], s[INITIALIZING], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[index9][2] failed recovery]; nested: EngineCreationFailureException[[index9][2] failed to open reader on writer]; nested: FileNotFoundException[/data/elasticsearch/whatever/nodes/0/indices/index9/2/index/segments_1 (Too many open files)]; ]] 
[03:58:24,166][WARN ][cluster.action.shard  ] [node1] received shard failed for [index15][0], node[node_hash2], [P], s[INITIALIZING], reason [Failed to create shard, message [IndexShardCreationException[[index15][0] failed to create shard]; nested: IOException[directory '/data/elasticsearch/whatever/nodes/0/indices/index15/0/index' exists and is a directory, but cannot be listed: list() returned null]; ]] 
[03:58:24,195][WARN ][cluster.action.shard  ] [node1] received shard failed for [index16][3], node[node_hash3], [P], s[INITIALIZING], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[index16][3] failed recovery]; nested: EngineCreationFailureException[[index16][3] failed to open reader on writer]; nested: FileNotFoundException[/data/elasticsearch/whatever/nodes/0/indices/index16/3/index/segments_1 (Too many open files)]; ]] 
[03:58:24,196][WARN ][cluster.action.shard  ] [node1] received shard failed for [index17][0], node[node_hash3], [P], s[INITIALIZING], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[index17][0] failed recovery]; nested: EngineCreationFailureException[[index17][0] failed to open reader on writer]; nested: FileNotFoundException[/data/elasticsearch/whatever/nodes/0/indices/index17/0/index/segments_1 (Too many open files)]; ]] 
[03:58:24,198][WARN ][cluster.action.shard  ] [node1] received shard failed for [index21][4], node[node_hash3], [P], s[INITIALIZING], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[index21][4] failed recovery]; nested: EngineCreationFailureException[[index21][4] failed to create engine]; nested: LockReleaseFailedException[Cannot forcefully unlock a NativeFSLock which is held by another indexer component: /data/elasticsearch/whatever/nodes/0/indices/index21/4/index/write.lock]; ]] 

Wyjście węzłów api

curl -XGET 'http://localhost:9200/_nodes?os=true&process=true&pretty=true' 

{ 
    "ok" : true, 
    "cluster_name" : "whatever", 
    "nodes" : { 
    "node_hash1" : { 
     "name" : "node1", 
     "transport_address" : "transportip1", 
     "hostname" : "myhostip1", 
     "version" : "0.20.4", 
     "http_address" : "httpip1", 
     "attributes" : { 
     "data" : "false", 
     "master" : "true" 
     }, 
     "os" : { 
     "refresh_interval" : 1000, 
     "available_processors" : 8, 
     "cpu" : { 
      "vendor" : "Intel", 
      "model" : "Xeon", 
      "mhz" : 2133, 
      "total_cores" : 8, 
      "total_sockets" : 8, 
      "cores_per_socket" : 16, 
      "cache_size" : "4kb", 
      "cache_size_in_bytes" : 4096 
     }, 
     "mem" : { 
      "total" : "7gb", 
      "total_in_bytes" : 7516336128 
     }, 
     "swap" : { 
      "total" : "30gb", 
      "total_in_bytes" : 32218378240 
     } 
     }, 
     "process" : { 
     "refresh_interval" : 1000, 
     "id" : 26188, 
     "max_file_descriptors" : 16384 
     } 
    }, 
    "node_hash2" : { 
     "name" : "node2", 
     "transport_address" : "transportip2", 
     "hostname" : "myhostip2", 
     "version" : "0.20.4", 
     "attributes" : { 
     "master" : "false" 
     }, 
     "os" : { 
     "refresh_interval" : 1000, 
     "available_processors" : 4, 
     "cpu" : { 
      "vendor" : "Intel", 
      "model" : "Xeon", 
      "mhz" : 2400, 
      "total_cores" : 4, 
      "total_sockets" : 4, 
      "cores_per_socket" : 32, 
      "cache_size" : "20kb", 
      "cache_size_in_bytes" : 20480 
     }, 
     "mem" : { 
      "total" : "34.1gb", 
      "total_in_bytes" : 36700303360 
     }, 
     "swap" : { 
      "total" : "0b", 
      "total_in_bytes" : 0 
     } 
     }, 
     "process" : { 
     "refresh_interval" : 1000, 
     "id" : 24883, 
     "max_file_descriptors" : 16384 
     } 
    }, 
    "node_hash3" : { 
     "name" : "node3", 
     "transport_address" : "transportip3", 
     "hostname" : "myhostip3", 
     "version" : "0.20.4", 
     "attributes" : { 
     "master" : "false" 
     }, 
     "os" : { 
     "refresh_interval" : 1000, 
     "available_processors" : 4, 
     "cpu" : { 
      "vendor" : "Intel", 
      "model" : "Xeon", 
      "mhz" : 2666, 
      "total_cores" : 4, 
      "total_sockets" : 4, 
      "cores_per_socket" : 16, 
      "cache_size" : "8kb", 
      "cache_size_in_bytes" : 8192 
     }, 
     "mem" : { 
      "total" : "34.1gb", 
      "total_in_bytes" : 36700303360 
     }, 
     "swap" : { 
      "total" : "0b", 
      "total_in_bytes" : 0 
     } 
     }, 
     "process" : { 
     "refresh_interval" : 1000, 
     "id" : 25328, 
     "max_file_descriptors" : 16384 
     } 
    } 
    } 
+0

@Vamshi Krishna: jeśli możesz pomóc tutaj http://stackoverflow.com/questions/28082825/elasticsearch-log-file-huge-size-performance-degradation – inquisitive

+0

To nie jest ostrzeżenie. To błąd. Nie udało się otworzyć pliku. – EJP

Odpowiedz

12

Jak zwiększyć maksymalną liczbę dozwolonych otwartych plików zależy nieco od dystrybucji Linuksa. Oto niektóre instrukcje dla Ubuntu i CentOS:

dokumentacja

http://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/ http://pro.benjaminste.in/post/318453669/increase-the-number-of-file-descriptors-on-centos-and

elasticsearch zaleca ustawienie maksymalny limit pliku do 32k lub 64k. Ponieważ masz 16 000 i już osiągasz limit, prawdopodobnie ustawiłbym go wyżej; coś jak 128k. Zobacz: http://www.elasticsearch.org/guide/reference/setup/installation/

Po upping liczbę otwartych plików i ponownym elasticsearch będziemy chcieli, aby upewnić się, że to działało przez ponowne uruchomienie polecenia curl Państwo wymienić:

curl -XGET 'http://localhost:9200/_nodes?os=true&process=true&pretty=true' 

miarę dodawania kolejnych indeksów (wraz z więcej dokumentów), zobaczysz także liczbę plików, które elasticsearch śledzi wzrost. Jeśli zauważysz spadek wydajności ze wszystkimi wskaźnikami i dokumentami, możesz spróbować dodać nowy węzeł do klastra: http://www.elasticsearch.org/guide/reference/setup/configuration/ - ponieważ masz już zmienioną, zreplikowaną konfigurację, proces ten powinien być stosunkowo bezbolesny.

+0

Witam @Dan Noble dzięki za informacje. Mój ulimit jest już ustawiony na 65535. Jak to się dzieje, że elasticsearch zajmuje tylko 16384? Czy muszę zmienić ustawienie w pliku konfiguracyjnym, aby uzyskać ulimit ustawiony przez system operacyjny ...? –

+0

tak dokładnie. czy to się udało? –

+1

Ups ... przepraszam, że przyjąłem odpowiedź. Ale zapomniałem wspomnieć o tym samym. Tak, musiałem zmienić to samo na poziomie systemu operacyjnego, aby uzyskać zaktualizowany limit. Twój komentarz bardzo pomógł. Dzięki @Dan –

0
  1. Zatrzymaj ElasticSearch. jeśli zaczniesz od polecenia, takiego jak (bin/elasticsearch), to wpisz to, aby ustawić stertę, gdy zaczyna się . Na przykład używam pudełka o pojemności 16 GB, więc moim poleceniem jest

    a. bin/elasticsearch -Xmx8g -Xms8g

    b. Idź do config (elasticsearch/config/elasticsearch.yml) i upewnić się, że

    bootstrap.mlockall: prawdziwy

    c. Zwiększ limity ulimit -HN i limity ulimit -sn do ponad 200.000

  2. Jeśli zaczynasz jako usługa, a następnie wykonaj następujące czynności

    a. eksport ES_HEAP_SIZE = 10g b. Idź do config (/etc/elasticsearch/elasticsearch.yml) i upewnić się, że

    bootstrap.mlockall: prawdziwy C.Zwiększ limity ulimit -HN i limity ulimit -sn do ponad 200000

Upewnij się, że rozmiar wchodzi nie więcej niż 50% od sterty czy go uruchomić jako usługę lub z linii poleceń

Powiązane problemy