• Redis INFO 说明


    背景

    前面几篇文章介绍完了Redis相关的一些说明,现在看看如何查看Redis的一些性能指标和统计信息,也可以看官网说明,本文基于Redis 5.0.5。

    INFO [section]

    INFO命令返回有关服务器的信息和统计信息,带上参数ALL可以返回所有部分,默认default,仅返回默认部分集如果未提供任何参数,则采用默认选项。

    > INFO ALL> INFO

    后面的可选参数可用于选择特定的信息展示:

    server: 常规信息
    clients: 客户端连接部分
    memory: 内存消耗相关信息
    persistence: RDB和AOF相关信息
    stats: 统计信息
    replication: 主/从复制信息
    cpu: CPU消耗统计
    commandstats: Redis命令统计
    cluster: 集群部分
    keyspace: 数据库、key相关统计

     Redis info {all}  [session] 说明

    redis> INFO ALL
    # Server
    redis_version:5.0.5       //Redis服务器的版本
    redis_git_sha1:00000000   //Git SHA1
    redis_git_dirty:0         //Git dirty flag
    redis_build_id:cdff23e4497417f9  //构建ID
    redis_mode:cluster        //Redis启动模式:standalone、Sentinel、Cluster
    os:Linux 4.4.0-143-generic x86_64  //redis宿主机操作系统
    arch_bits:64              //架构:32位、64位
    multiplexing_api:epoll    //事件循环机制
    atomicvar_api:atomic-builtin   //Atomicvar API
    gcc_version:5.4.0             //编译 Redis 时所使用的 GCC 版本
    process_id:41450          //进程PID
    run_id:7c1db72b9f235c5e52780aeb8817fd272230f1bc  //标识Redis服务器的唯一随机值,由Sentinel和Cluster使用
    tcp_port:6379            //TCP、IP侦听端口
    uptime_in_seconds:129723    //自Redis服务器启动以来的秒数
    uptime_in_days:1            //自Redis服务器启动以来的天数
    hz:10                    //调度serverCron每秒运行次数
    configured_hz:10         //
    lru_clock:10612903       //以分钟为单位进行自增的时钟,用于 LRU 管理
    executable:/usr/local/redis5.0/bin/redis-server          //服务器可执行文件的路径
    config_file:/usr/local/redis5.0/6379/redis6379.conf      //启动 redis 配置文件
    
    # Clients
    connected_clients:1                   //已连接客户端的数量(不包括通过从服务器连接的客户端)
    client_recent_max_input_buffer:2      //当前连接的客户端当中,最大输入缓存
    client_recent_max_output_buffer:0     //当前连接的客户端当中,最长的输出列表
    blocked_clients:0                     //正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量
    
    # Memory
    used_memory:2660408                 //由 redis 分配器(标准libc,jemalloc或其他分配器,例如tcmalloc)分配的内存总量,以字节(byte)为单位
    used_memory_human:2.54M             //以可读的格式返回 redis 分配的内存总量
    used_memory_rss:9154560             //从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top、ps 等命令的输出一致。
    used_memory_rss_human:8.73M         //以可读的格式,操作系统角度,返回 redis 分配的内存总量
    used_memory_peak:204081928          //redis 的内存消耗峰值(以字节为单位)
    used_memory_peak_human:194.63M      //以可读的格式,返回 Redis 的内存消耗峰值
    used_memory_peak_perc:1.30%         //used_memory_peak在used_memory中所占的百分比
    used_memory_overhead:2565048        //分配用于管理其内部数据结构的所有开销的总字节数
    used_memory_startup:1449744         //启动时消耗的初始内存量(以字节为单位)
    used_memory_dataset:95360           //数据集的大小(以字节为单位,used_memory - used_memory_overhead)
    used_memory_dataset_perc:7.88%      //used_memory_dataset在净内存(used_memory-used_memory_startup)使用量中所占的百分比
    allocator_allocated:2770640         //分配器分配的内存
    allocator_active:3371008            //分配器活跃的内存
    allocator_resident:11554816         //分配器常驻的内存
    total_system_memory:1021468672      //主机拥有的内存总量
    total_system_memory_human:974.15M   //以可读的格式返回主机拥有的内存总量
    used_memory_lua:37888               //Lua引擎使用的字节数
    used_memory_lua_human:37.00K        //以可读的格式返回Lua引擎使用内存
    used_memory_scripts:0         
    used_memory_scripts_human:0B
    number_of_cached_scripts:0
    maxmemory:0                         //配置设置的最大可使用内存值,默认0,不限制
    maxmemory_human:0B                  //以可读的格式返回最大可使用内存值
    maxmemory_policy:noeviction         //内存容量超过maxmemory后的处理策略,noeviction当内存使用达到阈值的时候,所有引起申请内存的命令会报错
    allocator_frag_ratio:1.22           //分配器的碎片率
    allocator_frag_bytes:600368         //分配器的碎片大小(以字节为单位)
    allocator_rss_ratio:3.43            //分配器常驻内存比例
    allocator_rss_bytes:8183808         //分配器的常驻内存大小(以字节为单位)
    rss_overhead_ratio:0.79             //常驻内存开销比例
    rss_overhead_bytes:-2400256         //常驻内存开销大小(以字节为单位)
    mem_fragmentation_ratio:3.50         //内存碎片率,used_memory_rss 和 used_memory 之间的比率
    mem_fragmentation_bytes:6536432      //内存碎片的大小(以字节为单位)
    mem_not_counted_for_evict:0          //被驱逐的大小
    mem_replication_backlog:1048576      //repl_backlog
    mem_clients_slaves:16922             //clients_slaves
    mem_clients_normal:49694             //clients_normal
    mem_aof_buffer:0                     //aof时,占用的缓冲
    mem_allocator:jemalloc-5.1.0         //内存分配器(在编译时选择)
    active_defrag_running:0              //碎片整理是否处于活动状态
    lazyfree_pending_objects:0           //等待释放的对象数(由于使用ASYNC选项调用UNLINK或FLUSHDB和FLUSHALL)
    
    # Persistence
    loading:0                           //记录服务器是否正在载入持久化文件
    rdb_changes_since_last_save:0       //最近一次成功创建持久化文件之后,经过了多少秒
    rdb_bgsave_in_progress:0            //记录了服务器是否正在创建 RDB 文件
    rdb_last_save_time:1570890961       //最近一次成功创建 RDB 文件的 UNIX 时间戳
    rdb_last_bgsave_status:ok           //记录最近一次创建 RDB 文件的状态,是成功还是失败
    rdb_last_bgsave_time_sec:0          //记录了最近一次创建 RDB 文件耗费的秒数
    rdb_current_bgsave_time_sec:-1      //如果正在创建 RDB 文件,记录当前的创建操作已经耗费的秒数
    rdb_last_cow_size:249856            //上一次RBD保存操作期间写时复制的大小(以字节为单位)
    aof_enabled:1                       //AOF是否开启
    aof_rewrite_in_progress:0           //记录了是否正在创建 AOF 文件
    aof_rewrite_scheduled:0             //记录了 RDB 文件创建完毕之后,是否需要执行 AOF 重写操作
    aof_last_rewrite_time_sec:0         //最近一次创建 AOF 文件耗费的秒数
    aof_current_rewrite_time_sec:-1     //如果正在创建 AOF 文件,那么记录当前的创建操作耗费的秒数
    aof_last_bgrewrite_status:ok        //记录了最近一次创建 AOF 文件的状态,是成功还是失败
    aof_last_write_status:ok            //AOF的最后写入操作的状态,是成功还是失败
    aof_last_cow_size:307200            //上一次AOF保存操作期间写时复制的大小(以字节为单位)
    aof_current_size:115                //AOF 文件当前的大小
    aof_base_size:115                   //最近一次启动或重写时的AOF文件大小
    aof_pending_rewrite:0               //记录了是否有 AOF 重写操作在等待 RDB 文件创建完毕之后执行
    aof_buffer_length:0                 //AOF缓冲区的大小
    aof_rewrite_buffer_length:0         //AOF 重写缓冲区的大小
    aof_pending_bio_fsync:0             //后台 I/O 队列里面,等待执行的 fsync 数量
    aof_delayed_fsync:0                 //被延迟的 fsync 调用数量,如果该值比较大,可以开启参数:no-appendfsync-on-rewrite=yes
    
    如果正在进行加载操作,会有以下状态:
    loading_start_time:                //加载操作开始的时间戳
    loading_total_bytes:               //加载文件总大小
    loading_loaded_bytes:              //已加载的字节数
    loading_loaded_perc:               //已加载的百分比
    loading_eta_seconds:               //完成加载所需的秒数(以秒为单位)
    
    注意:
    changes_since_last_save是指自上次调用SAVE或BGSAVE以来在数据集中产生某种更改的操作数。
    
    
    # Stats
    total_connections_received:11046    //服务器接受的连接总数
    total_commands_processed:2086515    //服务器已执行的命令数量
    instantaneous_ops_per_sec:0         //服务器每秒钟执行的命令数量
    total_net_input_bytes:116217212     //启动以来,流入的字节总数
    total_net_output_bytes:161658834    //启动以来,流出的字节总数
    instantaneous_input_kbps:0.02       //接收输入的速率(每秒)
    instantaneous_output_kbps:0.00      //输出的速率(每秒)
    rejected_connections:0              //由于maxclients限制而被拒绝的连接数
    sync_full:1                         //与slave full sync的次数      
    sync_partial_ok:14                  //接受的部分重新同步(psync)请求的数量
    sync_partial_err:1                  //被拒绝的部分重新同步(psync)请求的数量
    expired_keys:0                      //key过期事件总数
    expired_stale_perc:0.00             //过期的比率
    expired_time_cap_reached_count:0    //过期计数
    evicted_keys:0                      //由于最大内存限制而被驱逐的key数量
    keyspace_hits:1057312               //key命中次数
    keyspace_misses:38734               //key未命中次数
    pubsub_channels:0                   //发布/订阅频道的数量
    pubsub_patterns:0                   //发布/订阅的模式数量
    latest_fork_usec:1460               //最近一次 fork() 操作耗费的毫秒数(以微秒为单位)
    migrate_cached_sockets:0            //为迁移而打开的套接字数
    slave_expires_tracked_keys:0        //跟踪过期key数量(仅适用于可写从)
    active_defrag_hits:0                //活跃碎片执行的值重新分配的数量
    active_defrag_misses:0              //活跃碎片执行的中止值重新分配的数量
    active_defrag_key_hits:0            //活跃碎片整理的key数
    active_defrag_key_misses:0          //活跃碎片整理过程跳过的key数
    
    
    # Replication
    role:master                         //角色(master、slave),一个从服务器也可能是另一个服务器的主服务器
    connected_slaves:1                  //连接slave实例的个数
    slave0:ip=192.168.163.132,port=6382,state=online,offset=64547142,lag=1 //连接的slave的信息
    master_replid:1726c598c37f039c4b69db7a4281392a650eb88b                 //服务器的复制ID
    master_replid2:0000000000000000000000000000000000000000                //第二服务器复制ID,用于故障转移后的PSYNC,用于集群等高可用之后主从节点的互换
    master_repl_offset:64547142                                            //复制偏移量1
    second_repl_offset:-1                                                  //第二服务器复制偏移量2
    repl_backlog_active:1                                                  //复制缓冲区状态
    repl_backlog_size:1048576                                              //复制缓冲区的大小(以字节为单位)
    repl_backlog_first_byte_offset:63498567                                //复制缓冲区的偏移量,标识当前缓冲区可用范围
    repl_backlog_histlen:1048576                                           //复制缓冲区中数据的大小(以字节为单位)
    
    #如果是从节点,会有以下状态:
    master_host:192.168.163.132                                      //Master IP
    master_port:6379                                                 //Master Port
    master_link_status:up                                            //Master的连接状态(up/down)
    master_last_io_seconds_ago:8                                     //最近一次主从交互之后的秒数
    master_sync_in_progress:0                                        //表示从服务器是否一直在与主服务器进行同步
    slave_repl_offset:64547142                                       //复制偏移量
    slave_priority:100                                               //从服务器的优先级
    slave_read_only:1                                                //从服务是否只读
    
    #如果正在进行SYNC操作,会有以下状态:
    master_sync_left_bytes:                                          //同步完成前剩余的字节数
    master_sync_last_io_seconds_ago:                                 //自SYNC操作以来最后一次传输I/O经过的秒数
    
    #如果主服务器和副本服务器之间的链接断开,会有以下状态:
    master_link_down_since_seconds:                                  //主从连接断开后经过的秒数
    connected_slaves:                                                //已连从的数量
    
    #如果服务器配置(的Redis 5)有min-slaves-to-write(或以min-replicas-to-write)指令,会有以下状态:
    min_slaves_good_slaves:                                          //当前认为良好的副本数,对于每个副本,添加以下行:
    slaveXXX: id, IP address, port, state, offset, lag      
    
    
    # CPU
    used_cpu_sys:133.908000                                          //消耗的系统CPU
    used_cpu_user:70.692000                                          //消耗的用户CPU
    used_cpu_sys_children:0.016000                                   //后台进程占用的系统CPU
    used_cpu_user_children:0.044000                                  //后台进程占用的用户CPU
    
    
    # Commandstats   //提供基于命令类型的统计信息,包括调用次数,这些命令消耗的总CPU时间以及每个命令执行消耗的平均CPU时间。
    cmdstat_cluster:calls=33169,usec=3835426,usec_per_call=115.63
    cmdstat_keys:calls=3,usec=7828,usec_per_call=2609.33
    cmdstat_get:calls=1096046,usec=914358,usec_per_call=0.83
    cmdstat_set:calls=872138,usec=984030,usec_per_call=1.13
    cmdstat_monitor:calls=6,usec=4,usec_per_call=0.67
    cmdstat_replconf:calls=74181,usec=103173,usec_per_call=1.3
    cmdstat_client:calls=11,usec=2812,usec_per_call=255.64
    cmdstat_flushdb:calls=2,usec=23058,usec_per_call=11529.00
    cmdstat_dbsize:calls=22,usec=27,usec_per_call=1.23
    cmdstat_auth:calls=10883,usec=19716,usec_per_call=1.81
    cmdstat_info:calls=14,usec=6987,usec_per_call=499.07
    cmdstat_config:calls=9,usec=5819,usec_per_call=646.56
    cmdstat_psync:calls=15,usec=4288,usec_per_call=285.87
    cmdstat_command:calls=16,usec=98434,usec_per_call=6152.12
    
    # Cluster
    cluster_enabled:1                              //是否开启集群模式
    
    # Keyspace   //键空间部分提供有关每个数据库的统计信息。 统计信息是键的数量,以及带有到期时间的键的数量。
    db0:keys=2,expires=0,avg_ttl=0

    总结:

    通过本文的说明,可以看到通过INFO命令可以得到很多信息,包括OPS、主从情况、command、内存、CPU等等一些信息,也可以通过INFO信息进行一些相关指标的监控,保障Redis更好的运行。

    参考文档:

    https://redis.io/commands/info

  • 相关阅读:
    2018/08/23 cstring中memset()函数的运用
    HDU 6446 Tree and Permutation(赛后补题)
    51NOD 1154 回文串的划分(DP)
    第七章小结_查找
    列出连通集的邻接表解题
    第六章学习小结_初识图
    图的邻接矩阵和邻接表及深度优先搜索
    第五章学习小结
    深深深深深深入虎穴
    括号匹配_进阶篇 ( 7-2 符号配对 )
  • 原文地址:https://www.cnblogs.com/zhoujinyi/p/11664392.html
Copyright © 2020-2023  润新知