1.ulimit 限制打开文件数
sudo su
ulimit -n 65536
su elasticsearch
或 创建elasticsearch用户,修改/etc/security/limits.conf,添加elasticsearch - nofile 65536
3.JVM参数:
默认最大最小内存2G
规则:
设置最大最小的内存相等。
堆越大,需要内存越大。太大的堆导致GC事件长。
内存大小设置不要超过物理机的50%,确保剩下的50%的够物理机使用。
不要将Xmx设置为高于JVM用于压缩对象指针的截止值(压缩的oops);精确截止值不等,但接近32 GB。您可以通过在日志中查找行来验证您是否处于极限状态:
4.关闭交换区
config/elasticsearch.yml 中设置 bootstrap.memory_lock: true 一定要注意jvm大小。
5.检查max_file_descriptors(第1条)
GET _nodes/stats/process?filter_path=**.max_file_descriptors
6.虚拟内存,增加mmap
sysctl -w vm.max_map_count=262144
7.线程数设置:
ulimit -u 2048(设置之前,通过ulimit -u查看)或 设置nproc为2048 到 /etc/security/limits.conf
8.mapping:
不同的mapping类型相同的字段名称必须用相同的mapping,一旦确定mapping则无法修改,除非重新跑
9.text和keyword
如果要检索全文,如检索文章等信息,建议用text;如果检索确定的值,如email等,则用keyword
sudo su
ulimit -n 65536
su elasticsearch
或 创建elasticsearch用户,修改/etc/security/limits.conf,添加elasticsearch - nofile 65536
3.JVM参数:
默认最大最小内存2G
规则:
设置最大最小的内存相等。
堆越大,需要内存越大。太大的堆导致GC事件长。
内存大小设置不要超过物理机的50%,确保剩下的50%的够物理机使用。
不要将Xmx设置为高于JVM用于压缩对象指针的截止值(压缩的oops);精确截止值不等,但接近32 GB。您可以通过在日志中查找行来验证您是否处于极限状态:
4.关闭交换区
config/elasticsearch.yml 中设置 bootstrap.memory_lock: true 一定要注意jvm大小。
5.检查max_file_descriptors(第1条)
GET _nodes/stats/process?filter_path=**.max_file_descriptors
6.虚拟内存,增加mmap
sysctl -w vm.max_map_count=262144
7.线程数设置:
ulimit -u 2048(设置之前,通过ulimit -u查看)或 设置nproc为2048 到 /etc/security/limits.conf
8.mapping:
不同的mapping类型相同的字段名称必须用相同的mapping,一旦确定mapping则无法修改,除非重新跑
9.text和keyword
如果要检索全文,如检索文章等信息,建议用text;如果检索确定的值,如email等,则用keyword