问题起源
https://github.com/Qihoo360/pika/issues/1023
pika分片模式,3台机器,配置默认
性能测试,QPS偶尔只有几百、几千
redis-benchmark -e -q -h codis-pika-3 -p 6379 -c 10 -r 1000 set aaa __rand_int__
问题排查
进入keyaaa
对应的槽813文件夹,发现有个LOG文件特别大,是rocksdb的日志,发现很多下面这样一段日志
Flushing column family with largest mem table size. Write buffer is using 9402224640 bytes out of a total of 10737418240
pika的配置文件正好有这样的一个配置
# pika实例所拥有的rocksdb实例使用的memtable大小上限,如果rocksdb实际使用超过这个数值,下一次写入会造成刷盘
[Rocksdb-Basic-Tuning](https://github.com/facebook/rocksdb/wiki/Setup-Options-and-Basic-Tuning)
max-write-buffer-size : 10737418240
值是10G,尝试调高为128G,再次压力测试,完全正常了。