Garnet 真比 Redis 快吗? - V2EX
keakon
V2EX    Redis

Garnet 真比 Redis 快吗?

  •  
  •   keakon
    keakon Apr 27, 2024 7949 views
    This topic created in 769 days ago, the information mentioned may be changed or developed.

    用 Docker 跑了下 redis-benchmark:

    • Redis 大部分测试约 17w qps
    • 单 CPU 时,Garnet 大部分测试约 3w qps
    • 不限制 CPU (共 10 核)时,CPU 占用率约 300%,大部分测试约 4w qps

    难道要用 C# 跑测试才能发挥 Garnet 的性能? https://microsoft.github.io/garnet/docs/benchmarking/results-resp-bench

    15 replies    2024-04-28 11:24:03 +08:00
    bthulu
        1
    bthulu  
       Apr 27, 2024   1
    我不信, 视频发来看看
    hez2010
        2
    hez2010  
       Apr 27, 2024   2
    我也跑过,用的 mentier_benchmark ,同样是 redis 自己出品的 benchmark 工具。

    单线程:

    ![single]( )

    多线程:

    ![multi]( )

    无论单线程还是多线程 garnet 都比 redis 更快。
    qweruiop
        3
    qweruiop  
       Apr 27, 2024   1
    我们有个新项目已经迁移到 garnet 了,是比 redis 快。。。
    povsister
        4
    povsister  
       Apr 27, 2024
    @hez2010
    这数据看起来有点顶啊
    lsk569937453
        5
    lsk569937453  
       Apr 27, 2024
    https://github.com/lsk569937453/rcache

    用 rust 实现的 redis ,用 redis-benchmark 测试,4 核 8G 下,rcache 的 tps 是 redis 的两倍。我这还是简单的直接用全局锁一个 Map ,不知道 garnet 用的什么黑科技。

    缺点就是 rcache 多线程下 cpu 几乎能跑满,而 redis 的 cpu 一直稳定在 100%左右(这就是单线程的魅力吗。。。)
    sujin190
        6
    sujin190  
       Apr 27, 2024 via Android
    @hez2010 没懂你这是服务端多线程还是测试工具多线程,否则就算单核也不可能这么低吧,话说咱要测的是服务端性能吧,而且差距这么大 128 核心?
    hez2010
        8
    hez2010  
       Apr 27, 2024
    @sujin190 单线程的测试设置了 pipeline=1 ,意味着一次请求返回之后才会进行下一次请求。而多线程的 pipeline 设置的 1024 ,能够充分利用计算机资源。
    qcbf111
        9
    qcbf111  
       Apr 27, 2024
    c#还是牛逼呀,unity 好像能升级到最新版.net 就好了
    keakon
        10
    keakon  
    OP
       Apr 27, 2024
    @hez2010 加了 -P 1024 后,分别是 218w 、68w 和 80w ,差距小了一点。。
    sujin190
        11
    sujin190  
       Apr 27, 2024 via Android
    @hez2010 话说似乎 garnet 是多核多线程的吧,redis 似乎是单线程的,应该是负载一样的来比吧
    simple2025
        12
    simple2025  
       Apr 27, 2024
    但是一般 redis 的性能就够了吧,而且因为 redis 处理逻辑上是单线程,所以可以确实不会因为什么 lock 问题导致数据出现问题.
    wxf666
        13
    wxf666  
       Apr 27, 2024
    @hez2010 #8 如果 8 线程访问 Redis ,每个线程 pipeline 都是 1 。这算啥?
    hez2010
        14
    hez2010  
       Apr 27, 2024
    @wxf666 我测的单线程是 1 client 1 thread 1 concurrency 1 pipeline 的。
    displayabc
        15
    displayabc  
       Apr 28, 2024
    @sujin190 为什么要负载一样来比?就是要比极限啊
    About     Help     Advertise     Blog     API     FAQ     Solana     2830 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 51ms UTC 13:04 PVG 21:04 LAX 06:04 JFK 09:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86