首页 文章

不均匀的缓存命中率

提问于
浏览
0

我已将twemproxy集成到web层中,我有6个Elasticache(1个主,5个读取副本)我遇到的问题是所有副本都有相同的密钥,一切都相同但是一个副本上的缓存命中比其他副本更多,我执行了几个加载在每次测试中仍然测试我得到了相同的结果 . 我有单独的数据引擎,在该集群的主服务器上写入,剩下的5个副本与它同步 . 所以我使用twemproxy仅用于从Elasticache读取数据而不是用于分片目的 . 所以我的简单问题是为什么我在Elasticache的单个读取副本上获得90%的命中率它应该在所有只读副本中均匀分配命中数?对?

先感谢您

1 回答

  • 0

    我记得Twemproxy哈希的一切 . 这意味着它会尝试在你给它的主人之间拆分键 . 如果您有一个主服务器,这意味着它会将所有内容散列到一台服因此,就您而言,您有一台服务器可以接受查询 . 因此,在这种情况下,它无助于您 .

    如果您希望有一个 endpoints 在一组相同的从设备上分配读取,则需要在从设备前放置一个TCP负载 balancer 器,并让您的应用程序与负载均衡器的IP:端口通信 . 常见的选项是基于软件的Nginx和HAProxy,在AWS上你可以使用它们的负载均衡器,但你可能会遇到各种资源限制,而且几乎任何硬件负载均衡器都能正常工作(尽管这很难在AWS上并非不可能) .

    使用哪种负载均衡器取决于您(或您的员工)对每个选项的舒适度和知识水平 .

相关问题