死磕 Redis----- info 命令详解
Posted chenssy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了死磕 Redis----- info 命令详解相关的知识,希望对你有一定的参考价值。
原文:https://www.topjava.cn/category/1391389927996002304 『chenssy』
Redis 提供了一个非常有用的查看状态信息的命令:info。它以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。使用方法有如下三种:
info:部分Redis系统状态统计信息。
info all:全部Redis系统状态统计信息。
info section:某一块的系统状态统计信息,其中section可以忽略大小写。
详细内容如下表格:
参数名 | 说明 |
---|---|
server | 获取 server 信息 |
clients | 获取 clients 信息,如客户端连接数等 |
memory | 获取 server 的内存信息,包括当前内存消耗、内存使用峰值 |
persistence | 获取 server 的持久化配置信息 |
stats | 获取 server 的一些基本统计信息,如处理过的连接数量等 |
replication | 获取 server 的主从配置信息 |
cpu | 获取 server 的 CPU 使用信息 |
keyspace | 获取 server 中各个 DB 的 key 的数量 |
cluster | 获取集群节点信息,仅在开启集群后可见 |
commandstas | 获取每种命令的统计信息 |
其中 memory,stats,clients,keyspace 是 Redis 运行时经常要关注的信息。
server
获取 server 信息,包括 version, OS, port 等信息
属性名 | 属性值 | 说明 |
---|---|---|
redis_version | 5.0.3 | Redis 服务版本号 |
redis_git_sha1 | 00000000 | Git SGA1 |
redis_git_dirty | 0 | Git dirty flag |
redis_build_id | 89e87c8197752890 | Redis build ID |
redis_mode | standalone | 运行模式,分为:standalone、sentinel、cluster |
os | Darwin 18.2.0 x86_64 | Redis 所在机器的操作系统 |
arch_bits | 64 | 架构(32位或者64位) |
multiplexing_api | kqueue | Redis 所使用的事件处理机制 |
atomicvar_api | atomic-builtin | Atomicvar API |
gcc_version | 4.2.1 | 编译 Redis 时所使用的 GCC 版本 |
process_id | 40163 | 服务进程 ID |
run_id | c4f8bb49f8214f406725136e6f589b46502a0e00 | run_id |
tcp_port | 6379 | 监听端口 |
uptime_in_seconds | 496059 | 自 Redis 服务器启动已来,运行的秒数 |
uptime_in_days | 5 | 自 Redis 服务启动已来,运行的天数 |
hz | 10 | serverCron 每秒运行次数 |
configured_hz | 10 | |
lru_clock | 5452491 | 以分钟为单位进行自增的时钟,用于 LRU 管理 |
executable | /…/redis-5.0.3/src/./redis-server | 运行文件 |
config_file | /…/redis-5.0.3/redis.conf | 配置文件 |
clients
获取 clients 信息,如客户端连接数等
属性名 | 属性值 | 说明 |
---|---|---|
connected_clients | 1 | 当前客户端连接数 |
client_recent_max_input_buffer | 2 | 当前连接的客户端当中,最大输入缓存 |
client_recent_max_output_buffer | 0 | 当前连接的客户端当中,最长的输出列表 |
blocked_clients | 0 | 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量 |
memory
获取 server 的内存信息,包括当前内存消耗、内存使用峰值
属性名 | 属性值 | 说明 |
---|---|---|
used_memory | 18813680 | 由 redis 分配器(标准libc,jemalloc或其他分配器,例如tcmalloc)分配的内存总量,以字节(byte)为单位 |
used_memory_human | 17.94M | redis 分配的内存总量 |
used_memory_rss | 1945600 | 从操作系统的角度,Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top、ps 等命令的输出一致。 |
used_memory_rss_human | 1.86M | 操作系统角度,返回 redis 分配的内存总量 |
used_memory_peak | 18900752 | redis 的内存消耗峰值(以字节为单位) |
used_memory_peak_human | 18.03M | Redis 的内存消耗峰值 |
used_memory_peak_perc | 99.54% | used_memory_peak在used_memory中所占的百分比 |
used_memory_overhead | 11135798 | 分配用于管理其内部数据结构的所有开销的总字节数 |
used_memory_startup | 988448 | 启动时消耗的初始内存量(以字节为单位) |
used_memory_dataset | 7677882 | 数据集的大小(以字节为单位,used_memory - used_memory_overhead) |
used_memory_dataset_perc | 43.07% | used_memory_dataset在净内存(used_memory-used_memory_startup)使用量中所占的百分比 |
allocator_allocated | 18780336 | 分配器分配的内存 |
allocator_active | 1907712 | 分配器活跃的内存 |
allocator_resident | 1907712 | 分配器常驻的内存 |
total_system_memory | 34359738368 | 主机拥有的内存总量 |
total_system_memory_human | 32.00G | 主机拥有的内存总量 |
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 | 0.10 | 分配器的碎片率 |
allocator_frag_bytes | 18446744073692678992 | 分配器的碎片大小(以字节为单位) |
allocator_rss_ratio | 1.00 | 分配器常驻内存比例 |
allocator_rss_bytes | 0 | 分配器的常驻内存大小(以字节为单位) |
rss_overhead_ratio | 1.02 | 常驻内存开销比例 |
rss_overhead_bytes | 37888 | 常驻内存开销大小(以字节为单位) |
mem_fragmentation_ratio | 0.10 | 内存碎片率,used_memory_rss 和 used_memory 之间的比率 |
mem_fragmentation_bytes | -16834736 | 内存碎片的大小(以字节为单位) |
mem_not_counted_for_evict | 112 | 被驱逐的大小 |
mem_replication_backlog | 0 | repl_backlog |
mem_clients_slaves | 0 | clients_slaves |
mem_clients_normal | 49694 | clients_normal |
mem_aof_buffer | 112 | aof时,占用的缓冲 |
mem_allocator | libc | 内存分配器(在编译时选择) |
active_defrag_running | 0 | 碎片整理是否处于活动状态 |
lazyfree_pending_objects | 0 | 等待释放的对象数(由于使用ASYNC选项调用UNLINK或FLUSHDB和FLUSHALL) |
Persistence
获取 server 的持久化配置信息
属性名 | 属性值 | 说明 |
---|---|---|
loading | 0 | 记录服务器是否正在载入持久化文件 |
rdb_changes_since_last_save | 0 | 最近一次成功创建持久化文件之后,经过了多少秒 |
rdb_bgsave_in_progress | 0 | 记录了服务器是否正在创建 RDB 文件 |
rdb_last_save_time | 1582508875 | 最近一次成功创建 RDB 文件的 UNIX 时间戳 |
rdb_last_bgsave_status | ok | 记录最近一次创建 RDB 文件的状态,是成功还是失败 |
rdb_last_bgsave_time_sec | 1 | 记录了最近一次创建 RDB 文件耗费的秒数 |
rdb_current_bgsave_time_sec | -1 | 如果正在创建 RDB 文件,记录当前的创建操作已经耗费的秒数 |
rdb_last_cow_size | 0 | 上一次RBD保存操作期间写时复制的大小(以字节为单位) |
aof_enabled | 1 | AOF是否开启 |
aof_rewrite_in_progress | 0 | 记录了是否正在创建 AOF 文件 |
aof_rewrite_scheduled | 0 | 记录了 RDB 文件创建完毕之后,是否需要执行 AOF 重写操作 |
aof_last_rewrite_time_sec | -1 | 最近一次创建 AOF 文件耗费的秒数 |
aof_current_rewrite_time_sec | -1 | 如果正在创建 AOF 文件,那么记录当前的创建操作耗费的秒数 |
aof_last_bgrewrite_status | ok | 记录了最近一次创建 AOF 文件的状态,是成功还是失败 |
aof_last_write_status | ok | AOF的最后写入操作的状态,是成功还是失败 |
aof_last_cow_size | 0 | 上一次AOF保存操作期间写时复制的大小(以字节为单位) |
aof_current_size | 4747340 | AOF 文件当前的大小 |
aof_base_size | 4746996 | 最近一次启动或重写时的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 |
stats
获取 server 的一些基本统计信息,如处理过的连接数量等
属性名 | 属性值 | 说明 |
---|---|---|
total_connections_received | 11 | 服务器接受的连接总数 |
total_commands_processed | 48 | 服务器已执行的命令数量 |
instantaneous_ops_per_sec | 0 | 服务器每秒钟执行的命令数量 |
total_net_input_bytes | 1312 | 启动以来,流入的字节总数 |
total_net_output_bytes | 114800 | 启动以来,流出的字节总数 |
instantaneous_input_kbps | 0.00 | 接收输入的速率(每秒) |
instantaneous_output_kbps | 0.00 | 输出的速率(每秒) |
rejected_connections | 0 | 由于maxclients限制而被拒绝的连接数 |
sync_full | 0 | 与slave full sync的次数 |
sync_partial_ok | 0 | 接受的部分重新同步(psync)请求的数量 |
sync_partial_err | 0 | 被拒绝的部分重新同步(psync)请求的数量 |
expired_keys | 0 | key过期事件总数 |
expired_stale_perc | 0.00 | 过期的比率 |
expired_time_cap_reached_count | 0 | 过期计数 |
evicted_keys | 0 | 由于最大内存限制而被驱逐的key数量 |
keyspace_hits | 6 | key命中次数 |
keyspace_misses | 0 | key未命中次数 |
pubsub_channels | 0 | 发布/订阅频道的数量 |
pubsub_patterns | 0 | 发布/订阅的模式数量 |
latest_fork_usec | 803 | 最近一次 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
获取 server 的主从配置信息
属性名 | 属性值 | 说明 |
---|---|---|
role | master | 角色(master、slave),一个从服务器也可能是另一个服务器的主服务器 |
connected_slaves | 1 | 连接slave实例的个数 |
slave0 | ip=127.0.0.1,port=6380,state=online,offset=14,lag=1 | 连接的slave的信息 |
master_replid | 899b9814f2e841ca194dcc2620c83aa5df0abc10 | 服务器的复制ID |
master_replid2 | 0000000000000000000000000000000000000000 | 第二服务器复制ID,用于故障转移后的PSYNC,用于集群等高可用之后主从节点的互换 |
master_repl_offset | 14 | 复制偏移量1 |
second_repl_offset | -1 | 第二服务器复制偏移量2 |
repl_backlog_active | 1 | 复制缓冲区状态 |
repl_backlog_size | 1048576 | 复制缓冲区的大小(以字节为单位) |
repl_backlog_first_byte_offset | 1 | 复制缓冲区的偏移量,标识当前缓冲区可用范围 |
repl_backlog_histlen | 14 | 复制缓冲区中数据的大小(以字节为单位) |
如果是从节点会有如下信息:
属性名 | 属性值 | 说明 |
---|---|---|
master_host | 127.0.0.1 | Master IP |
master_port | 6379 | Master Port |
master_link_status | up | Master的连接状态(up/down) |
master_last_io_seconds_ago | 2 | 最近一次主从交互之后的秒数 |
master_sync_in_progress | 0 | 表示从服务器是否一直在与主服务器进行同步 |
slave_repl_offset | 14 | 复制偏移量 |
slave_priority | 100 | 从服务器的优先级 |
slave_read_only | 1 | 从服务是否只读 |
CPU
获取 server 的 CPU 使用信息
属性名 | 属性值 | 说明 |
---|---|---|
used_cpu_sys | 2.559564 | 消耗的系统CPU |
used_cpu_user | 0.878593 | 消耗的用户CPU |
used_cpu_sys_children | 0.001414 | 后台进程占用的系统CPU |
used_cpu_user_children | 0.000510 | 后台进程占用的用户CPU |
keyspace
获取 server 中各个 DB 的 key 的数量
属性名 | 属性值 | 说明 |
---|---|---|
db0 | keys=4,expires=0,avg_ttl=0 | db0 数据库的基本信息 |
以上是关于死磕 Redis----- info 命令详解的主要内容,如果未能解决你的问题,请参考以下文章