配置

在es启动之前可以通过设置启动命令行启动参数、环境变量、文件等方式优化和配置es进行参数

环境变量

名称 示例 说明
ES_MIN_MEM 256M 用于配置java进程分配的最小内存
ES_MAX_MEM 1G 用于配置java进程占用的最大内存
ES_HEAP_SIZE 32G 设置ES_MIN_MEM,ES_MAX_MEM使用相同大小,ES推荐该配置并启用mlockall
ES_DIRECT_SIZE 2G 直接内存并不是虚拟机运行时数据区的一部分,在nio中引入了基于通道和缓冲区的I/O方式,它可以使用native函数直接分配堆外内存,然后通过存储在java堆中的DirectByteBuffer对象作为这块内存的引用进行操作
ES_USE_IPV4 not empty/empty 表示只使用IPV4, 若定义且值不为空则表示true

系统配置

  • 设置系统允许打开的文件描述符数量,建议设置为32k或64k, 可通过命令ulimit -n进行查询,示例:ulimit -n 65535后重启服务
    可以在启动时添加参数-Des.max-open-files=true查看允许打开的文件描述符数量

也可以通过RESTAPI查看nodes信息,输入:GET /_nodes/process?pretty
输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"cluster_name": "elasticsearch",
"nodes": {
"eE4eHSOWTK-j6IO7JJzcDQ": {
"name": "Specialist",
"transport_address": "inet[silence/192.168.1.111:9300]",
"host": "silence",
"ip": "192.168.1.111",
"version": "1.6.0",
"build": "cdd3ac4",
"http_address": "inet[/192.168.1.111:9200]",
"process": {
"refresh_interval_in_millis": 1000,
"id": 6212,
"max_file_descriptors": -1,
"mlockall": false
}
}
}
}

虚拟内存设置

es采用混合的mmapfs/niofs目录默认存储索引,在mmap计数太低时可能导致存储器异常,可通过sysctl vm.max_map_count查询,需要设置使用命令sysctl -w vm.max_map_count=262144或者在/etc/sysctl.conf中进行永久设置

内存设置

操作系统为尽量多的使用内存,会将不用的应用程序内存换出存储在swap文件系统中,交换会降低系统的性能和节点的稳定性,需要禁止,可通过三种方法进行设置:

  • 禁用swap分区
    Linux中可通过swapoff -a或在/etc/fstab中注释所有行中swap的内容
    在windows中在”系统属性”->”高级”->”性能”->”高级”->”虚拟内存”中设置

  • 配置swappiness
    通过sysctl vim.swappiness=0减少内核进行的swap交换

  • mlockall
    在*nux上使用mlockall或者在window上使用VirtualLocx尽量锁定进程的地址空间到RAM,防止es内存被换出,可通过elasticsearch.yml进行配置
    在es配置文件中添加:bootstrap.mlockall: true并重启服务即可

通过RESTAPI查看nodes信息,输入:GET /_nodes/process?pretty

在*nux系统下可能有两个原因导致mlockall设置失败:
1.es进程所属用户不具有锁定内存的权限,需要使用ulimit -l进行设置
2./tmp目录设置了noexec选项,可通过在启动es时设置-Djna.tmpdir=/path/to/new/dir解决

es配置

在ES_HOME/conf目录下两个配置文件分别为elasticsearch.yml和logging.yml, elasticsearch.yml为es所有模块提供配置, logging.yml为日志记录提供配置

  • elasticsearch.yum解读

1.network设置
network.host: 设置bind host和publish
2.path设置
path.logs: 设置日志存储目录
path.data: 设置数据存储目录
3.cluster设置
cluster.name: 设置集群标识
4.node设置
node.name: 设置节点标识
5.index设置
es支持创建存储到内存中的索引,可以在创建索引或者在进程启动时指定默认存储方式
a.在yum配置文件中配置index.store.type:memory
b.在es进程启动时通过参数-Des.index.store.type=memory设置
c.在创建index时通过参数提交,输入:

1
2
3
4
5
6
7
8
PUT http://localhost:9200/m_index_test2/
{
"index" :{
"store": {
"type": "memory"
}
}
}

说明:存储在内存中的索引在重启服务器后数据会丢失

6.在yum配置文件中可设置为环境变量的引用,比如在环境变量中定义节点的名称ES_NODE_NAME, 则可在yum配置文件中设置node.name=${ES_NODE_NAME}
7.可在es进程启动时通过进程启动参数进行设置,如-Des.node.name=silence
8.可以在es进程启动时通过-Des.config=/path/to/config/file重新指定config文件

    • logging.yum配置可参考log4j

elasticsearch 第二篇(配置篇)的更多相关文章

  1. [老老实实学WCF] 第二篇 配置WCF

    老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...

  2. 老老实实学习WCF[第二篇] 配置wcf

    老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...

  3. (转)[老老实实学WCF] 第二篇 配置WCF

    第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections. ...

  4. 第二篇 配置wcf

    老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...

  5. ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套

    这是ElasticSearch 2.4 版本系列的第六篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  6. ElasticSearch入门 第七篇:分词

    这是ElasticSearch 2.4 版本系列的第七篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  7. ElasticSearch入门 第八篇:存储

    这是ElasticSearch 2.4 版本系列的第八篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  8. ElasticSearch入门 第五篇:使用C#查询文档

    这是ElasticSearch 2.4 版本系列的第五篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  9. ElasticSearch入门 第四篇:使用C#添加和更新文档

    这是ElasticSearch 2.4 版本系列的第四篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

随机推荐

  1. DSP5509项目之用FFT识别钢琴音调(5)之开始傅里叶变换

    1. 首先电脑上下载一个音频模拟的软件 2. 研究下钢琴的声音范围27HZ到4000HZ,那么采样频率需要是信号的两倍频率以上,所以建议采样频率是16KHZ.先看一下采集到的数据,如下是空载时候采集到 ...

  2. cogs1439 货车运输

    cogs1439 货车运输 一道傻逼板子题. 边一定在最大生成树上,这个可以用消圈证明 然后kruskal跑一遍再搜一遍再建ST表再跑LCA这题就做完了. RT PS.交上去的代码把Kruskal打成 ...

  3. pyhon3.0 day01 变量、输入、输出、循环

    pyhon3.0 基础01 1 python解释器 Python的解释器很多,但使用最广泛的还是CPython.如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython, ...

  4. 解决Extjs有IE下z-index属性的问题

    在用Extjs时,有时候,在Google浏览器上面没有任何问题,但是相同的页面在IE下面就会有问题,直接报错,点击中断,进行后可以看到如下的信息: Google里面没这个问题,加一句代码就能解决在窗体 ...

  5. npp基本设置

    经过实践,本人发现Notpad++是一个很不错的软件,无论是用于文档的读取还是开发,都很赞,那么给软件做一些基本的设置,使用的时候更得心用手就显得尤为重要了. 本文主要介绍npp的基础设置,后期会不断 ...

  6. spring-boot Jpa配置

    spring.jpa.hibernate.ddl-auto ddl-auto:create----每次运行该程序,没有表格会新建表格,表内有数据会清空 ddl-auto:create-drop---- ...

  7. ASP.NET 异步Web API + jQuery Ajax 文件上传代码小析

    该示例中实际上应用了 jquery ajax(web client) + async web api 双异步. jquery ajax post $.ajax({ type: "POST&q ...

  8. pip安装Crypto注意事项

    pip install PyCrypto 1.使用pip install Crypto的方式安装的文件夹名称为crypto,而内部引用都用的Crypto路径,因此pip安装后,需要将文件夹名称修改为C ...

  9. underscore.js源码解析(五)—— 完结篇

    最近公司各种上线,所以回家略感疲惫就懒得写了,这次我准备把剩下的所有方法全部分析完,可能篇幅过长...那么废话不多说让我们进入正题. 没看过前几篇的可以猛戳这里: underscore.js源码解析( ...

  10. 20181016-4 Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 05

    作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2288 Scrum master:王硕 一.小组介绍 组长:王一可 组员:范 ...