1

我们使用 Memcached 已经有一段时间了,最​​近开始在 AWS 中测试 Membase。我们正在一个具有 5GB RAM、750GB 磁盘 (Linux FC8) 的大型 EC2 实例上测试 Membase 1.6.0 的单个实例。

我们注意到,当 expiryPagerSleeptime 唤醒时,SQLite 似乎每小时阻止一次驱逐清除。尽管这是意料之中的(因为 SQLite 使用数据库级锁定),但我们没想到 Membase 也会阻塞。

在这种情况下,似乎当 SQLite 删除旧键时,Membase 的“每秒操作数”在几分钟内降至零或接近零。驱逐过程完成后,Membase 服务器会快速恢复。我本来预计在 SQLite 被锁定时仍会继续从 Membase RAM 读取,但情况似乎并非如此。一切都停止了;间谍客户端在等待永远不会到达的数据时会抛出异常流。

我从文档中得到的印象是 Membase 是异步的,并且会继续提供来自 RAM 的读取。我将不胜感激任何帮助或建议,以防止 Membase 阻止关键驱逐。这对我们来说是一个严重的问题,因为这个驱逐过程似乎需要大约 4 分钟才能完成并清除磁盘队列中的积压。这意味着每个小时,Membase 都会离线 4 分钟。

我还应该提到,一旦数据大于 RAM(并且磁盘上的大小正在增加),就会发生这种情况。当数据仅在 RAM 中时,我们没有注意到任何键逐出问题(可能是因为 RAM 中的键逐出发生得太快而无法引起注意。)

4

1 回答 1

1

为了不重复信息,这个问题在这里得到了回答和解释:http: //www.couchbase.com/forums/thread/membase-blocking-key-eviction

佩里

于 2010-11-04T20:30:13.900 回答