Kubernetes 上的 Ne4J 性能太慢
Ne4J performance on Kubernetes is too slow
我正在使用 Kubernetes 进行部署。我们有 Node.js 和基于 Neo4j 的应用程序堆栈。
对于较低的环境,我们在 Kubernetes 本身中使用单核实例,并配置了基于 Node.js 的应用程序。在那种情况下它工作正常。例如,简单登录 API 大约需要 660 毫秒。
但对于更高的环境,我们使用的是使用此 helm chart here 安装的临时集群。我们有三台机器集群。每台机器拥有一个核心和一个只读副本。我们正在使用 POD affinity 在 AWS 上 t2.xlarge 类型的机器上安装所有核心和只读副本。
但是这个集群的性能太慢了。相同的代码和相同的登录 API 大约需要 4.93 秒。
我已经为核心分配了 4GB 堆内存,为只读副本分配了 2G 堆内存。所有这些配置集群性能太慢。我不确定这里出了什么问题。
有人可以指出我做错了什么吗?
感谢我总是从 Whosebug 社区获得帮助。
我能够解决这个问题。 Neo4J 没有任何问题,这是初步理解,因为这是我们在新集群中唯一的变化。有几个问题。
1) 一个是过去需要花费大量时间的查询。我们有密码查询,它将搜索具有某些属性的所有节点,然后使用该查找节点与节点之间关系的结果。这不是您编写查询的理想方式。我们必须修复以将复杂的查询用于单个语句。
2) 我们的后端服务正在占用大量 CPU 资源。我在后端服务中设置了限制,这使得结果的查询和处理非常缓慢。所以增加后端服务的限制解决了我们的问题。
我正在使用 Kubernetes 进行部署。我们有 Node.js 和基于 Neo4j 的应用程序堆栈。
对于较低的环境,我们在 Kubernetes 本身中使用单核实例,并配置了基于 Node.js 的应用程序。在那种情况下它工作正常。例如,简单登录 API 大约需要 660 毫秒。
但对于更高的环境,我们使用的是使用此 helm chart here 安装的临时集群。我们有三台机器集群。每台机器拥有一个核心和一个只读副本。我们正在使用 POD affinity 在 AWS 上 t2.xlarge 类型的机器上安装所有核心和只读副本。
但是这个集群的性能太慢了。相同的代码和相同的登录 API 大约需要 4.93 秒。
我已经为核心分配了 4GB 堆内存,为只读副本分配了 2G 堆内存。所有这些配置集群性能太慢。我不确定这里出了什么问题。
有人可以指出我做错了什么吗?
感谢我总是从 Whosebug 社区获得帮助。
我能够解决这个问题。 Neo4J 没有任何问题,这是初步理解,因为这是我们在新集群中唯一的变化。有几个问题。 1) 一个是过去需要花费大量时间的查询。我们有密码查询,它将搜索具有某些属性的所有节点,然后使用该查找节点与节点之间关系的结果。这不是您编写查询的理想方式。我们必须修复以将复杂的查询用于单个语句。 2) 我们的后端服务正在占用大量 CPU 资源。我在后端服务中设置了限制,这使得结果的查询和处理非常缓慢。所以增加后端服务的限制解决了我们的问题。