2013-04-09 18 views
14

Ottenere continuamente i seguenti messaggi di avviso. Non so cosa dovrebbe essere fatto. Ho visto alcuni dei post pertinenti che chiedevano di aumentare il numero di descrittori di file.Troppi file aperti avviso da elasticsearch

Come fare lo stesso?

Anche se aumento ora, avrò lo stesso problema con l'aggiunta di nuovi indici. (attualmente con circa 400 indici, 6 frammenti e 1 replica). Il numero di indici tende a crescere di più.

[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]; ]] 

uscita dei nodi 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: se puoi aiutare qui http://stackoverflow.com/questions/28082825/elasticsearch-log-file-huge-size-performance-degradation – inquisitive

+0

Questo non è un avviso. È un errore Non sei riuscito ad aprire un file. – EJP

risposta

12

Come aumentare il numero massimo di file aperti consentiti dipende un po 'sul vostro distribuzione Linux. Ecco alcune istruzioni per Ubuntu e CentOS:

documentazione

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

L'elasticsearch consiglia di impostare il limite massimo di file da 32k o 64k. Dato che sei a 16k e stai già raggiungendo un limite, probabilmente lo imposterei più in alto; qualcosa come 128k. Vedere: http://www.elasticsearch.org/guide/reference/setup/installation/

Dopo aumentando il numero di file aperti e riavviare elasticsearch si vuole verificare che ha funzionato da ri-eseguendo il comando ricciolo lei ha citato:

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

Come si aggiungono altri indici (insieme a più documenti), vedrai anche il numero di file che elasticsearch tiene traccia di aumentare. Se si nota un peggioramento delle prestazioni con tutti gli indici e i documenti, è possibile provare ad aggiungere un nuovo nodo al cluster: http://www.elasticsearch.org/guide/reference/setup/configuration/: poiché si dispone già di una configurazione replicata, questo dovrebbe essere un processo relativamente indolore.

+0

Ciao @Dan Noble grazie per le informazioni. Il mio ulimit è già impostato su 65535. Come mai elasticsearch sta prendendo solo 16384? Devo cambiare le impostazioni nel file di configurazione per ottenere l'ulimit impostato dal sistema operativo ...? –

+0

sì preciso. hai capito? –

+1

Oops ... scusate, ho accettato la risposta. Ma ho dimenticato di menzionare lo stesso. Sì, ho dovuto cambiare lo stesso a livello di sistema operativo per ottenere il limite aggiornato. Il tuo commento ha aiutato molto. Grazie @Dan –

0
  1. Stop ElasticSearch. se si inizia da un comando come (bin/elasticsearch), specificare questo per impostare l'heap mentre inizia. Ad esempio, utilizzo una scatola da 16 GB, quindi il mio comando è

    a. bin/elasticsearch -Xmx8g -Xms8g

    b. Vai a config (elasticsearch/config/elasticsearch.yml) e garantire che

    bootstrap.mlockall: vero

    c. Aumentare ulimits -HN e ulimits -sn a più di 200000

  2. Se si avvia come un servizio, quindi effettuare le seguenti operazioni

    a. export ES_HEAP_SIZE = 10g b. Vai a config (/etc/elasticsearch/elasticsearch.yml) e garantire che

    bootstrap.mlockall: vero c.Aumentare ulimits -HN e ulimits -sn a più oltre 200000

Assicurarsi che la dimensione immesso non è superiore al 50% del mucchio se si avvia come un servizio o dalla riga di comando

Problemi correlati