我们面临 Apache Ignite 的性能问题。我们的应用程序在 Azure Kubernetes (v1.27.1) 上运行,它有 24 个大小为“Standard_F64s_v2”的节点(处理大约 1300 万条记录)。 我们经常得到
[警告][jvm-pause- detector-worker][IgniteKernal] JVM 暂停时间可能过长:xxxx 毫秒
执行任何操作(例如读取、编码等)时
系统信息(Apache Ignite 集群)
请协助我们确定此问题的根本原因。
我需要更多信息才能提供帮助。 Azure Standard_F64s_v2 具有 64 个核心和 128 GB 内存。但你是说 64 GB 中有 32 GB 吗?那么另外 64 GB 呢?另外你用的是K8。您是否确保所有 24 个 Pod 都在单独的物理主机上运行?您也没有说明您配置了多少堆外空间。
请注意,Ignite 将其数据存储在堆外内存中。 JVM 用于访问堆外内存以执行 SQL 查询和其他数据操作等操作。它们使用 JVM,并且根据操作量,它可能会影响垃圾收集操作。有时,较小的 JVM 设置会有所帮助,因为垃圾收集会更频繁地发生,但也可以解决更少的对象/收集周期。