zoukankan      html  css  js  c++  java
  • 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

    image

    补充说明:

    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

    image

    结论:

    读基本没有下降,写大幅下降,总数据量在千万(由于是三台机器,所以最多的一台机器数据量也只有500万)的时候相比空数据的时候只有10%的写入速度,不如Mongodb,而读取速度相比Mongodb占优。

    最后一次读取效率大幅降低,此时之前保存的数据已经过时,考虑是否GC回收过期数据会影响读取效率?

    最后补充一点吧:KT默认情况下memcache plugin没有支持gets,如果要批量获取的话可以直接使用get命令。

  • 相关阅读:
    ext之Windows
    多个DIV显示/隐藏
    asp.net 得到上一页地址
    人们的文化和素质
    gridview 删除问题
    RSS of the Day: 新闻类Feeds
    每日英语:Taiwan Tech Firms Bring Jobs Home Quietly
    每日英语:Freedom and America's gun culture
    matlab学习:图像频域分析之Gabor滤波
    每日英语:The End Of The World Is (Not) Nigh
  • 原文地址:https://www.cnblogs.com/lovecindywang/p/1938415.html
Copyright © 2011-2022 走看看