该网站正在紧急升级维护中,珠海个人建站模板,数据统计网站,网上查询个人房产信息操作系统将进程加载至内存中执行时#xff0c;对于当前未使用到的内存页#xff0c;可能会将相关内存页交换至硬盘上#xff0c;即swap。 对于性能敏感、时延敏感的应用程序比如ElasticSearch#xff0c;swap特性会明显影响性能和稳定性#xff0c;因此最好禁用swap特性。…操作系统将进程加载至内存中执行时对于当前未使用到的内存页可能会将相关内存页交换至硬盘上即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
UUID124a4216-e11f-4dfb-9884-ea53ee46c8d8 / ext4 errorsremount-ro 0 1
# swap was on /dev/sda9 during installation
UUID317d9a34-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.swappiness30输出如下
vm.swappiness 30利用Linux系统的mlockall方法禁止将内存页交换至硬盘。 修改ElasticSearch的配置文件elasticsearch.yml增加如下参数
bootstrap.memory_lock: true修改后需要重启ElasticSearch进程。
检查mlockall是否生效执行如下命令
curl -X GET https://localhost:9200/_nodes?filter_path**.mlockallpretty --cacert $ES_HOME/config/certs/http_ca.crt -u elastic:ohCxPHQBEs5*lo7F9执行结果的样例如下
{nodes : {aKgBu7LgS9a6iPYH8n2JPw : {process : {mlockall : false}}}
}mlockall为true说明增加参数后mlockall如预期生效。 mlockall为false说明增加参数后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 pagelinux系统编程-内存管理day05linux mlockall「锁定物理内存」mlockmlock家族锁定物理内存mlockall函数VirtualLockLinux 交换分区要点汇总了解vm.swappinessSwap 与 Swappinesssudo: ulimit: command not found