原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/_memory_lock_check.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/_memory_lock_check.html
本地英文版地址: ../en/_memory_lock_check.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
当 JVM 进行大规模垃圾回收时,它会触及堆中的每一页。
如果这些页中的任何一个被交换到了磁盘,它们都必须被交换回内存。
这会导致大量磁盘抖动,而 Elasticsearch 更愿意用这些磁盘抖动来处理请求。
有几种方法可以将系统配置为禁用交换。
一种方法是通过 mlockall
(Unix)或 虚拟锁(Windows) 请求 JVM 锁定内存中的堆。
这是通过 Elasticsearch 设置 bootstrap.memory_lock
完成的。
然而,在某些情况下,该设置可以传递给 Elasticsearch,但 Elasticsearch 无法锁定堆(例如,如果用户 elasticsearch
没有 memlock unlimited
)。
内存锁检查验证 是否 启用了 bootstrap.memory_lock
设置,也就是 JVM 是否能够成功锁定堆。
要通过内存锁检查,你可能需要配置 bootstrap.memory_lock
。