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_nodes、gateway.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 关闭副

本。

Elasticsearch 在部署时,对 Linux 的设置有哪些优化方 法?的更多相关文章

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

    1.64 GB 内存的机器是非常理想的, 但是 32 GB 和 16 GB 机器也是很常见的.少于 8 GB 会适得其反. 2.如果你要在更快的 CPUs 和更多的核心之间选择,选择更多的核心更好.多 ...

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

    面试官:想了解对 ES 集群的运维能力. 解答: 1.关闭缓存 swap; 2.堆内存设置为:Min(节点内存/2, 32GB); 3.设置最大文件句柄数: 4.线程池+队列大小根据业务需要做调整: ...

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

    1.关闭缓存 swap; 2.堆内存设置为:Min(节点内存/2, 32GB); 3.设置最大文件句柄数: 4.线程池+队列大小根据业务需要做调整: 5.磁盘存储 raid 方式--存储有条件使用 R ...

  4. 安装ORACLE时在Linux上设置内核参数的含义

    前两天看到一篇Redhat官方的Oracle安装文档,对于Linux内核参数的修改描述的非常清晰. 安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其 ...

  5. windows/Linux下设置ASP.Net Core开发环境并部署应用

    10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...

  6. ElasticSearch(十四):Linux下设置ElasticSearch 开机自启

    一.创建脚本文件 在  /etc/init.d  目录下,创建脚本文件 elasticsearch # cd /etc/init.d/ # vim elasticsearch 将以下内容写入文件中(其 ...

  7. python开发部署时新增数据库中表的方法

    在项目版本让运维部署时,涉及到数据库表的增加问题,想了一下,可以有四种方法 1.使用SQLAlchemy的db.create_all()方法 # -*- coding:utf-8 -*- from f ...

  8. [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  9. [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

随机推荐

  1. 使用已有流量进行RFC2544测试—信而泰网络测试仪实操

    一.测试说明 先创建流量,将流量运行起来,流量正常.再使用创建的流量进行RFC2544测试,可以避免因为配置原因流量不通,影响RFC 2544测试. 而且创建流量的时候,可以编辑报文,例如增加TCP/ ...

  2. Hadoop - HA学习笔记

    Hadoop HA概述 工作要点 通过双NameNode消除单点故障 元数据管理方式需要改变:内存中各自保存一份元数据:Edits 日志只有 Active 状态的NameNode节点可以做写操作:两个 ...

  3. Java课程设计---实现登录(1)

    1.新建登录窗口类:LoginView.java 以下是自动生成的代码 package com.system.view; import java.awt.BorderLayout; import ja ...

  4. pandas模块篇(之二)

    今日内容概要 布尔选择器 索引 数据对齐 数据操作(增出改查) 算术方法 DataFrame(Excel表格数据) 布尔选择器 import numpy as np import pandas as ...

  5. 串口通信 之 linux固定串口别名的两种方法

    转载:https://blog.csdn.net/beiguodexuecsdn/article/details/103099456 最近阅读的好文:https://blog.csdn.net/mrd ...

  6. 四、Java基础

    Java基础 在开始学习Java基础之前,我们先来学习一下IDEA 打开IDEA,新建一个项目(New Project),选择空项目(Empty Project),填写项目名(Project name ...

  7. Vue 源码解读(11)—— render helper

    前言 上一篇文章 Vue 源码解读(10)-- 编译器 之 生成渲染函数 最后讲到组件更新时,需要先执行编译器生成的渲染函数得到组件的 vnode. 渲染函数之所以能生成 vnode 是通过其中的 _ ...

  8. CF492E题解

    屑题. 考虑对于每一个 \((x,y)\),将其与 \(((x+dx) \mod n,(y+dy) \mod n)\) 连边. 答案就是连通块中权值最大的那个. 考虑对于 \((x_1,y_1)\) ...

  9. PEP小学五年级英语下册 mp3 音频和电子书

    链接:https://pan.baidu.com/s/1O805uHU-lsMKog3WLtjRkA 提取码:o8rg 链接:https://pan.baidu.com/s/1Oa4wcM5min83 ...

  10. MySQL between and 边界测试

    看到有一些博客说 between and 有不含边界的情况,于是测试了一把,记录如下.先说结论:between and 不存在不含边界的情况 1. between and 是包含边界的 id betw ...