MCache压力测试-4

有的问题碰到了,在没找到原因之前它就是个绊脚石,绕了几圈没找到答案它可能升级到拦路虎。当一旦被你解决,再去看这个问题觉得真是微不足道,都不好意思跟人打招呼。但时间对于你来说其实没有白费,再小的问题你遇到了并且没有一眼看穿它,就表示你缺泛相关经验,过程中你少不了用一些工具作分析,这些就是你的收获的,问题本身其实就不值一提了。

周二遇到缓存中key比较多时候堆内存泄露的问题周五解决了。

压测环境:(50kb数据,无穷随机生成key使命中率接近0%)

机器配置:见前篇

性能表现:

12/04/1317:21:01get:100251put:100253hit:0.00%get/s:98931put/s:98933in:4.78gout:0

12/04/1317:21:02get:99486put:99487hit:0.00%get/s:99081put/s:99082in:4.74gout:0

12/04/1317:21:03get:98227put:98224hit:0.00%get/s:97639put/s:97636in:4.68gout:50.00k

12/04/1317:21:04get:97166put:97165hit:0.00%get/s:96970put/s:96969in:4.63gout:0

12/04/1317:28:42get:96675put:96674hit:0.00%get/s:96288put/s:96287in:4.61gout:0

12/04/1317:28:43get:96169put:96167hit:0.00%get/s:95782put/s:95780in:4.59gout:50.00k

12/04/1317:28:44get:96608put:96606hit:0.00%get/s:96172put/s:96170in:4.61gout:50.00k

12/04/1317:37:18get:90064put:90064hit:0.00%get/s:89880put/s:89880in:4.29gout:50.00k

12/04/1317:37:19get:89993put:89989hit:0.00%get/s:89633put/s:89629in:4.29gout:100.00k

12/04/1317:37:21get:97082put:97084hit:0.00%get/s:94235put/s:94237in:4.63gout:50.00k

12/04/1318:18:31get:94784put:94783hit:0.00%get/s:94432put/s:94431in:4.52gout:50.00k

12/04/1318:18:32get:96053put:96052hit:0.00%get/s:95856put/s:95855in:4.58gout:100.00k

12/04/1318:18:33get:93364put:93362hit:0.00%get/s:92896put/s:92894in:4.45gout:0

机器负载(4CPU):

GC情况:

结论:50kb的对象,命中率为0情况下,put/s:9w,get/s:9w,内存拷贝流量:4.6g/s

接下来——

1、因为目前key其实是存在堆内,定时对堆内过期中间数据进行清理,后面会考虑将key压成整型存在堆内,key本身也放堆外。

2、寻找一个最佳的序列化方案,备选:protobuff,protostuff,大致看了下protostuff和一些评测数据,很值得期待。

3、MCache大内存(24G?48G?)测试。从前面的数据看,内存拷贝4.6/g,不会成为应用场景的瓶颈。