四、ES启动检查

43、堆大小检查

JVM初始堆大小(Xms)与最大堆大小(Xmx)的值设置为相同。

44、文件描述符检查

设置为65536。

45.内存锁定检查

直接禁用操作系统的交换分区。

46.最大线程数检查

最大线程数,最少2048。

47.最大虚拟内存检查

max memory size设置为unlimited。

48.最大文件大小检查

file size设置为unlimited。

49.虚拟内存区域最大数量检查

vm.max_map_count=262144

50.JVMClient模式检查

OpenJDK提供了两种JVM的运行模式:clientJVM模式与serverJVM模式。需要以server的方式来启动ES,这也是默认的。

51.串行收集检查

ES默认使用CMS收集器,不能使用串行收集器。

52.系统调用过滤器检查

bootstrap.system_call_filter:false

  1. OnError与OnOutOfMemoryError检查

升级到Java8u92使用ExitOnOutOfMemoryError。

54.Early-access检查

需要让ES运行在JVM的稳定版。

55.G1GC检查

JDK8的早期版本有些问题,会导致索引损坏,JDK8u40之前的版本都会受影响。

五、优化写入速度

56、加大translog flush间隔,目的是降低iops、writeblock。

index.translog.durability:request这是影响ES写入速度的最大因素。

57、加大index refresh间隔,除了降低I/O,更重要的是降低了segmentmerge频率。

58、调整bulk请求。

59、优化磁盘间的任务均匀情况,将shard尽量均匀分布到物理主机的各个磁盘。

60、优化节点间的任务分布,将任务尽量均匀地发到各节点。

61、优化Lucene层建立索引的过程,目的是降低CPU占用率及I/O,例如,禁用_all字段。

六、搜索优化

62、为不再更新的只读索引执行forcemerge,将Lucene索引合并为单个分段。

63、使用eager_global_ordinals

64、关闭norms

65、index.store.preload预加载,加速查询。

66、调节搜索请求中的batched_reduce_size

67、设置action.search.shard_count。

68、近似聚合.

69、深度优先和广度优先。

70、ARS PUT /_cluster/settings{"transient":{"cluster.routing.use_adaptive_replica_selection":true}}

71、doc_values

如果确信某字段不需要排序或者聚合,或者从脚本中访问字段值,那么我们可以设置 doc_values = false,这样可以节省磁盘空间。

72、field_data

fielddata默认是关闭的,只有在使用text字段进行排序或聚合的时候要用到。

七、故障诊断

73、Profile API慢查询诊断

检查查询执行时间和其他详细信息。

74、Explain API

对于未分配的分片,给出为什么没有分配的具体原因。

对于已分配的分片,给出为什么将分片分配给特定节点的理由。

75、节点CPU使用率高节点占用CPU很高

hot_threads API。

76、节点内存使用率高

bulk队列

Netty的内存池。

indexing buffer

超大数据集的聚合

分段内存。

Fielddata cache:

77、ES集群分片磁盘容量策略

PUT _cluster/settings

{

“transient”: {

“cluster.routing.allocation.disk.watermark.low”: “85%”,

“cluster.routing.allocation.disk.watermark.high”: “50gb”,

“cluster.info.update.interval”: “1m”

}

}

78、I/O分析工具

iostat、blktrace、pidstat、iotop、systemtap、

79、内存诊断

top、free、vmstat、sar -B、sar -W

80、cpu诊断

vmstat/mpstat/

strace –c、perf

81、网络连接和流量

Sar、netstat –anp等。

八、其它相关的

82、集群重启步骤一

第一步:先暂停集群的shard自动均衡。

curl -XPUT http://ip:9200/_cluster/settings -d’

{

“transient” : {

“cluster.routing.allocation.enable” : “none”

}

}’

83、集群重启步骤二

第二步:shutdown你要升级的节点

curl -XPOST http://ip:9200/_cluster/nodes/_local/_shutdown

也可以通过各自的节点ID来关闭指定的节点(或者像这里说明 的别的选项):

curl -XPOST ‘http://ip:9200/_cluster/nodes/nodeId1,nodeId2/_shutdown’

84、集群重启步骤三

第三步:升级重启该节点,并确认该节点重新加入到了集群中

85、集群重启步骤四

第四步:重复2-3步,升级重启其它要升级的节点。

86、集群重启步骤五

第五步:重启启动集群的shard均衡

curl -XPUT http://ip/_cluster/settings -d’

{

“transient” : {

“cluster.routing.allocation.enable” : “all”

}

}’

到此整个集群安全升级并且重启结束。

87、集群规划

数据总量,每天的增量;

查询类型和搜索并发,QPS;

SLA级别。

88、节点数量

节点总数不应该太多,一般来说,最大集群规模最好控制在100个节点左右。

89、分片大小及分片数量

单个分片不要超过50GB,最大集群分片总数控制在几十万的级别。太多分片增加了主节点的管理负担,而且集群重启恢复时间会很长。

90、服务器配置

建议为集群配置较好的硬件,搜索对CPU、内存、磁盘的性能要求都很高,要达到比较低的延迟就需要较好的硬件资源。使用相同配置的服务器。

91、内存比较大的服务器,官方建议使用内存大小除以64GB来确定要部署的节点数,每个节点配置一部分数据盘,优点是利用率最高,缺点是部署复杂。

92、Commit Point

Lucene中有一个文件,用来记录所有Segments信息,叫做CommitPoint。查询时会同时查询所有Segments,并且对结果汇总。

93、es中默认是30分钟才flush一次磁盘

es数据提交到os chche。默认30分钟才flush一次磁盘,所以才需要translog。

94、flush命令的api如下:

POST /blogs/_flush //flush特定的index

POST /_flush?wait_for_ongoing//flush

95、elasticsearch可在本地离线安装文档。

Elasticsearch 100问(下)相关推荐

  1. Elasticsearch 100问(上)

    一.基本概念 1.ElasticSearch是什么: Elasticsearch是一个分布式的,开源的NoSQL数据库.通常做为文档搜索数据库. 2.什么是索引(indices) indices分为两 ...

  2. MySQL 高频 100 问

    欢迎关注方志朋的博客,回复"666"获面试宝典 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉水. 前一阵系统的学习了一下My ...

  3. 深度学习100问-1:深度学习环境配置有哪些坑?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 从今天起,开辟一个新的专栏,名字就叫深度学习100问.选取深度学习 ...

  4. 深度学习100问:图像语义分割有哪些经典的上采样方法?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 大家都知道目前主流的语义分割模型都是编码-解码框架的.通过编码器不 ...

  5. 嵌入式系统理解及相关知识100问

    开发板(demoboard)是用来进行嵌入式系统开发的电路板,包括中央处理器.存储器.输入设备.输出设备.数据通路/总线和外部资源接口等一系列硬件组件.开发板一般由嵌入式系统开发者根据开发需求自己订制 ...

  6. [灵魂拷问]MySQL面试高频100问(工程师方向)

    前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉水. 前一阵系统的学习了一下MySQL,也有一些实际操作经验,偶然看到一篇和MySQL相关的面 ...

  7. Oracle弱智100问

    Oracle弱智100问 1. Oracle安装完成后的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger s ...

  8. 示波器基础知识100问

    www.EET-china.com 点击打开链接 编者注: 本文件为电子工程专辑网站编辑部原创,电子工程专辑享有本文章完全著作权, 如需转载该文章,必须经过电子工程专辑网站编辑部同意.联系电子工程专辑 ...

  9. 二建《机电》案例 100 问

    二建<机电>案例 100 问 1.在定制分支电缆时,应注意哪些问题? [答案]订购分支电缆时,应根据建筑电气设计图确定各配电柜位置,提供主电缆的型 号.规格及总有效长度:各分支电缆的型号. ...

最新文章

  1. mustache模板技术
  2. Alpha预乘-混合与不混合[转]
  3. 佳能c3320怎么设置接收方_入门级单反相机佳能800D是否值得买?在我看来价格决定一切...
  4. Linux 汇编学习
  5. 文件如何存储c语言,急求如何将下列C语言程序数据存储到文件中?
  6. 建造者模式Builder
  7. 大叔手记(2):为每个应用程序池单独设置aspnet.config配置文件
  8. matlab读取txt文档三行数据库,Matlab中的textread textscan读取文本文件
  9. Matisse图片选择
  10. 教你如何关闭Surface Go的触摸键盘?
  11. SEO怎么做?SEO的具体流程是什么?
  12. python Django 快捷键
  13. Win10 1809版本多用户远程登陆
  14. mybatis自联表三级菜单
  15. 【Android】自定义View和控件时出现Binary XML file line #报错行数: Binary XML file line #9: Error inflating class 类路径
  16. 层次分析法实例:选择旅游目的地
  17. 全国计算机等级考试补考时间,全国计算机等级考试可以补考么(全国计算机一级报名时间)...
  18. 【干货】淘金币用户体验升级(含直播回放)
  19. SQL Server2012 序列号 注册码
  20. 常用CASE工具介绍 1

热门文章

  1. 黑火药跟黄火药的区别在哪里?
  2. 怎样取SAP中的业务对象状态
  3. Payment Terms 付款条件
  4. ABAP性能优化之向内表添加纪录
  5. 网上找到的一段关于SAP支持服务的QA (转)
  6. SAP SD 条件技术
  7. 如何确定固定资产入账价值
  8. SAP系统中发送消息的几种办法
  9. 会计期间的开关(T-code:OB52)
  10. 設備(IE01/IE02/IE03)客製欄位及BAPI處理