2015-03-31 467 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在更改該設置時不會重構數據。這是保持數據和使用不同設置的最簡單方法。

一旦您達到閾值,您應該看到運行命令集的時間增加(或者如果以其他方式運行,則會減少)。