我知道在redis集群中,总共有16384个插槽分布在节点上。如果我有这样的钥匙 entity:user:userID (like user:1234)
值是序列化的 user
如果我的应用程序有500k+个用户。它应该平均分配到每个插槽。我们目前总共有6个节点(3个主节点和3个从节点),我们总是想知道什么时候我们应该在8个节点的基础上再增加2个节点。我们也会将缓存数据写入磁盘,有时在持久化到磁盘时会收到延迟警告。我假设如果有更多的节点,那么每个节点要保存的数据就更少,因此可以获得更好的性能/资源利用率。但是除了磁盘i/o之外,是否有一个死板的性能度量让我们知道何时应该开始添加额外的节点?谢谢!
1条答案
按热度按时间sf6xfgos1#
如果限制因素是用于复制的磁盘i/o,那么使用SSD可以显著提高性能。
另外两个标志表明是时候扩展了,包括服务器负载和节点使用的内存。还有其他的,但这两个原因很简单。
如果由于请求的自然增加,限制因素是节点上的处理能力(例如服务器负载),那么向外扩展将有助于在更多节点上分配负载。如果一个节点始终高于其他节点,这可能表示存在热分区,这是一个需要单独解决的问题。
如果您的限制因素是总存储容量(如已用内存),因为缓存中存储的数据会自然增加,那么向外扩展将有助于增加集群的总存储容量。如果您有一个非常大的数据集,并且定期使用的密钥集很小,那么redis实验室的redis on flash等技术可能是适用的。