ElasticSearch
在运行过程中,涉及大量文件的打开、关闭、读、写等操作。因此当ElasticSearch
进程的文件描述符数量不足时可能导致丢失数据等故障现象。
因此为保障ElasticSearch
正常运行,需保证ElasticSearch
可以使用至少65535
个文件描述符。
查看Linux
系统当前用户的文件描述符的数量,命令如下:
shell
ulimit -a
执行结果的样例,如下:
shell
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15172
max locked memory (kbytes, -l) 65536
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 15172
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
或者执行如下命令:
shell
ulimit -n
执行结果的样例,如下:
shell
1024
在启动ElasticSearch
前,使用root
用户指定文件描述符的数量,命令样例如下:
shell
ulimit -n 65535
./bin/elasticsearch
使用root
用户修改Linux
系统的配置文件/etc/security/limits.conf
,增加如下内容:
shell
elasticsearch hard nofile 65535
elasticsearch soft nofile 65535
查看当前Elasticsearch
进程的文件描述符的最大数量,命令如下:
shell
curl -X GET "https://localhost:9200/_nodes/stats/process?filter_path=**.max_file_descriptors&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"
执行结果的样例,如下:
shell
{
"nodes" : {
"aKgBu7LgS9a6iPYH8n2JPw" : {
"process" : {
"max_file_descriptors" : 1048576
}
}
}
}
相关资料