当前位置: 首页 > news >正文

ElasticSearch之禁用交换分区

操作系统将进程加载至内存中执行时,对于当前未使用到的内存页,可能会将相关内存页交换至硬盘上,即swap
对于性能敏感、时延敏感的应用程序比如ElasticSearchswap特性会明显影响性能和稳定性,因此最好禁用swap特性。
对于Linux环境,目前有如下手段可以禁用swap特性。

临时关闭swap的方法,执行如下命令:

sudo swapoff -a

本方法不需要重启Linux系统,但系统重启后即失效。

修改/etc/fstab,去掉包含swap的行,这样系统重启后,就不会自动挂载swap相关的分区。

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda8 during installation
UUID=124a4216-e11f-4dfb-9884-ea53ee46c8d8 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda9 during installation
UUID=317d9a34-6d00-4278-bcaa-bcb3b37fc58c none            swap    sw              0       0

修改vm.swappiness的值为1,可以极大的降低进程的内存页被交换至硬盘的概率。

查看Linux系统当前vm.swappiness的值,执行如下命令:

cat /proc/sys/vm/swappiness

输出如下:

20

或者执行如下命令:

sysctl vm.swappiness

输出如下:

vm.swappiness = 20

修改vm.swappiness的值,执行如下命令:

sudo sysctl -w vm.swappiness=30

输出如下:

vm.swappiness = 30

利用Linux系统的mlockall方法,禁止将内存页交换至硬盘。
修改ElasticSearch的配置文件elasticsearch.yml,增加如下参数:

bootstrap.memory_lock: true

修改后需要重启ElasticSearch进程。

检查mlockall是否生效,执行如下命令:

curl -X GET "https://localhost:9200/_nodes?filter_path=**.mlockall&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"

执行结果的样例,如下:

{"nodes" : {"aKgBu7LgS9a6iPYH8n2JPw" : {"process" : {"mlockall" : false}}}
}

mlockalltrue,说明增加参数后,mlockall如预期生效。
mlockallfalse,说明增加参数后,mlockall未能生效,原因则可能是运行ElasticSearch的用户缺少锁定内存的权限。

检查当前用户的权限,执行如下命令:

sudo sh -c "ulimit -a"

执行结果的样例,如下:

time(seconds)        unlimited
file(blocks)         unlimited
data(kbytes)         unlimited
stack(kbytes)        8192
coredump(blocks)     0
memory(kbytes)       unlimited
locked memory(kbytes) 65536
process              15172
nofiles              1024
vmemory(kbytes)      unlimited
locks                unlimited
rtprio               0

假如判定和权限相关,则有如下解决方法。
在启动ElasticSearch前,使用root用户增加权限,命令样例如下:

ulimit -l unlimited
./bin/elasticsearch

或者修改/etc/security/limits.conf,增加如下配置。

# allow user 'elasticsearch' mlockall
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited

相关资料

  • Disable swapping
  • 【Elasticsearch7.6系列】Elasticsearch性能优化最佳实践(二)
  • mlock(2) — Linux manual page
  • linux系统编程-内存管理day05
  • linux mlockall
  • 「锁定物理内存」mlock
  • mlock家族:锁定物理内存
  • mlockall函数
  • VirtualLock
  • Linux 交换分区要点汇总
  • 了解vm.swappiness
  • Swap 与 Swappiness
  • sudo: ulimit: command not found

相关文章:

ElasticSearch之禁用交换分区

操作系统将进程加载至内存中执行时&#xff0c;对于当前未使用到的内存页&#xff0c;可能会将相关内存页交换至硬盘上&#xff0c;即swap。 对于性能敏感、时延敏感的应用程序比如ElasticSearch&#xff0c;swap特性会明显影响性能和稳定性&#xff0c;因此最好禁用swap特性。…...

【Linux】第二十一站:文件(一)

文章目录 一、共识原理二、C系列文件接口三、从C过渡到系统&#xff1a;文件系统调用四、访问文件的本质 一、共识原理 文件 内容 属性 文件分为打开的文件 和 没打开的文件 打开的文件&#xff1a;是谁打开的&#xff1f;是进程&#xff01;----所以研究打开的文件本质是研…...

centos7 docker开启认证的远程端口2376配置

docker开启2375会存在安全漏洞 暴露了2375端口的Docker主机。因为没有任何加密和认证过程&#xff0c;知道了主机IP以后&#xff0c;&#xff0c;任何人都可以管理这台主机上的容器和镜像&#xff0c;以前贪图方便&#xff0c;只开启了没有认证的docker2375端口&#xff0c;后…...

Java王者荣耀小游戏

Background类 package LX;import java.awt.*; //背景类 public class Background extends GameObject{public Background(GameFrame gameFrame) {super(gameFrame);}Image bg Toolkit.getDefaultToolkit().getImage("C:\\Users\\ASUS\\Desktop\\王者荣耀图片\\Map.jpg&…...

谈谈Redis的几种经典集群模式

目录 前言 主从复制 哨兵模式 分片集群 前言 Redis集群是一种通过将多个Redis节点连接在一起以实现高可用性、数据分片和负载均衡的技术。它允许Redis在不同节点上同时提供服务&#xff0c;提高整体性能和可靠性。在Redis中提供集群方案总共有三种&#xff1a;主从复制、…...

【腾讯云 HAI域探秘】基于高性能应用服务器HAI部署的 ChatGLM2-6B模型,我开发了AI办公助手,公司行政小姐姐用了都说好!

目录 前言 一、腾讯云HAI介绍&#xff1a; 1、即插即用 轻松上手 2、横向对比 青出于蓝 3、多种高性能应用部署场景 二、腾讯云HAI一键部署并使用ChatGLM2-6B快速实现开发者所需的相关API服务 1、登录 高性能应用服务 HAI 控制台 2、点击 新建 选择 AI模型&#xff0c;…...

服务器tar压缩解压文件

文章目录 一、前言二、命令2.1、解压2.2、压缩 三、最后 一、前言 前端上传dist代码到服务器上后&#xff0c;是在linux上操作&#xff0c;所以和window有所不同。一般是打好dist&#xff0c;然后压缩成gz传输到服务器&#xff0c;此时在服务器上可能涉及到解压和压缩的操作&a…...

博物馆线上导览系统的设计与实现-计算机毕业设计源码64574

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…...

vue升级题

不熟悉的&#xff1a; 2&#xff0c; 3.你用过befcoreDetory 吗&#xff1f;清除定时器&#xff0c;第一个和第二个再看一下 实例加载完成是在哪个生命周期--beforecreate 7.父子组件生命周期执行顺序&#xff1f;为什么这么渲染&#xff1f;场景 8.简单描述每个周期具体适…...

Edit And Resend测试接口工具(浏览器上的Postman)

优点 可以不用设置Cookie或者Token&#xff0c;只设置参数进行重发接口测试API 使用Microsoft Rdge浏览器 F12——然后点击网络——在页面点击发起请求——然后选择要重发的请求右键选择Edit And Resend——在网络控制台设置自己要设置的参数去测试自己写的功能...

maven常用打包命令,值传递和引用传递,Java包 ,JDK 中常用的包有哪些,import java和javax有什么区别

文章目录 maven常用打包命令Java程序设计语言对对象采用的不是引用调用&#xff0c;实际上&#xff0c;对象引用是按值传递的。值传递和引用传递有什么区别Java包 &#xff0c;JDK 中常用的包有哪些import java和javax有什么区别 谈谈java基础的内容&#xff0c;而且很多人都回…...

【c++随笔14】虚函数表

【c随笔14】虚函数表 一、虚函数表&#xff08;Virtual Function Table&#xff09;1、定义2、查看虚函数表2.1、 问题&#xff1a;三种类型&#xff0c;包含一个int类型的class、一个int类型的变量、int类型的指针&#xff1a;这三个大小分别是多少呢&#xff1f;2.2、怎么发现…...

分布式链路追踪实战篇-日志库集成opentelemetry的思路

由上文分布式链路追踪入门篇-基础原理与快速应用可以知道分布式链路追踪的作用&#xff0c;但是距离应用到项目中&#xff0c;我们还需要对项目中一些关键组件进行opentelemetry的集成&#xff0c;例如日志库&#xff0c;ORM、http框架、rpc框架等。 一、日志库如何集成opentel…...

电脑投屏到电视的软件,Mac,Linux,Win均可使用

电脑投屏到电视的软件&#xff0c;Mac&#xff0c;Linux&#xff0c;Win均可使用 AirDroid Cast的TV版&#xff0c;可以上笔记本电脑或台式电脑直接投屏到各种安卓电视上。 无线投屏可以实现本地投屏及远程投屏&#xff0c;AirPlay协议可以实现本地投屏&#xff0c;大家可以按需…...

基于vue+element-plus+echarts编写动态绘图页面

我们都知道网页的echarts可以画图&#xff0c;但是很多情况下都需要编码实现绘图逻辑&#xff0c;如果有一个前端页面可以让我输入数据然后动态生成图表的话那么该多好&#xff0c;其实这个需求不难实现&#xff0c;先看效果。 整体页面分为左右两个部分&#xff0c;其中左边的…...

无人机巡检如何做到实时识别,从数据到模型全流程解读

在数字化和自动化飞速发展的今天&#xff0c;AI识别算法正在加速进入行业生产系统。 基于巡检数据的智能开发&#xff0c;识别算法突破性进展的核心驱动力在于需求——从全天候巡视的平安城市&#xff0c;到潮汐变化的交通网络&#xff0c;从广阔的水域&#xff0c;到繁忙的街道…...

zlmediakit实现rtsp流服务器

本次实现是将内存中的H264数据经过zlmediakit实现为rtsp流。 我是用的是CAPI的方式&#xff0c;将zlmediakit作为一个sdk嵌入到自己的程序中而不是作为一个独立的进进程服务。 1.编译完成zkmedialit后会得到bin include lib三个文件夹如图 其中bin中的MediaServer是作为独立的…...

保姆级 ARM64 CPU架构下安装部署Docker + rancher + K8S 说明文档

1 K8S 简介 K8S是Kubernetes的简称&#xff0c;是一个开源的容器编排平台&#xff0c;用于自动部署、扩展和管理“容器化&#xff08;containerized&#xff09;应用程序”的系统。它可以跨多个主机聚集在一起&#xff0c;控制和自动化应用的部署与更新。 K8S 架构 Kubernete…...

耶鲁博弈论笔记

编辑记录&#xff1a; 1126&#xff1a;开个新坑&#xff0c;耶鲁大学的博弈论课程&#xff0c; 和专业相关不大&#xff0c;纯兴趣&#xff0c;尽量写好一点吧 1. 首先指出博弈论是一种研究策略形式的方法&#xff0c;对于经济学中&#xff0c;完全竞争市场只能被动接受均衡…...

一个简易的URL爬虫程序(java)

该程序是一个简单的Java程序&#xff0c;用于从指定的URL中获取网页内容并保存到本地文件。通过URL类打开指定的URL链接&#xff0c;并使用openStream()方法获取输入流。然后使用Scanner类读取输入流中的内容&#xff0c;并使用PrintWriter类将读取到的内容写入到本地文件中。 …...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...