Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?

1、64 GB 内存 的 机 器 是 非 常 理 想 的 , 但是 32 GB 和 16 GB 机器 也 是 很 常 见 的 。少于 8 GB 会适 得 其 反 。

2、如 果 你 要 在 更 快 的 CPUs 和更 多 的 核 心 之 间 选 择 , 选 择 更 多 的 核 心 更 好 。 多个内 核 提 供 的 额 外 并 发 远 胜 过 稍 微 快 一 点 点 的 时 钟 频 率 。

3、 如果 你 负 担 得 起 SSD, 它将 远 远 超 出 任 何 旋 转 介 质 。 基于 SSD 的节 点 , 查询和 索 引 性 能 都 有 提 升 。 如 果 你 负 担 得 起 , SSD 是一 个 好 的 选 择 。

4、即使 数 据 中 心 们 近 在 咫 尺 ,也要 避 免 集 群 跨 越 多 个 数 据 中 心 。绝对 要 避 免 集 群跨越 大 的 地 理 距 离 。

5、请 确 保 运 行 你 应 用 程 序 的 JVM 和服 务 器 的 JVM 是完 全 一 样 的 。 在Elasticsearch 的几 个 地 方 , 使 用 Java 的本 地 序 列 化 。

6、通 过 设 置 gateway.recover_after_nodesgateway.expected_nodes、

gateway.recover_after_time 可以 在 集 群 重 启 的 时 候 避 免 过 多 的 分 片 交 换 , 这 可能会 让 数 据 恢 复 从 数 个 小 时 缩 短 为 几 秒 钟 。

7、 Elasticsearch 默认 被 配 置 为 使 用 单 播 发 现 , 以 防 止 节 点 无 意 中 加 入 集 群 。 只有在 同 一 台 机 器 上 运 行 的 节 点 才 会 自 动 组 成 集 群 。 最 好 使 用 单 播 代 替 组 播 。

8、不 要 随 意 修 改 垃 圾 回 收 器 ( CMS)和 各 个 线 程 池 的 大 小 。

9、把 你 的 内 存 的 ( 少 于 ) 一 半 给 Lucene(但 不 要 超 过 32 GB!) , 通 过ES_HEAP_SIZE 环境 变 量 设 置 。

10、内 存 交 换 到 磁 盘 对 服 务 器 性 能 来 说 是 致 命 的 。 如 果 内 存 交 换 到 磁 盘 上 , 一 个100 微秒 的 操 作 可 能 变 成 10 毫秒 。 再想 想 那 么 多 10 微秒 的 操 作 时 延 累 加 起来。 不难 看 出 swapping 对于 性 能 是 多 么 可 怕 。

11、 Lucene 使用 了大量的文件 。 同 时 , Elasticsearch 在节 点 和 HTTP 客 端之间 进 行 通 信 也 使 用 了 大 量 的 套 接 字 。 所有 这 一 切 都 需 要 足 够 的 文 件 描 述 符 。你应该 增 加 你 的 文 件 描 述 符 , 设 置 一 个 很 大 的 值 , 如 64,000。

补充 : 索 引 阶 段 性 能 提 升 方 法

1、使 用 批 量 请 求 并 调 整 其 大 小 : 每 次 批 量 数 据 5-- 15 MB 大是 个 不 错 的 起 始 点 。

2、存 储 : 使 用 SSD

3、段和 合 并 :Elasticsearch 默认 值 是 20 MB/s,对机 械 磁 盘 应 该 是 个 不 错 的 设置 。如果 你 用 的 是 SSD,可以 考 虑 提 高 到 100-- 200 MB/s。如果 你 在 做 批 量 导 入 ,完全 不 在 意 搜 索 , 你 可 以 彻 底 关 掉 合 并 限 流 。 另 外 还 可 以 增 加index.translog.flush_threshold_size 设置 , 从 默 认 的 512 MB 到更 大 一 些 的值, 比 如 1 GB,这 可 以 在 一 次 清 空 触 发 的 时 候 在 事 务 日 志 里 积 累 出 更 大 的 段 。

4、如 果 你 的 搜 索 结 果 不 需 要 近 实 时 的 准 确 度 , 考 虑 把 每 个 索 引 的index.refresh_interval 改到 30s。

5、如果 你 在 做 大 批 量 导 入 ,考虑 通 过 设 置 index.number_of_replicas: 0 关闭 副本。

相关推荐
Android_chunhui4 小时前
召回系统介绍
搜索引擎·架构
阿里云大数据AI技术4 小时前
【Elasticsearch】使用阿里云 infererence API 及 semantic text 进行向量搜索
大数据·elasticsearch·阿里云·ai搜索
JasonHome5 小时前
ElasticSearch 数据聚合与运算
elasticsearch
zmd-zk5 小时前
spark将数据输出到hive或mysql中
大数据·数据库·hive·分布式·python·mysql·spark
东方佑5 小时前
spark 分布式 原理
大数据·分布式·spark
xiaoping.huang5 小时前
Spark执行计划解析后是如何触发执行的?
大数据·spark·rdd
forestsea6 小时前
【Elasticsearch】高亮搜索:从原理到Web呈现
大数据·前端·elasticsearch
皮卡丘的忧伤7 小时前
大数据面试题--企业面试真题
大数据·面试·职场和发展
Dragon--Z7 小时前
利用 Flink 构建实时数据写入流水线:从 Paimon 到 Iceberg
大数据·flink