![同一服务器上一个与多个 memcached 实例的优缺点](https://linux22.com/image/561857/%E5%90%8C%E4%B8%80%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E4%B8%80%E4%B8%AA%E4%B8%8E%E5%A4%9A%E4%B8%AA%20memcached%20%E5%AE%9E%E4%BE%8B%E7%9A%84%E4%BC%98%E7%BC%BA%E7%82%B9.png)
我知道这可能取决于我的具体情况,但如果可能的话,让我们总体分析一下:)
我想知道使用 6 个 10MB 的 memcached 实例是否比使用一个 60MB 的实例更好。
我想说并发能力会得到改善,但性能可能会受到相当大的损失。
答案1
考虑到我们正在一般性地谈论……
使用多个实例的一个常见原因是为了提高可靠性。从统计上看,一台服务器可能会宕机,但多台服务器宕机的可能性要小得多。
如果您指的是在同一台服务器上使用多个实例,那么仍然有一些好处。运行这种设置的原因有很多,其中之一就是数据分离。由于潜在的进程崩溃问题,您还可以获得一些可靠性。但是,这些相同的好处在多台服务器上会更好地实现。
在完全假设的一般情况下,绝对没有任何缓解因素,潜在的利益并不能证明更复杂的情况是合理的。
缓解因素:不稳定的过程,缺乏并发性等;会改变问题,并可能导致不同的结论。
具体到memcached,它被认为是一个稳定且线程化的进程,其好处并不明显。
答案2
如果您对一个专为处理缓存 GB 级数据而构建的应用程序在 60 MB 上精挑细选,我向您保证,您的瓶颈在于硬件,而不是 memcached 配置。我甚至无法想象这样的场景:您的流量足以需要六个 memcached 实例来处理您的请求,但数据量却如此之少,以至于您的工作集只能容纳在那么多 RAM 中。