2015-03-31 44 views
1

根据Redis's memory optimization page,可以设置可配置的set-max-intset-entries以优化大量整数集的内存。我做了一些小于2M的整数测试,将set-max-intset-entries设置为10000.我发现当set小于最大值时,每个int的平均值约为4个字节,当长度大于max时,每个int约为60个字节。设置Redis的set-max-intset-entries过大?

但是,内存优化页面还表示,当增加此最大值时,存在CPU /内存折衷。性能折衷来自何时增加这个最大值,并且有什么方法可以运行测试,以便我可以量化我所做的折衷?

回答

0

CPU中的折衷应该是在运行相关命令(如SADD或SCARD)的时候。

Commissar使用的基本过程是在运行测试之前和之后拉动commandstats,并确定不同的好处,例如SADD命令。用设置表做这件事,看看结果。当然,您需要反复运行测试以获得大样本量。

需要注意的是,您需要在更改内存设置的测试之间进行保存和重新启动,因为Redis在更改该设置时不会重构数据。这是保持数据和使用不同设置的最简单方法。

一旦您达到阈值,您应该看到运行命令集的时间增加(或者如果以其他方式运行,则会减少)。