当尝试禁用 JVM 交换我在 Windows 机器上禁用了分页并重新启动:
通过以下方式查看集群运行状况Elastic 总部,无论如何,我看到 JVM 交换非常多:
为什么会这样?读数不准确吗?还是尽管分页为 0 MB,但仍发生交换?
答案1
这有点奇怪,但无论如何您都可以通过启用]mlockall 来禁用交换行为。
mlockall 将尝试将进程地址空间锁定到 RAM 中,防止任何 Elasticsearch 内存被换出。这可以通过将以下行添加到 config/elasticsearch.yml 文件来实现:
bootstrap.mlockall: true
Elastic HQ 使用以下方法获取交换值:
formula:"stats.os.swap.used_in_bytes / 1024 / 1024"
IIRC,ES 用途西格尔提供“stats.os.swap.used_in_bytes”和西格尔使用“Paging Files”性能计数器最终得到ES使用的分页文件的字节数。
您可以通过发出以下命令来仔细检查该计数器值
Get-Counter '\Paging Files\% Usage'
在 Windows Power Shell 中。