Google cloud platform Neo4j本地与云的性能差异
在VirtualBox托管的VM上运行的本地Neo4j实例与Google Cloud(GCP)中托管的基本相同的Neo4j实例之间,我遇到了巨大的性能差异。该任务涉及从同样位于GCP中的Postgres实例执行简单加载。整个加载过程在VirtualBox托管的VM实例上需要1-2分钟,在GCP VM实例上需要1-2小时。本地硬件设置是一个运行VirtualBox 6.1的10年的8核16GB桌面 通过VirtualBox和GCP,我可以执行以下类似任务:Google cloud platform Neo4j本地与云的性能差异,google-cloud-platform,neo4j,virtual-machine,Google Cloud Platform,Neo4j,Virtual Machine,在VirtualBox托管的VM上运行的本地Neo4j实例与Google Cloud(GCP)中托管的基本相同的Neo4j实例之间,我遇到了巨大的性能差异。该任务涉及从同样位于GCP中的Postgres实例执行简单加载。整个加载过程在VirtualBox托管的VM实例上需要1-2分钟,在GCP VM实例上需要1-2小时。本地硬件设置是一个运行VirtualBox 6.1的10年的8核16GB桌面 通过VirtualBox和GCP,我可以执行以下类似任务: 提供一个4核8GB Ubuntu 18
我所能想到的是,我10年前的内核比当前的GCP vCPU快得多,或者是内存堆问题。我对java了解不多,除了堆很重要而且很挑剔。两个系统上的模式是否完全相同?如果您缺少负载查询中使用的关键索引,该索引可以很容易地解释您所看到的差异
例如,如果使用某个属性对节点进行匹配或合并,则通过索引快速查找节点,或对该标签的所有节点执行标签扫描,检查每个节点是否存在或是否是正确的节点,两者之间存在差异。还要了解,此过程对每一行都重复,因此在最坏的情况下,它不是单个标签扫描,而是n倍的扫描。两个系统上的模式是否完全相同?如果您缺少负载查询中使用的关键索引,该索引可以很容易地解释您所看到的差异
例如,如果使用某个属性对节点进行匹配或合并,则通过索引快速查找节点,或对该标签的所有节点执行标签扫描,检查每个节点是否存在或是否是正确的节点,两者之间存在差异。还要了解,此过程对每一行都重复,因此在最坏的情况下,它不是单个标签扫描,而是n倍。两个系统上的模式是否完全相同?如果您缺少负载查询中使用的关键索引,该索引可以很容易地解释您所看到的差异。例如,如果使用某个属性对节点进行匹配或合并,则通过索引快速查找节点,或对该标签的所有节点执行标签扫描,检查每个节点是否存在或是否是正确的节点,两者之间存在差异。还要了解,这个过程会对每一行重复,所以在最坏的情况下,它不是单个标签扫描,而是n倍。1。您的VirtualBox虚拟机和GCP虚拟机上是否有相同数量的内核和相同数量的RAM?2.您是否在本地计算机上使用SSD或HDD?请看一看“持久磁盘性能是可预测的,并随着配置的容量线性扩展,直到达到实例配置的VCPU的限制”,以及“当您需要更多磁盘空间或更好的性能时,请调整磁盘大小,并可能添加更多VCPU,以增加更多存储空间、吞吐量和IOPS”也请选中。选择proper@InverseFalcon,我相信您是对的,我的本地实例确实有几个索引(我认为我早就放弃了这些索引)。GCP实例不会。我今天会证明你的理论。如果我有选择的话,然后接受你的答案。我是新来的,所以我看不到接受答案功能。@InverseFalcon你的建议奏效了。将这些索引应用到GCP云中会使它与本地实例同时完成。我会接受你的答案,但我不会o似乎没有权限。两个系统上是否有完全相同的:架构?如果您缺少负载查询中使用的关键索引,该索引可以轻松解释您看到的差异。例如,如果您使用某个属性对节点进行匹配或合并,则通过索引