每2秒我的WebSocket应用程序一次。将查询发送到我的hazelcast群集(2个节点,8个CPU,16 GB RAM)以获取发送客户的最新日期。
应用程序启动时需要100毫秒,但是1-2天后需要3-15秒钟,然后我再次重启时需要100毫秒,此查询发生了什么?
我的WebSocket应用使用了总CPU的%5,节点使用了60 CPU。
但是节点CPU每小时使用的CPU也在增加。
答案 0 :(得分:1)
努里,
没有看到查询和数据大小,除了提出一些一般性建议外,要提出任何建议并不容易:
在要查询的日期字段中添加索引,这将大大提高查询性能,但是需要使用可移植序列化或Hazelcast节点上可用的POJO类。
如果您每2秒需要此信息,并且我也假设您也经常更新,请使用Hazelcast Jet,定义流以查找最大日期。由于此作业仅查找传入的新更新/插入/删除,而不是整个列表,因此它可能会更快。然后,您可以将该信息存储在另一个Hazelcast Map中并使用基于密钥的访问,这非常快。
如果您共享一些信息,查询本身,数据集大小,更新率等,我可以给出更详细的建议。
答案 1 :(得分:0)
我放置了很多索引,并且我也增加了hz查询的大小,但它们没有帮助,数据少于一百万,所以出了点问题,我使用了hz数据序列化,但没有帮助