为什么当禁用交换时,elasticsearch 会报告交换?

为什么当禁用交换时,elasticsearch 会报告交换?

当尝试禁用 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 中。

相关内容