hazelcast分布式查询每小时都在变慢

hazelcast分布式查询每小时都在变慢,hazelcast,Hazelcast,每2秒我的WebSocket应用程序。将查询发送到my hazelcast群集(2个节点,8个CPU,16 GB RAM),以获取发送给客户的最新日期 当应用程序启动时需要100毫秒,但在1-2天后需要3-15秒,然后当我再次重新启动时需要100毫秒,这个查询发生了什么 我的WebSocket应用程序使用了总CPU的%5,节点使用了%60 CPU 但是节点CPU的使用率每小时都在增加。Nuri 在没有看到查询和数据大小的情况下,除了一些一般性建议之外,很难提出任何建议: 向正在查询的日期字段添

每2秒我的WebSocket应用程序。将查询发送到my hazelcast群集(2个节点,8个CPU,16 GB RAM),以获取发送给客户的最新日期

当应用程序启动时需要100毫秒,但在1-2天后需要3-15秒,然后当我再次重新启动时需要100毫秒,这个查询发生了什么

我的WebSocket应用程序使用了总CPU的%5,节点使用了%60 CPU

但是节点CPU的使用率每小时都在增加。

Nuri

在没有看到查询和数据大小的情况下,除了一些一般性建议之外,很难提出任何建议:

  • 向正在查询的日期字段添加索引,这将大大提高查询性能,但需要使用可移植序列化或Hazelcast节点上可用的POJO类

  • 如果您每隔2秒需要此信息&我假设您也在频繁更新,请使用Hazelcast Jet,定义流以查找最长日期。由于此作业将只查看传入的新更新/插入/删除,而不是整个列表,因此速度可能会更快。然后,您可以将此信息存储在另一个Hazelcast地图中&使用基于密钥的访问,这非常快


如果您共享一些信息、查询本身、数据集大小、更新率等,我可以给出更详细的建议

我放置了许多索引,并且我还增加了hz查询大小,它们没有帮助,数据不到100万,因此出现了一些问题,我使用hz数据序列化,但没有帮助

尝试打开诊断日志并发布日志。例如,使用
info
hazelcast.diagnostics.enabled
设置为
true
hazelcast.diagnostics.metric.level
。此外,还值得检查对象计数。它可能是正在创建而不是删除的数据。如果可能,您可以共享您的查询&索引配置。