【问题标题】:How to Identify Redis performance/Bottlenecks如何识别 Redis 性能/瓶颈
【发布时间】:2017-02-02 05:41:44
【问题描述】:

我想知道如何检查 Redis 服务器的性能以及可能的瓶颈。我已经运行 redis-cli -h 127.0.0.1 -p 6379 --stat 命令并获得以下统计信息。

如果有人可以建议需要做什么以及需要检查哪些其他指标。

【问题讨论】:

    标签: performance redis redis-cli


    【解决方案1】:

    Redis 包含 redis-benchmark 实用程序,可模拟 N 个客户端同时执行的运行命令

    Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]
    

    MONITOR 是一个调试命令,可将 Redis 服务器处理的每个命令流回。它可以帮助理解数据库发生了什么。该命令既可以通过 redis-cli 使用,也可以通过 telnet 使用。

    $ redis-cli monitor
    

    如果您遇到延迟问题,可能您知道如何在应用程序的上下文中对其进行衡量,或者您的延迟问题可能在宏观上非常明显。但是 redis-cli 可以用来测量 Redis 服务器的延迟(以毫秒为单位),只需尝试:

    redis-cli --latency -h `host` -p `port`
    

    希望您能从这里得到一些帮助。 参考链接:http://redis.io/topics/benchmarks

    【讨论】:

    • 可能有很多方法可以做到这一点。
    【解决方案2】:

    你看过this redis关于基准的话题吗?

    redis-benchmark 程序是一种快速而有用的方法,可以获取一些数据并评估给定硬件上 Redis 实例的性能。但是,默认情况下,它并不代表 Redis 实例可以承受的最大吞吐量。

    【讨论】:

    • 我做了,你能解释一下我附上的截图吗?
    • 你是说每一列的意思吗?
    • 我的意思是连接数和请求数是并发的?
    • requests是通过连接发送到redis的命令。连接数是成功连接数(我有持久连接,所以请求大于连接数)
    【解决方案3】:

    要识别性能瓶颈,请在 Redis-cli 中调用 slowlog get。 它将返回执行时间超过 redis.conf 中定义的持续时间的命令列表。此持续时间仅涉及请求的处理,不包括通信时间。默认值是一秒,这对于 Redis 来说已经很多了。

    Redis.conf 包含两个与慢日志相关的值:

    • slowlog-log-slower-than 定义要记录的请求的最短执行时间(inn 微秒);
    • slowlog-max-len 定义要存储在慢速日志中的最大条目数。

    与 Redis 一样,您可以使用 config set 修改这些设置,而无需重新启动服务器。只是不要忘记这些日志存储在内存中。

    您可以使用slowlog reset 清除慢速日志条目。

    【讨论】:

      【解决方案4】:

      您也可以使用Redis Stat,实时检查的好工具。

      问候,

      【讨论】:

        猜你喜欢
        • 2022-01-06
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        • 2019-02-12
        • 1970-01-01
        • 2015-05-03
        • 2021-05-02
        • 1970-01-01
        相关资源
        最近更新 更多