gpt4 book ai didi

Neo4j 和 Hugepages

转载 作者:行者123 更新时间:2023-12-04 18:35:48 26 4
gpt4 key购买 nike

由于 Neo4j 主要在内存中工作,我想知道在我的 Linux 内核中启用大页面( https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt )是否有利,然后在(OpenJDK 8)JVM 中启用 XX:+UseLargePages 或 -XX:+UseHugeTLBFS ?

如果是这样,我应该使用什么经验法则来决定要配置多少大页面?

Neo4j 性能指南 ( http://neo4j.com/docs/stable/performance-guide.html ) 没有提到这一点,谷歌也没有出现任何其他人讨论它(无论如何在前几个搜索页面中),所以我想我会问。

我正在努力从我的新 Neo4j 实例(2.3.2-community)中获得可接受的性能。任何一点点都会有所帮助。我想知道在我关闭数据库以更改 JVM 标志之前这是否值得尝试......我希望其他人已经按照这些方式做了一些实验。

谢谢!

最佳答案

由于 Neo4j 执行自己的文件分页并且不依赖操作系统来执行此操作,因此它应该是有利的或至少不会受到伤害。当你使用大量内存时,巨大的页面会降低TLB缓存未命中的可能性,当其中存储了大量数据时,Neo4j通常会这样做。

然而,Neo4j 不直接使用大页面,即使它可以,这将是一个很好的补充。这意味着您必须依赖透明的大页面和 JVM 提供的任何功能。当合并较小的页面时,透明的大页面可能会导致或多或少的短暂停。

如果您有一个具有代表性的登台环境,那么我建议您先在那里进行更改,然后衡量它们的效果。

对于使用 mmap 的程序来说,透明大页面大多是一个问题。因为我认为它会导致改变IO单位的大小,这会使hard-pagefault延迟更高。不过,我对此并不完全确定,所以如果我错了,请纠正我。

JVM 实际上确实使用了 mmap用于遥测和工具,通过 /tmp 中的文件所以请确保此目录安装在 tmpfs 上避免粗糙的 IO 停顿,例如在安全点 (!!!) 期间。即使您不使用大页面,也要始终这样做。

还要确保您使用的是最新的 Linux 内核和最新的 Java 版本。

您可能可以通过调整 G1 从中挤出一些百分点,但这有点像黑艺术。

关于Neo4j 和 Hugepages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35280757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com