ElasticSearch提示too many open files, 如何去分析定位?
$ curl -XGET "172.18.192.100:9200/_nodes/stats/process?pretty" { "_nodes" : { "total" : 3, "successful" : 3, "failed" : 0 }, "cluster_name" : "it-elk", "nodes" : { "rBm53XWOTk-2v3MHPa2FDA" : { "timestamp" : 1589854287039, "name" : "it-elk-node3", "transport_address" : "172.18.192.101:9300", "host" : "172.18.192.101", "ip" : "172.18.192.101:9300", "roles" : [ "ingest", "master", "data" ], "attributes" : { "ml.machine_memory" : "134778376192", "ml.max_open_jobs" : "20", "xpack.installed" : "true" }, "process" : { "timestamp" : 1589854286789, "open_file_descriptors" : 59595, # 当前打开的文件 "max_file_descriptors" : 65535, # 系统允许打开的最大文件 "cpu" : { "percent" : 3, "total_in_millis" : 86105320 }, "mem" : { "total_virtual_in_bytes" : 1669361537024 } } }
当然, 也可以从系统层面, 看一下当前限制
$ ps -ef | grep elasticsearch # 找到进程的PID elastic+ 128967 1 99 5月18 ? 1-13:22:07 /usr/share/elasticsearch/jdk/bin/java -Xms32g -Xmx32g -XX:+UseConcMarkSweepGC $ cat /proc/128967/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 4096 4096 processes Max open files 65535 65535 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 514069 514069 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us
参考文档:
https://www.elastic.co/guide/en/elasticsearch/guide/master/_file_descriptors_and_mmap.html
ElasticSearch: Unassigned Shards, how to fix?
Leave a Reply