美文网首页Elasticsearch
Elasticsearch 集群管理2 - 集群优化

Elasticsearch 集群管理2 - 集群优化

作者: 菜花_Q | 来源:发表于2018-04-26 12:11 被阅读3次

Elasticsearch集群优化和管理

分片和副本的工作方式

在Elasticsearch中分片是最小的工作单元,保存索引数据中的一部分,  随着客户端发起的增删改查的操作,分片之间就会通过各种交互来完成客户端的请求


具体过程,看官网(有时间在整理)


影响Elasticsearch性能的因素

    软件层面:

        索引

            分词器:在全文搜索中,搜索准不准确,和分词有很大关系,分词的工作是由分词器来做,分词器根据不同的语言,不同的算法设计,比如说中文、英文都有适合它的分词器,根据业务实际情况选择合适的分词器,分词器会影响索引大小,索引的大小会影响检索的速度。在关系型数据库中,数据库越大,查询速度会变慢,在elastic中也是一样,索引越大,查询速度也会变得越慢,分词器如果选择不正确,造成词表(分词器通过分词算法构建的词库)过大,间接影响索引变得庞大,词表如何影响索引大小

            Segment数量:官方提供一个方法:optimize,可以将多个segment合并,合并的数量最小可以设置为1

optimize方法的参数

max_num_segments:段数优化,可设置值最小为1,这个值越小,查询的速度越快

only_expunge_deletes:该优化操作是否只清空打有删除标签的索引记录

flush:在执行完优化操作之后,在执行刷新操作,默认值为true

wait_for_merge:当该参数设置为true时,表示其他请求操作要等到合并segment操作结束只有,在进行相应。通常设置为false

例子:http://localhost:9200/indexName/_optimize?max_num_segments=1&only_expunge_deletes=true&wait_for_merge=false

        分片数量

            多,会导致交互多

            少,会导致分片大

            在实际生产环境中,根据相关经验,如果单个分片超过30G的大小,就开始有性能下降的现象,到了50G现象则更为明显,所以在索引初次建立的时候,根据自己的实际的业务情况,尽量的把分片定的多些,这样预留的空间较大

        对于数据量较大的业务,可以使用数据冷热分离的方案,把旧的数据,以hdfs的方式备份存放到其他的节点里,或者其他的服务器,经常用到的新数据,可以放到elastic中,可以根据时间戳建索引,当分片快到30g的时候,以时间戳的形式,另建一个索引,旧的索引丢到hdfs中,这样可以有效缓解在大数据增长下分片变大带来的性能影响

        副本数量:副本太多,性能会下降

    系统层面

            linux系统:linux的稳定性是公认的,

            发行版:centons,如果有license支持,可以选择redhat

            设置最大文件打开数:由于Elasticsearch会频繁打开和合并segment文件,所以在大数据流下,设置最大文件打开数是必须的

#查看当前最大文件打开数

ulimit -a

#设置最大文件打开数(S代表软件资源,H代表硬件资源,n代表设置的大小)

ulimit -SHn 65535

#上述方式,在服务器重启后就会失效,如果想服务器重启后仍然生效,需要在配置文件中修改

vim /etc/security/limits.conf

添加如下内容

* - nofile 65535    # - 代表软硬件资源

Linux(Cent欧式)的网络内核参数优化来提高服务器并发处理能力

Linux(Centos )的网络内核参数优化来提高服务器并发处理能力 - CSDN博客

物理层面

    内存:单实例分配32G

    硬盘:尽量大,RAID10,SSD

    CPU:配置尽量高

    网络:千兆,最好万兆

插件管理以及监控

    通过插件可以看到各种状态

    通过插件可以做一些管理操作

    通过插件可以做一些邮件告警

相关文章

网友评论

    本文标题:Elasticsearch 集群管理2 - 集群优化

    本文链接:https://www.haomeiwen.com/subject/akmylftx.html