czhtr 发表于 2015-9-1 08:53:14

performance benchmark : memcached vs Kyoto Tycoon

  kt:
  http://fallabs.com/kyototycoon/
  
  说明:
  1) 客户端服务端都是8核,千兆网卡
  2) 表格横向是value的数据大小
  3) 表格的值是每秒操作数
  4) KC创建的是hash库
                           100B
                        1KB
                        10KB
                        100KB
                        1MB
                                  KT写
                        35599
                        35075
                        34518
                        33189
                        30562
                                  KT读
                        37939
                        40209
                        38095
                        38197
                        40518
                                  KT删
                        39968
                        39541
                        39200
                        37091
                        37664
                                  MEMCACHE写
                        28735
                        29394
                        28977
                        27382
                        27824
                                  MEMCACHE读
                        30515
                        30931
                        30057
                        28968
                        30721
                                  MEMCACHE删
                        32362
                        32278
                        31715
                        30609
                        32175
               

  
  补充说明:
  1) kt启用GC,开启memcache协议扩展,使用的是一套客户端。
  2) 客户端测试的时候使用并行库,多线程操作。
  3) value都是string,不涉及序列化反序列化操作
  结论:
  咋KT的性能比memcached还牛呢?而且,数据移除之后马上释放磁盘,不像Mongodb和MSSQL一样会占着文件,除非repair才会收缩。
  
  但是,数据量多了情况会不会发生变化呢?(以下测试使用三台机器,也就是一台机器保存三分之一的数据)
  我们来看下KT在每多100万数据量的时候,读写效率的情况,表格的值同样是每秒操作数:
                           0
                        1
                        2
                        3
                        4
                        5
                        6
                        7
                        8
                        9
                                  KT写
                        21010
                        11660
                        6888
                        4409
                        3311
                        2637
                        2387
                        1855
                        1803
                        1590
                                  KT读
                        26063
                        25241
                        26139
                        25931
                        25810
                        26062
                        26106
                        26055
                        25465
                        3208
             
  结论:
  读基本没有下降,写大幅下降,总数据量在千万(由于是三台机器,所以最多的一台机器数据量也只有500万)的时候相比空数据的时候只有10%的写入速度,不如Mongodb,而读取速度相比Mongodb占优。
  最后一次读取效率大幅降低,此时之前保存的数据已经过时,考虑是否GC回收过期数据会影响读取效率?
  
  最后补充一点吧:KT默认情况下memcache plugin没有支持gets,如果要批量获取的话可以直接使用get命令。
页: [1]
查看完整版本: performance benchmark : memcached vs Kyoto Tycoon