我正在检查具有32GB内存的服务器,并且我看到99%的内存使用率。
该机器与IIS,MongoDB和ElasticSearch一起使用。
没有一个过程似乎那么大。最大的是MongoDB,大约1GB。
所以,我关闭了所有内容......现在内存使用率为88%
重启后,所有服务都在运行,内存使用率为23%
这些是系统中最大的进程,一切都被关闭。正如你所看到的,一切都非常小,但大部分公羊都没有了。
如何追踪吃掉所有公羊的食物?我试过过程资源管理器,但它没有给我任何更多有用的信息。
答案 0 :(得分:0)
尝试从sysinternals使用RAMMAP,它将为您提供有关内存使用情况的更多详细信息。例如metafile。
答案 1 :(得分:0)
Elasticsearch通常有很多可用的RAM来缓存搜索结果聚合。这是为了避免内存交换。在LINUX服务器中这是非常明显且可观察的。因此,建议在生产量大的生产环境中的单独服务器中使用ES。
因此,请尝试一次检查缓存。
答案 2 :(得分:0)
看看分配给Elasticsearch的堆大小。您可以检查-Xms
文件中-Xmx
和jvm.options
的值。通常,将50%的物理RAM分配给ES,并且将bootstrap.memory_lock
设置为true,它将锁定RAM。理想情况下,如另一个答案所述,Elasticsearch应该在自己的计算机上运行。