为了提高读取性能,我尝试使用较少的底层sstables和lcs,因此我按照一些文章的建议将sstable\u size\u(单位:mb)设置为1280mb,其中指出160mb的默认值是很久以前由cassandra core团队在一台非常旧的服务器上选择的,现在只有2gb ram。然而,我担心的是稳定大小的值越大(单位为mb)的含义。
据我所知,lcs定期将l0中的所有sstable与l1中的所有sstable压缩在一起,然后替换l1的全部内容。因此,每次替换l1时,硬件对cpu/ram和写放大的要求可能会更高,sstable\u size\u的值(单位:mb)。实际上,如果sstable\u size\u in\u mb=1280mb,那么每次必须将l1中1280mb的10个表与所有l0表合并。可能还有更高层次的含义,即使要替换的sstables看起来更低(一个l1 sstables与10个l2 sstables合并,然后这10个l2 sstables被替换)。
问题:
以mb为单位的sstable\u size\u的值越高,可以通过降低cql表中涉及的sstable的数量来提高读取性能。然而,对于sstable\u size\u(单位:mb)有如此高的值(比如1280mb)还有什么其他含义?
如果值越高,是否有相应的配置需要优化(garbadge collector、chunk cache,…),以便在压缩较大的sstables和较少的gc活动时获得更好的性能?
更主观的问题是,您在部署中使用的sstable\u size\u(mb)的典型值是多少?
暂无答案!
目前还没有任何答案,快来回答吧!