Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
neo4j内存/JVM设置_Neo4j - Fatal编程技术网

neo4j内存/JVM设置

neo4j内存/JVM设置,neo4j,Neo4j,我在CENTOS机器上运行neo4j 2.3,带有27g内存。 db大小约为10g(目前),我希望neo4j能够尽快工作 如果以下设置正常,请给出建议?(我是JAVA新手) 还有以下JVM操作系统选项: java -XX:+PrintFlagsFinal -version | grep -e '\(Initial\|Max\)HeapSize' uintx InitialHeapSize := 24696061952 {product} uintx MaxHeapSize

我在CENTOS机器上运行neo4j 2.3,带有27g内存。 db大小约为10g(目前),我希望neo4j能够尽快工作

如果以下设置正常,请给出建议?(我是JAVA新手)

还有以下JVM操作系统选项:

java -XX:+PrintFlagsFinal -version | grep -e '\(Initial\|Max\)HeapSize'

   uintx InitialHeapSize   := 24696061952 {product}

   uintx MaxHeapSize      := 24696061952 {product}

***我不知道为什么我在htop中看到neo4j占用了24g虚拟内存。

我假设您使用的是最新的稳定neo4j版本(2.3.1)

您可能感兴趣的链接:

从Neo4j数据库获得最佳性能可分为几个部分:

  • 机器配置
  • 数据库配置
  • 应用程序配置
  • TL;博士;-您的设置正常

    机器配置 您需要检查的是:

    • 好的磁盘(最好是SSD)。磁盘速度慢会降低性能。 有一个很好的结构帖子:。另外:通过官方Neo4j文件
    • 最大打开文件数()
    • 网络。应用程序和服务器应位于一个本地网络中。驱动程序使用HTTP REST API与Neo4j数据库通信。所以,若您不在本地网络中,那个么长请求可能会降低性能
    服务器配置 默认情况下,Neo4j足够智能,可以根据您的机器自动确定设置

    堆大小配置建议-。这里有一条基本规则——没有必要给予更多的内存,然后就需要了

    页面缓存-

    它将Neo4j数据缓存在持久介质上

    在neo4j 2.3.0中,对象缓存被完全删除,pagecache是目前唯一的缓存机制。这里的基本规则——若你们能将你们的数据库放在RAM中,那个么把这个属性设置为数据库的大小(也许,在上面加上+10-20%)。这将允许Neo4j将整个存储加载到RAM中

    应用 因此,在应用时,您应确保以下几点:

    • 始终使用指定的参数执行cypher。现在,在2.3.0中,密码在第一次执行时被编译成字节码。若您的查询已参数化,那个么它允许数据库重用已编译的密码版本。原始(第一)密码查询执行性能可能非常差

    • 缓存分片。如果您的数据库足够大,并且不适合内存,并且您正在使用集群部署,那么您可以从使用缓存分片中获益。基本上,您需要做的是将请求路由到相同的数据,路由到相同的服务器。这将允许Neo4j将最常用的数据保存在缓存中。当每台服务器的缓存中都有自己的数据块时,就会出现这种情况

    其他 我发现有趣的其他设置:

    • -设置此选项可指定无法满足Cypher planner或运行时提示时的行为
    • -缓存的密码查询执行计划数
    • -迭代期间一次读取多少关系

    我假设您使用的是最新稳定的Neo4j版本(2.3.1)

    您可能感兴趣的链接:

    从Neo4j数据库获得最佳性能可分为几个部分:

  • 机器配置
  • 数据库配置
  • 应用程序配置
  • TL;博士;-您的设置正常

    机器配置 您需要检查的是:

    • 好的磁盘(最好是SSD)。磁盘速度慢会降低性能。 有一个很好的结构帖子:。另外:通过官方Neo4j文件
    • 最大打开文件数()
    • 网络。应用程序和服务器应位于一个本地网络中。驱动程序使用HTTP REST API与Neo4j数据库通信。所以,若您不在本地网络中,那个么长请求可能会降低性能
    服务器配置 默认情况下,Neo4j足够智能,可以根据您的机器自动确定设置

    堆大小配置建议-。这里有一条基本规则——没有必要给予更多的内存,然后就需要了

    页面缓存-

    它将Neo4j数据缓存在持久介质上

    在neo4j 2.3.0中,对象缓存被完全删除,pagecache是目前唯一的缓存机制。这里的基本规则——若你们能将你们的数据库放在RAM中,那个么把这个属性设置为数据库的大小(也许,在上面加上+10-20%)。这将允许Neo4j将整个存储加载到RAM中

    应用 因此,在应用时,您应确保以下几点:

    • 始终使用指定的参数执行cypher。现在,在2.3.0中,密码在第一次执行时被编译成字节码。若您的查询已参数化,那个么它允许数据库重用已编译的密码版本。原始(第一)密码查询执行性能可能非常差

    • 缓存分片。如果您的数据库足够大,并且不适合内存,并且您正在使用集群部署,那么您可以从使用缓存分片中获益。基本上,您需要做的是将请求路由到相同的数据,路由到相同的服务器。这将允许Neo4j将最常用的数据保存在缓存中。当每台服务器的缓存中都有自己的数据块时,就会出现这种情况

    其他 我发现有趣的其他设置:

    • -设置此选项可指定无法满足Cypher planner或运行时提示时的行为
    • -缓存的密码查询执行计划数
    • -迭代期间一次读取多少关系

    非常感谢您的详细回答。我会逐一检查。你能看看我的具体设置吗?我不确定页面缓存设置是否也是JVM堆的一部分。意思:例如,我可以将页面缓存设置为10g,将JVM最大值设置为5g吗?您还知道为什么我们在htop中看到neo4j进程的24g-虚拟内存吗?Pagecache是堆外的,所以它是独立的。数据库应消耗的RAM总量
    java -XX:+PrintFlagsFinal -version | grep -e '\(Initial\|Max\)HeapSize'
    
       uintx InitialHeapSize   := 24696061952 {product}
    
       uintx MaxHeapSize      := 24696061952 {product}