1、禁用交换分区

  最简单的选项是完全禁用交换,通常elasticsearch是在框上运行的唯一服务,内存由ES_HEAP_SIZE环境变量控制,设有必要启用交换分区

  linux:swapoff -a 关闭交换分区

     永久禁用:编辑/etc/fstab注释掉任何包含单词swap的行

  windows:系统属性 -> 高级 -> 性能 -> 高级 -> 虚拟内存

      完全禁用分页文件可以实现相同的功能

2、swappines配置

  确保sysctl值vm.swappiness设置为0。这减少了内核交换的趋势,并且不应该导致在正常情况下交换,同时仍允许整个系统在紧急情况下交换

  注意:内核版本3.5-rcl及以上版本,swappiness为0会导致OOM杀手杀死进程,而不允许交换,将swappiness设置为1,以便仍然允许在紧急情况下交换

3、mlockall

  在linux系统上使用mlockall,或者在windows上使用virtualLock,以尝试将进程地址空间锁定到RAM,防止任何Elasticsearch内存被交换出来,可以添加到配置文件中,

  bootstrap.mlockall:true

  启动elasticsearch后,可以通过检查此请求的输出中mlockall的值来查看此设置是否已经成功应用:curl http://localhost:9200/_nodes/process?pretty

  如果你看到mlockall是false,那么意味着mlockall请求失败,在linux/unix系统上最可能的原因是,运行elasticsearch的用户没有锁定内存的权限,这可能通过在启动elaticsearch之前以root身份运行ulimit -l unlimited来授予

  mlockall可能失败的另一个原因是临时目录(通常为/tmp)使用noexec选项加载

  这可以通过指定一个新的临时目录,通过启动elasticsearch来解决

  /bin/elasticsearch -Djna tmpdir=/path/to/new/dir

  注意:如果他试图分配的内存超过可用,mlockall可能会导致JVM或shell会话退出

Java虚拟机规范中描述了两种异常

  1、如果线程请求的站深度大于虚拟机所允许的最大深度,将抛出StackOverflow Error异常,logstash的hs_err_pid4944

  2、如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutofMemary Error异常

elasticsearch内存优化设置的更多相关文章

  1. Elasticsearch内存分配设置详解

    Elasticsearch默认安装后设置的内存是1GB,对于任何一个现实业务来说,这个设置都太小了.如果你正在使用这个默认堆内存配置,你的集群配置可能会很快发生问题. 这里有两种方式修改Elastic ...

  2. Elasticsearch内存分配设置详解(转)

    Elasticsearch默认安装后设置的内存是1GB,对于任何一个现实业务来说,这个设置都太小了.如果你正在使用这个默认堆内存配置,你的集群配置可能会很快发生问题.这里有两种方式修改Elastics ...

  3. Tomcat 内存优化设置

    vi /tomcat7.0/bin/catalina.sh 开发环境 #!/bin/sh JAVA_OPTS='-Xms128m -Xmx512m -XX:PermSize=128m' 服务器: #! ...

  4. mySQL内存及虚拟内存优化设置[转]

    mySQL内存及虚拟内存优化设置 . 数据库mySQL内存优化G-LB  为了装mysql环境测试,装上后发现启动后mysql占用了很大的虚拟内存,达8百多兆.网上搜索了一下,得到高人指点my.ini ...

  5. elasticsearch 性能优化

    #系统默认的最大打开文件数的限制 vi /etc/security/limits.conf   *     -       nproc          50240    *     -       ...

  6. ElasticSearch性能优化策略【转】

    ElasticSearch性能优化主要分为4个方面的优化. 一.服务器部署 二.服务器配置 三.数据结构优化 四.运行期优化 一.服务器部署 1.增加1-2台服务器,用于负载均衡节点 elasticS ...

  7. 亿级 Elasticsearch 性能优化

    前言 最近一年使用 Elasticsearch 完成亿级别日志搜索平台「ELK」,亿级别的分布式跟踪系统.在设计这些系统的过程中,底层都是采用 Elasticsearch 来做数据的存储,并且数据量都 ...

  8. elasticsearch配置优化

    调整ES内存分配有多种方式,建议调整 elasticsearch 中的设置(还可以直接修改bin下的启动脚本). # Directory where the Elasticsearch binary ...

  9. In-Memory:内存优化表的事务处理

    内存优化表(Memory-Optimized Table,简称MOT)使用乐观策略(optimistic approach)实现事务的并发控制,在读取MOT时,使用多行版本化(Multi-Row ve ...

随机推荐

  1. 1.1 从UNIX到Linux的发展历程

    MIT的CTSS:第一个分时操作系统 ◼ Multics系统(Multiplexed Information and Computing System) ⚫ 1965年AT&T,MIT和GE的 ...

  2. python-跨域问题

    跨域:因为浏览器的同源策略,在你请求返回的时候会进行拦截 jsonp 只能发 get 请求 cors 可以发任何请求 ,在响应时加个响应头就行 同源策略对ajax阻拦 同源策略对src或href属性的 ...

  3. leetcode-algorithms-5 Longest Palindromic Substring

    leetcode-algorithms-5 Longest Palindromic Substring Given a string s, find the longest palindromic s ...

  4. 新增节点NewBook并增加属性Name="WPF"

    XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlPath); var root = xmlDoc.DocumentElement;//取到 ...

  5. 使用ajax请求接口,跨域后cookie无法设置,全局配置ajax;及使用axios跨域后cookie无法设置,全局配置axios

    问题一: 使用ajax/axios跨域请求接口,后端放行了,能够正常获取数据,但是cookie设置不进去,后端登录session判断失效 ajax解决办法: //设置ajax属性 crossDomai ...

  6. Leetcode 1022. 可被 K 整除的最小整数

    1022. 可被 K 整除的最小整数  显示英文描述 我的提交返回竞赛   用户通过次数74 用户尝试次数262 通过次数75 提交次数1115 题目难度Medium 给定正整数 K,你需要找出可以被 ...

  7. php + mysql 分布式事务

    事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元: 事务应该具有4个属性:原子性.一致性.隔离性.持续性 原子性(atomicity).一个事务是一个不可分割的工作单 ...

  8. 美团点评MySQL数据库高可用架构从MMM到MHA+Zebra以及MHA+Proxy的演进

    本文介绍最近几年美团点评MySQL数据库高可用架构的演进过程,以及我们在开源技术基础上做的一些创新.同时,也和业界其它方案进行综合对比,了解业界在高可用方面的进展,和未来我们的一些规划和展望. MMM ...

  9. 有史以来性价比最高最让人感动的一次数据库&SQL优化(DB & SQL TUNING)——半小时性能提升千倍

    昨天,一个客户现场人员急急忙忙打电话找我,说需要帮忙调优系统,因为经常给他们干活,所以,也就没多说什么,先了解情况,据他们说,就是他们的系统最近才出现了明显的反应迟钝问题,他们的那个系统我很了解,软硬 ...

  10. python 多进程练习 调用 os.system命令

    import sys import getopt import os import multiprocessing def list_all_file(path): """ ...