【问题标题】:memtier benchmark understanding the outputmemtier benchmark 理解输出
【发布时间】:2017-01-06 21:15:23
【问题描述】:

您好,我对使用 redis 的 memtier 基准测试工具非常陌生。我已经运行了基本示例,但无法理解输出。有人可以帮助我理解以下输出。

Command: memtier_benchmark -s 172.25.1.100 -p 6380 -c 50 -t 100 -n 1000 -d 1000000 --ratio=1:1 --pipeline=1 --key-pattern S:S -P redis

输出:

100       Threads
50        Connections per thread
1000      Requests per thread
Type        Ops/sec     Hits/sec   Misses/sec      Latency       KB/sec
------------------------------------------------------------------------
Sets         748.28          ---          ---   6475.61800    730780.68
Gets         748.28         0.00       748.28    208.12400        22.57
Waits          0.00          ---          ---      0.00000          ---
Totals      1496.57         0.00       748.28   3341.87100    730803.25

【问题讨论】:

    标签: get redis set benchmarking


    【解决方案1】:

    您发布的输出意味着

    1. 您使用了 100 个线程(-t 指定使用的线程数)
    2. 每个线程使用 50 个到 redis db (-c 50) 的连接
    3. 每个连接发送 1000 个请求 (-n 1000)
    4. 您的 redis 服务器可以执行 748.28 SET 和 GET 操作。
    5. 请求的大小在右侧指定并显示 与 GET 请求相比,SET 请求非常大并且延迟非常高(以毫秒为单位)。
    6. 您的 redis 服务器总共可以运行 1496.57 ops/sec。

    如果这不能回答您的问题,请具体说明您无法理解的内容。

    【讨论】:

    • 你能解释一下“Misses/sec”吗?为什么 Misses 的数量等于 Gets 的数量?谢谢。
    • @Colfax 那是因为针对数据库中尚不存在的密钥发送了读取请求。所以算作未命中。在给定的示例中,--key-pattern 为 S:S,因此 SET 和 GET 是顺序的,这意味着,如果 memtier-0 有一个 SET,则下一个 GET 将用于 memtier-1,然后接下来的 SET 将用于 memtier-2 而不是 memtier-1。希望这有用。
    • memtier_benchmark 提供的延迟是否也包括网络延迟?
    【解决方案2】:

    您可以运行以下命令了解memtier参数:

    memtier_benchmark --help

    在 Redislabs 中查看更多信息:

    https://redislabs.com/blog/memtier_benchmark-a-high-throughput-benchmarking-tool-for-redis-memcached/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多