17

以下の警告メッセージが連続して表示されます。何をすべきかわからない。ファイル記述子の数を増やすよう求めている関連投稿をいくつか見ました。

同じことをする方法は?

今増やしても、新しいインデックスの追加で同じ問題が発生しますか。(現在、約 400 のインデックス、6 つのシャード、1 つのレプリカを使用しています)。インデックスの数はさらに増える傾向にあります。

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

ノード 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 
      } 
    } 
  } 
4

3 に答える 3

13

許可されるオープン ファイルの最大数を増やす方法は、Linux ディストリビューションによって若干異なります。ubuntu と centos の手順は次のとおりです。

http://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/ http://pro.benjaminste.in/post/318453669/increase-the-number-of-file-記述子-on-centos-および

Elasticsearch のドキュメントでは、最大ファイル制限を 32k または 64k に設定することを推奨しています。あなたは 16k にいて、すでに限界に達しているので、おそらくもっと高く設定します。128kのようなもの。参照: http://www.elasticsearch.org/guide/reference/setup/installation/

開いているファイルの数を増やしてelasticsearchを再起動した後、言及したcurlコマンドを再実行して、それが機能したことを確認する必要があります。

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

より多くのインデックスを (より多くのドキュメントと共に) 追加すると、elasticsearch が追跡するファイルの数も増加することがわかります。すべての指標とドキュメントでパフォーマンスの低下に気付いた場合は、クラスターに新しいノードを追加してみてください: http://www.elasticsearch.org/guide/reference/setup/configuration/ - シャードが既にあるため、レプリケートされた構成の場合、これは比較的簡単なプロセスです。

于 2013-04-09T15:35:27.517 に答える
3
  1. エラスティックサーチを停止します。(bin/elasticsearch) のようなコマンドから開始する場合は、これを指定して、開始時にヒープを設定してください。たとえば、私は 16GB のボックスを使用しているので、コマンドは

    を。ビン/エラスティックサーチ -Xmx8g -Xms8g

    b. 構成 (elasticsearch/config/elasticsearch.yml) に移動し、次のことを確認します。

    ブートストラップ.mlockall: 真

    c. ulimits -Hnulimits -Sn200000 以上に増やします

  2. サービスとして開始する場合は、次の手順を実行します

    を。export ES_HEAP_SIZE=10g b. 構成 (/etc/elasticsearch/elasticsearch.yml) に移動し、次のことを確認します。

    bootstrap.mlockall: true c. ulimits -Hnulimits -Sn200000 以上に増やします

サービスとして開始するか、コマンド ラインから開始するかに関係なく、入力するサイズがヒープの 50% を超えないようにしてください。

于 2015-10-08T20:53:58.063 に答える