elasticsearch 第二篇(配置篇)
配置
在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 |
{
|
虚拟内存设置
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 |
PUT http://localhost:9200/m_index_test2/ |
说明:存储在内存中的索引在重启服务器后数据会丢失
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 第二篇(配置篇)的更多相关文章
- [老老实实学WCF] 第二篇 配置WCF
老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...
- 老老实实学习WCF[第二篇] 配置wcf
老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...
- (转)[老老实实学WCF] 第二篇 配置WCF
第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections. ...
- 第二篇 配置wcf
老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...
- ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套
这是ElasticSearch 2.4 版本系列的第六篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- ElasticSearch入门 第七篇:分词
这是ElasticSearch 2.4 版本系列的第七篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- ElasticSearch入门 第八篇:存储
这是ElasticSearch 2.4 版本系列的第八篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- ElasticSearch入门 第五篇:使用C#查询文档
这是ElasticSearch 2.4 版本系列的第五篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- ElasticSearch入门 第四篇:使用C#添加和更新文档
这是ElasticSearch 2.4 版本系列的第四篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
随机推荐
- python 内置模块(os)
1.OS os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cdos. ...
- ubuntu/linux系统中安装jdk以及eclipse(附图解详细步骤)
1.首先得先下载JDK和eclipsejdk下载网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21 ...
- python-生成器、迭代器、装饰器
目录 动态语言和静态语言 __slots__ 生成器 迭代器 闭包 装饰器 动态语言和静态语言 动态语言可以在运行的过程中修改代码,例如python在运行的过程中给已创建好的类添加属性和方法. 静态语 ...
- Tensorflow、Pytorch、Keras的多GPU使用
Tensorflow.Pytorch.Keras的多GPU的并行操作 方法一 :使用深度学习工具提供的 API指定 1.1 Tesorflow tensroflow指定GPU的多卡并行的时候,也是可以 ...
- Java跨平台的实现原理
不同操作系统支持的指令集有所差异,只要在不同操作系统上安装对应的jvm,jvm负责把Java字节码翻译成对应机器的二进制码,从而实现java语言的跨平台.
- 学习GIT 你只要这一篇(转)
http://blog.csdn.net/afei__/article/details/51476529 安装之后第一步 安装 Git 之后,你要做的第一件事情就是去配置你的名字和邮箱,因为每一次提交 ...
- 获取秒级时间戳和毫秒级时间戳---基于python
获取秒级时间戳和毫秒级时间戳 import timeimport datetime t = time.time() print (t) #原始时间数据print (int(t)) #秒级时间戳prin ...
- 经验之谈:10位顶级PHP大师的开发原则
导读:在Web开发世界里,PHP是最流行的语言之一,从PHP里,你能够很容易的找到你所需的脚本,遗憾的是,很少人会去用“最佳做法”去写一个PHP程序.这里,我们向大家介绍PHP的10种最佳实践,当然, ...
- Thunder团队第七周 - Scrum会议6
Scrum会议6 小组名称:Thunder 项目名称:i阅app Scrum Master:苗威 工作照片: 宋雨在照相,所以不在相片中. 参会成员: 王航:http://www.cnblogs.co ...
- 团队项目选题报告(I know)
一.团队成员及分工 团队名称:I know 团队成员: 陈家权:选题报告word撰写 赖晓连:ppt制作,原型设计 雷晶:ppt制作,原型设计 林巧娜:原型设计,博客随笔撰写 庄加鑫:选题报告word ...