使用info命令,对redis进行监控

Info命令

命令 查询的信息
info all 查询全部信息 : ServerClientsMemoryPersistenceStatsReplicationCPUModulesCommandstatsErrorstatsClusterKeyspace
info 相比 info all , 缺少 Commandstats 信息
info server 仅查看Server信息
info clients 仅查看客户端链接信息
info memory 仅查看内存信息
info persistence 仅查看持久化信息
info stats 查看运行状态
info replication 查看主从复制信息
info cpu 查看服务器cpu信息
info modules 查看服务加载的模块信息
info commandstats 查看命令运行信息
info error stats 查看错误状态信息
info cluster 查看集群配置信息
info keyspace 查看数据库信息(对应 select 命令)

服务器信息

属性 含义
redis_version 当前Redis的版本信息
redis_git_sha1 Git SHA1
redis_git_dirty git dirty flag
redis_build_id redis 的构建ID
redis_mode redis运行模式: 哨兵模式 / 集群模式 / 独立模式
os redis宿主机器的操作系统信息
arch_bits 操作系统的架构 32/ 64
multiplexing_api Redis所用的事件处理机制: kqueue / poll / epoll/ select
atomicvar_api 原子处理的API
gcc_version GCC的版本信息
process_id Redis服务的进程ID
process_supervised 是否有进程监控
run_id Redis 服务器的随机标识符(用于 哨兵 和集群)
server_time_usec 服务器时间, 单位: 微秒
uptime_in_seconds 自服务启动以来,经过的秒数
uptime_in_days 自服务启动以来, 经历的天数
hz redis内部调度(进行关闭timeout的客户端,删除过期key等等)频率,程序规定serverCron每秒运行10次。
configured_hz 配置的频率
lru_clock 自增的时钟,用于LRU管理,该时钟100ms(hz=10,因此每1000ms/10=100ms执行一次定时任务)更新一次。
executable 可执行文件的路径
config_file 服务启动所使用的配置文件路径
io_threads_active 活跃的IO线程数

客户端信息

属性 含义
connected_clients 当前有多少客户端连接
cluster_connections 集群连接数
maxclients 最大客户端连接数
client_recent_max_input_buffer 客户端最近最大输入缓存, 以字节为单位
client_recent_max_output_buffer 客户端最近最大输出缓存, 以字节为单位
blocked_clients 阻塞客户端数量, 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量
tracking_clients -
clients_in_timeout_table -

内存信息

属性 含义
used_memory 由 Redis 分配器分配的内存总量,以字节(byte)为单位
used_memory_human used_memory 可读化表示
used_memory_rss 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。
used_memory_rss_human used_memory_rss 可读化表示
used_memory_peak Redis 的内存消耗峰值(以字节为单位)
used_memory_peak_human used_memory_peak 可读化表示
used_memory_peak_perc 峰值系统内存使用率
used_memory_overhead Redis为了维护数据集的内部机制所需的内存开销,包括所有客户端输出缓冲区、查询缓冲区、AOF重写缓冲区和主从复制的backlog
used_memory_startup Redis服务器启动时消耗的内存
used_memory_dataset 数据占用的内存大小,即used_memory-used_memory_overhead
used_memory_dataset_perc 数据占用的内存大小的百分比,100%*(used_memory_dataset/(used_memory-used_memory_startup))
allocator_allocated 内存分配器申请的内存,以字节为单位
allocator_active 内存分配器正在使用的内存,以字节为单位
allocator_resident 内存分配器的常驻内存,以字节为单位
total_system_memory 操作系统内存(以字节为单位)
total_system_memory_human total_system_memory可读化表示
used_memory_lua Lua脚本存储占用的内存(以字节为单位)
used_memory_lua_human used_memory_lua 可读化表示
used_memory_scripts Lua脚本使用的内存大小(以字节为单位)
used_memory_scripts_human used_memory_scripts 可读化表示
number_of_cached_scripts 缓存的lua脚本数量
maxmemory Redis实例的最大内存配置(以字节为单位)
maxmemory_human maxmemory 可读化表示
maxmemory_policy 当达到maxmemory时的淘汰策略, 详细参见 : Redis数据淘汰策略
allocator_frag_ratio 内存分配器碎片比例
allocator_frag_bytes 内存分配器碎片大小,以字节为单位
allocator_rss_ratio 从操作系统角度看, 内存分配器碎片比例
allocator_rss_bytes 从操作系统角度看, 内存分配器碎片大小,以字节为单位
rss_overhead_ratio 从操作系统角度看, 开销的比例
rss_overhead_bytes 从操作系统角度看, 开销的大小, 以字节为单位
mem_fragmentation_ratio 1. 碎片率,used_memory_rss/ used_memory,正常情况下稍大于1。
2. 低于1,Redis实例可能会把部分数据交换到硬盘上,内存交换会严重影响Redis的性能,所以应该增加可用物理内存。
3. 大于1.5表示碎片过多。额外碎片的产生是由于Redis释放了内存块,但内存分配器并没有返回内存给操作系统,这个内存分配器是在编译时指定的
4. 内存分配器可以是libc、jemalloc或者tcmalloc。
mem_fragmentation_bytes 内存碎片大小(字节表示)
mem_not_counted_for_evict 不应驱逐的内存大小,以字节为单位
mem_replication_backlog 复制backlog的内存大小, 以字节为单位
mem_clients_slaves -
mem_clients_normal -
mem_aof_buffer 1.内存分配器,Redis支持glibc’s malloc、jemalloc11、tcmalloc几种不同的内存分配器,每个分配器在内存分配和碎片上都有不同的实现。
2.不建议普通管理员修改Redis默认内存分配器,因为这需要完全理解这几种内存分配器的差异,也要重新编译Redis。
active_defrag_running defrag:表示内存碎片整理, 0表示没有活动的defrag任务正在运行,1表示有活动的defrag任务正在运行
lazyfree_pending_objects 延迟释放的挂起对象
lazyfreed_objects 延迟释放的对象数量

数据淘汰策略

策略名称 淘汰规则
volatile-lru 从设置了过期时间的数据集中,选择最近最久未使用的数据释放
allkeys-lru 从数据集中(包括设置过期时间以及未设置过期时间的数据集中),选择最近最久未使用的数据释放
volatile-random 从设置了过期时间的数据集中,随机选择一个数据进行释放
allkeys-random 从数据集中(包括了设置过期时间以及未设置过期时间)随机选择一个数据进行入释放
volatile-ttl 从设置了过期时间的数据集中,选择马上就要过期的数据进行释放操作
noeviction 不删除任意数据(但redis还会根据引用计数器进行释放),这时如果内存不够时,会直接返回错误。

主从复制信息

公共属性

属性 含义
role 节点角色 master 主节点 slave 从节点
repl_backlog_active 复制缓冲区是否开启 0 - 未开启 1 - 已开启
repl_backlog_size 复制缓冲区大小(以字节为单位)
repl_backlog_first_byte_offset 复制缓冲区里偏移量的大小
repl_backlog_histlen 此值等于 master_repl_offset - repl_backlog_first_byte_offset,该值不会超过repl_backlog_size的大小

主节点属性

属性 含义
connected_slaves 连接到此主节点的从节点数量
master_failover_state 故障转移状态 no-failover 无故障转移
master_replid 实例启动的随机字符串
master_replid2 实例启动的随机字符串2
master_repl_offset 主从同步偏移量
second_repl_offset 主从同步偏移量2

从节点属性

属性 含义
master_host 主节点host
master_port 主节点端口
master_link_status 与主节点连接状态 up - 正常连接 down - 断开
master_last_io_seconds_ago 主节点与从节点最后通信的时间间隔, 单位: s
master_sync_in_progress 从节点是否正在全量同步主节点rdb文件 0 - 否 1 - 是
slave_repl_offset 复制偏移量
slave_priority 从节点优先级
slave_read_only 从节点是否只读 0 - 否 1 - 是

从节点列表

从节点会以 slave0、slave1….这种 形式 返回, 其格式为 slave0:ip=x.x.x.x,port=6379,state=online,offset=123456,lag=1

  1. slave0: 从库的标记
  2. ip: 从库IP
  3. port: 从库端口
  4. state: 从库状态
  5. offset: 主从同步偏移量
  6. lag: 主从同步消息堆积量

CPU信息

属性 含义
used_cpu_sys Redis主进程在内核态所占用CPU时钟总和
used_cpu_user Redis主进程在用户态所占用CPU时钟总和
used_cpu_sys_children Redis子进程在内核态所占用CPU时钟总和
used_cpu_user_children Redis子进程在用户态所占用CPU时钟总和

集群信息

属性 含义
cluster_enabled 集群是否开启 0 - 否 1 - 是

持久化信息

属性 含义
loading 服务器是否正在进行持久化 0 - 否 1 -是
current_cow_size -
current_cow_size_age -
current_fork_perc -
current_save_keys_processed -
current_save_keys_total -
rdb_changes_since_last_save 离最近一次成功生成rdb文件,写入命令的个数,即有多少个写入命令没有持久化
rdb_bgsave_in_progress 服务器是否正在创建rdb文件 0 - 否 1 - 是
rdb_last_save_time 最近一次创建rdb文件的时间戳,单位秒
rdb_last_bgsave_status 最近一次rdb持久化是否成功 ok 成功
rdb_last_bgsave_time_sec 最近一次成功生成rdb文件耗时秒数
rdb_current_bgsave_time_sec 如果服务器正在创建rdb文件,那么这个字段记录的就是当前的创建操作已经耗费的秒数
rdb_last_cow_size RDB过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等)。
aof_enabled 是否开启了AOF 0 - 否 1 - 是
aof_rewrite_in_progress 标识aof的rewrite操作是否在进行中 0 - 否 1- 是
aof_rewrite_scheduled rewrite任务计划,当客户端发送bgrewriteaof指令,如果当前rewrite子进程正在执行,那么将客户端请求的bgrewriteaof变为计划任务,待aof子进程结束后执行rewrite
aof_last_rewrite_time_sec 最近一次aof rewrite耗费的时长
aof_current_rewrite_time_sec 如果rewrite操作正在进行,则记录所使用的时间,单位秒
aof_last_bgrewrite_status 上次 bgrewrite aof 操作的状态 ok 成功
aof_last_write_status 上次aof写入状态
aof_last_cow_size AOF过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等)
io_threaded_reads_processed 读取线程数
io_threaded_writes_processed 写入线程数

数据库信息

数据格式为 : db0:keys=3,expires=0,avg_ttl=0

  • db0: 0号数据库, 对应 select 0
  • keys: 数据库中key的数量
  • expires: 过期的key的数量
  • avg_ttl: key平均有效期

指令调用信息

数据格式为 : cmdstat_set:calls=19,usec=195,usec_per_call=10.26,rejected_calls=0,failed_calls=2

  • cmdstat_set: set命令的统计信息
  • calls: 累计调用该命令的次数
  • usec: 调用该命令的累计耗时,单位微秒
  • usec_per_call: 调用该命令的平均耗时
  • rejected_call: 拒绝执行的次数
  • failed_calls: 调用失败的次数

服务运行状态

属性 含义
total_connections_received 所有连接数, 累积值, 只增不减, 连接断开也不会减少
total_commands_processed 服务器执行的命令数 累积值, 只增不减
instantaneous_pps_per_sec 每秒执行的命令数
total_net_input_bytes 网络流量-流入 以字节(byte)为单位
total_net_output_bytes 网络流量-流出 以字节(byte)为单位
instantaneous_input_kbps 网络流量-流入-KB/s
instantaneous_output_kbps 网络流量-流出-KB/s
rejected_connections 因达到最大连接数而被拒绝的连接数量
sync_full 主从全量同步的次数
sync_partial_ok 主从部分同步成功的次数
sync_partial_err 主从部分同步失败次数
expired_keys 过期key的数量
expired_stale_perc 过期过时的百分比
expired_time_cap_reached_count 过期时间达到上限的数量
expire_cycle_cpu_milliseconds 过期循环CPU毫秒数
evicted_keys 超过 maxmemory 之后, 剔除的 key 的数量
keyspace_hits 访问命中次数
keyspace_misses 访问未命中次数
pubsub_channels 当前频道数量 发布 - 订阅 模式
pubsub_patterns 当前使用中的模式数量
latest_fork_usec 最近一次fork 操作消耗的时间, 单位微秒
total_forks fork 的总次数
migrate_cached_sockets 记录当前 Redis 正在 migrate 操作的目标 Redis 个数, 例如 A 向 B 和 C 执行 migrate操作
slave_expires_tracked_keys 从实例到期的 key 的数量
active_defrag_hits 主动碎片整理命中次数
active_defrag_misses 主动碎片整理未命中次数
active_defrag_key_hits 主动整理碎片, key命中次数
active_defrag_key_misses 主动整理碎片, key未命中次数
tracking_total_keys key 查询的总数
tracking_total_items item查询的总数
tracking_total_prefixes 前缀查询的总数
unexpected_error_replies unexpected 异常响应次数
total_error_replies 异常响应总次数
dump_payload_sanitizations -
total_reads_processed 正在读取的请求数
total_writes_processed 正在写入的请求数
io_threaded_reads_processed 正在读取的线程数
io_threaded_writes_processed 正在写入的线程数

错误信息

数据格式 errorstat_ERR:count=2

  • errorstat_ERR: 错误的类型
  • count: 次错误类型累计出现的次数

加载的模块信息

数据格式

获取相关信息的GO实现

GO语言获取Redis Info信息

全部信息图

redis监控数据概览


使用info命令,对redis进行监控
http://www.zhangdeman.cn/archives/ba50775a.html
作者
白茶清欢
发布于
2021年11月28日
许可协议