memcached批量获取对象性能的测试

当使用memcached的get(final Collection<String> keyCollections)操作的时候当keyCollections在一定的范围内是比较稳定、低于这个范围则无法充分利用memcached的性能、高于这个范围则超过memcached的吞吐量同样影响memcached的性能;
为了知道memcached的get操作一次性能够获取多少对象、我做了如下测试:
从两台memcached服务端中存储了10000用户对象、对象的平均大小是773字节
使用get(final Collection<String> keyCollections)方法获取对象、获取对象的数量每次递增5个

测试环境
2个Memcached部署在两台普通的PC上
PC:2G内存、CPU: 2.8G *2
网络:100M的宽带局域网
memcached的客户端是:XMemcached
测试结果如下:
注:size为get的数量 执行时间是get完10000个对象耗费的时间
size:1 执行时间:5703
size:6 执行时间:4656
size:11 执行时间:2297
size:16 执行时间:2047
size:21 执行时间:1891
size:26 执行时间:1797
size:31 执行时间:1687
size:36 执行时间:1718
size:41 执行时间:1750
size:46 执行时间:1625
size:51 执行时间:1641
size:56 执行时间:1641
size:61 执行时间:1625
size:66 执行时间:1656
size:71 执行时间:1640
size:76 执行时间:1625
size:81 执行时间:1625
size:86 执行时间:1625
size:91 执行时间:1625
size:96 执行时间:1625
size:101 执行时间:1594
size:106 执行时间:1625
size:111 执行时间:1640
size:116 执行时间:1625	
size:121 执行时间:1609
size:126 执行时间:1609
size:131 执行时间:1594
size:136 执行时间:1610
size:141 执行时间:1625
size:146 执行时间:1578
size:151 执行时间:1594
size:156 执行时间:1547
size:161 执行时间:1578
size:166 执行时间:1563
size:171 执行时间:1516
size:176 执行时间:1578
size:181 执行时间:1562
size:186 执行时间:1563
size:191 执行时间:1562
size:196 执行时间:1547
size:201 执行时间:1563
size:206 执行时间:1578
size:211 执行时间:1546
size:216 执行时间:1593
size:221 执行时间:1547
size:226 执行时间:1500
size:231 执行时间:1515
size:236 执行时间:1579
size:241 执行时间:1625
size:246 执行时间:1594
size:251 执行时间:1516
size:256 执行时间:1515
size:261 执行时间:1515
size:266 执行时间:1515
size:271 执行时间:1579
size:276 执行时间:1562
size:281 执行时间:1579
size:286 执行时间:1547
size:291 执行时间:1563
size:296 执行时间:1625
size:301 执行时间:1578
size:306 执行时间:1609
size:311 执行时间:1547
size:316 执行时间:1578
size:321 执行时间:1500
size:326 执行时间:1579
size:331 执行时间:1500
size:336 执行时间:1515
size:341 执行时间:1485
size:346 执行时间:1563
size:351 执行时间:1594
size:356 执行时间:1531
size:361 执行时间:1532
size:366 执行时间:1500
size:371 执行时间:1531
size:376 执行时间:1469
size:381 执行时间:1516
size:386 执行时间:1516
size:391 执行时间:1562
size:396 执行时间:1531
size:401 执行时间:1531
size:406 执行时间:1516
size:411 执行时间:1516
size:416 执行时间:1515
size:421 执行时间:1531
size:426 执行时间:1500
size:431 执行时间:1437
size:436 执行时间:1750
size:441 执行时间:1843
size:446 执行时间:2250
size:451 执行时间:1984
size:456 执行时间:3343
size:461 执行时间:3547
size:466 执行时间:2796
size:471 执行时间:3187
size:476 执行时间:3485
size:481 执行时间:3109
size:486 执行时间:4437
size:491 执行时间:4250
size:496 执行时间:3125



结果分析
当一次获取一个对象的时候获取10000个对象需要5.7秒
当一次获取50对象的时候获取10000个对象只需要1.6秒
当一次获取450个对象的时候获取10000个对象则需要3秒多
由此可以得出结论:memcached批量获取对象随着数量的递增性能也有所提升、当批量获取的数量递增到一定的范围的时候性能达到最佳水平无法再提升、超过这个范围则会随着数量的递增性能逐渐降低。
所以合适的设置批量获取memcached对象对memcached有很大的性能提升(官方给出的数字是可以提升5倍)

猜你喜欢

转载自goodscript.iteye.com/blog/1156859
今日推荐