takenliu(Liurui)

Results 61 comments of takenliu(Liurui)

-d 512000000,你要测试每条value512MB的性能吗?这种情况下性能会有很大影响的。

关注一下每个节点配置的bind参数是啥,比如bind配置 127.0.0.1,0.0.0.0,192.168.0.*,172.18.0.*几种情况下,其它节点是否能够连接过来是有区别的。

你这个qps大概多少,cpu利用了多少。 另外,配置可以参考:http://tendis.cn/#/Tendisplus/运维/conf_templ

@MollyBa 40核单节点的qps应该在50万的级别哦,你这个应该是配置不好,或者压测命令不对。

40核单节点一般在50万以上,调整好参数可以更高,不过具体多少还得要看使用场景。 节点数越多,qps越高,一般来说是线性关系。但节点数不宜太多,比如100个以内。 另外,腾讯内部一般都是采用docker隔离小机型,比如8核16g内存500GB磁盘,这样的好处是资源利用率更高,备份,回档等运维起来更方便。当然使用32核128GB这样的大机型也是支持的,具体要看业务情况和运维情况。

这个内存占用是正常的哦,也不能释放的。 内存占用:rocks.blockcachemb 512MB,memtable占用rocks.write_buffer_size(64MB)* rocks.max_write_buffer_number(2)* kvStoreCount (10)=1.2GB。 所以总占用就是512MB+1.2GB=1.7GB,这些都是随着数据写入,内存很快就会达到1.7GB,在这之后是不会减少的。 如果想降低内存占用,就需要按照你的场景,调小rocks.blockcachemb和rocks.write_buffer_size和rocks.max_write_buffer_number和kvStoreCount几个值。

tendis节点内存占用最主要就是两块,blockcache和memtable,具体计算公式就是: rocks.blockcachemb + rocks.write_buffer_size(64MB)* rocks.max_write_buffer_number(2)* kvStoreCount (10)* columnFamilyNum(1 or 2) 说明:binlog-using-defaultCF=true,则columnFamilyNum=1;binlog-using-defaultCF=false,则columnFamilyNum=2 另外,如果配置rocks.cache_index_and_filter_blocks=false,则索引和布伦过滤器的内存消耗不在rocks.blockcachemb的控制之下,会有额外的内存占用。如果希望内存可控,可以配置rocks.cache_index_and_filter_blocks=true,将索引和布伦过滤器放到blockcache里面去。

对的。可以配置rocks.write_buffer_size 8MB,这样内存就大幅度减少了,大约就是200MB了。

默认是后台daemon方式启动的,如果不想daemon方式的话可以添加配置:daemon 0