rot*_*ten 5 neo4j database-performance
由于Neo4j主要在内存中工作,我想知道在我的Linux内核中启用大页(https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt)是否有利,然后XX:+ UseLargePages或者-XX:+(OpenJDK 8)JVM中的UseHugeTLBFS?
如果是这样,我应该使用什么经验法则来决定要配置多少个大页?
Neo4j性能指南(http://neo4j.com/docs/stable/performance-guide.html)没有提到这一点,谷歌没有提出任何其他人讨论它(无论如何在前几个搜索页面),所以我想我会问.
我正在努力从我的新Neo4j实例(2.3.2社区)获得可接受的性能.任何一点都会有所帮助.我想知道在我关闭数据库以更改JVM标志之前是否值得尝试...我希望其他人已经在这些方面做了一些实验.
谢谢!
由于Neo4j执行自己的文件分页并且不依赖操作系统来执行此操作,因此它应该是有利的,或者至少不会受到伤害.当您使用大量内存时,大量页面将降低TLB缓存未命中的可能性,Neo4j通常希望在存储大量数据时执行此操作.
然而,Neo4j并没有直接使用大页面,即使它可以,它将是一个很好的补充.这意味着您必须依赖透明的大页面和JVM提供的任何功能.当较小的页面合并时,透明的大页面可能会导致或多或少的短暂停顿.
如果您有代表性的临时环境,那么我建议您先在那里进行更改,然后测量它们的效果.
透明的大页面对于使用的程序来说大多是一个问题,mmap
因为我认为它可能导致改变IO单元的大小,这将使硬页面故障延迟更高.不过,我对此并不完全确定,如果我错了,请纠正我.
JVM实际上mmap
通过文件用于遥测和工具,/tmp
因此请确保安装此目录tmpfs
以避免过多的IO停顿,例如在安全点(!!!)期间.即使您不使用大页面,也要始终这样做.
还要确保您使用的是最新的Linux内核和最新的Java版本.
你可以通过调整G1来挤出一些百分点,但这有点像黑色艺术.
归档时间: |
|
查看次数: |
151 次 |
最近记录: |