当试图禁用JVM交换时,我禁用了Windows计算机上的分页并重新启动:
在通过Elastic HQ查看集群健康状况时,我发现JVM非常互换:
为什么这样? 即使分页为0 MB,读数是否不准确或交换发生?
这有点奇怪,但是通过启用mlockall可以禁用交换行为。
mlockall将尝试将进程地址空间locking到RAM中,防止任何Elasticsearch内存被换出。 这可以通过将此行添加到config / elasticsearch.yml文件来完成:
bootstrap.mlockall: true
Elastic HQ使用以下方法获取交换值:
formula:"stats.os.swap.used_in_bytes / 1024 / 1024"
IIRC,ES使用sigar提供“stats.os.swap.used_in_bytes”, sigar使用“Paging Files”性能计数器来最终获得ES使用的页面文件的字节数。
你可以通过发行来重复检查这个计数器值
Get-Counter '\Paging Files\% Usage'
在Windows电源shell。