INFO

用法
INFO [ section ] [ [ section ] ... ]
复杂度
O(1)
起始版本
1.0.0
ACL 类别
@dangerous, @slow

INFO 命令以一种易于计算机解析和人类阅读的格式返回关于服务器的信息和统计数据。

可选参数可用于选择特定的信息部分

  • server: 关于 Valkey 服务器的通用信息
  • clients: 客户端连接部分
  • memory: 内存消耗相关信息
  • persistence: RDB 和 AOF 相关信息
  • stats: 通用统计数据
  • replication: 主/副本复制信息
  • cpu: CPU 消耗统计数据
  • commandstats: Valkey 命令统计数据
  • latencystats: Valkey 命令延迟百分位分布统计数据
  • sentinel: Valkey Sentinel 部分(仅适用于 Sentinel 实例)
  • cluster: Valkey Cluster 部分
  • modules: 模块部分
  • keyspace: 数据库相关统计数据
  • errorstats: Valkey 错误统计数据

它还可以接受以下值

  • all: 返回所有部分(不包括模块生成的部分)
  • default: 仅返回默认的部分集合
  • everything: 包括 allmodules

当未提供参数时,假定使用 default 选项。

127.0.0.1:6379> INFO
# Server
redis_version:7.2.4
server_name:valkey
valkey_version:255.255.255
redis_git_sha1:b0d5a0f5
redis_git_dirty:1
redis_build_id:1cadaf78f6168f2d
server_mode:standalone
os:Linux 6.1.0-18-amd64 x86_64
arch_bits:64
monotonic_clock:POSIX clock_gettime
multiplexing_api:epoll
atomicvar_api:c11-builtin
gcc_version:12.2.0
process_id:982599
process_supervised:no
run_id:e0abe2248cad0c6d9cb2445d8e6b73448f567f74
tcp_port:6379
server_time_usec:1714701488527373
uptime_in_seconds:94798
uptime_in_days:1
hz:10
configured_hz:10
lru_clock:3425456
executable:/home/viktor/repos/valkey/src/./valkey-server
config_file:
io_threads_active:0
availability_zone:
listener0:name=tcp,bind=*,bind=-::*,port=6379

# Clients
connected_clients:1
cluster_connections:0
maxclients:10000
client_recent_max_input_buffer:20480
client_recent_max_output_buffer:0
blocked_clients:0
tracking_clients:0
pubsub_clients:0
watching_clients:0
clients_in_timeout_table:0
total_watched_keys:0
total_blocking_keys:0
total_blocking_keys_on_nokey:0
paused_reason:none
paused_actions:none
paused_timeout_milliseconds:0

# Memory
used_memory:4757704
used_memory_human:4.54M
used_memory_rss:13221888
used_memory_rss_human:12.61M
used_memory_peak:4777616
used_memory_peak_human:4.56M
used_memory_peak_perc:99.58%
used_memory_overhead:989344
used_memory_startup:988648
used_memory_dataset:3768360
used_memory_dataset_perc:99.98%
allocator_allocated:4789624
allocator_active:5042176
allocator_resident:9252864
allocator_muzzy:0
total_system_memory:33280372736
total_system_memory_human:30.99G
used_memory_lua:31744
used_memory_vm_eval:31744
used_memory_lua_human:31.00K
used_memory_scripts_eval:0
number_of_cached_scripts:0
number_of_functions:0
number_of_libraries:0
used_memory_vm_functions:33792
used_memory_vm_total:65536
used_memory_vm_total_human:64.00K
used_memory_functions:184
used_memory_scripts:184
used_memory_scripts_human:184B
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
allocator_frag_ratio:1.05
allocator_frag_bytes:252552
allocator_rss_ratio:1.84
allocator_rss_bytes:4210688
rss_overhead_ratio:1.43
rss_overhead_bytes:3969024
mem_fragmentation_ratio:2.80
mem_fragmentation_bytes:8504448
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_total_replication_buffers:0
mem_clients_slaves:0
mem_clients_normal:0
mem_cluster_links:0
mem_aof_buffer:0
mem_allocator:jemalloc-5.3.0
mem_overhead_db_hashtable_rehashing:0
active_defrag_running:0
lazyfree_pending_objects:0
lazyfreed_objects:0

# Persistence
loading:0
async_loading:0
current_cow_peak:0
current_cow_size:0
current_cow_size_age:0
current_fork_perc:0.00
current_save_keys_processed:0
current_save_keys_total:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1714701488
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
rdb_saves:1
rdb_last_cow_size:229376
rdb_last_load_keys_expired:0
rdb_last_load_keys_loaded:0
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_rewrites:0
aof_rewrites_consecutive_failures:0
aof_last_write_status:ok
aof_last_cow_size:0
module_fork_in_progress:0
module_fork_last_cow_size:0

# Stats
total_connections_received:3081
total_commands_processed:3080
instantaneous_ops_per_sec:91
total_net_input_bytes:134722
total_net_output_bytes:686934
total_net_repl_input_bytes:0
total_net_repl_output_bytes:0
instantaneous_input_kbps:4.14
instantaneous_output_kbps:1.55
instantaneous_input_repl_kbps:0.00
instantaneous_output_repl_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
expired_stale_perc:0.00
expired_time_cap_reached_count:0
expire_cycle_cpu_milliseconds:1829
evicted_keys:0
evicted_clients:0
evicted_scripts:0
total_eviction_exceeded_time:0
current_eviction_exceeded_time:0
keyspace_hits:877
keyspace_misses:98
pubsub_channels:0
pubsub_patterns:0
pubsubshard_channels:0
latest_fork_usec:832
total_forks:5
migrate_cached_sockets:0
slave_expires_tracked_keys:0
active_defrag_hits:0
active_defrag_misses:0
active_defrag_key_hits:0
active_defrag_key_misses:0
total_active_defrag_time:0
current_active_defrag_time:0
tracking_total_keys:0
tracking_total_items:0
tracking_total_prefixes:0
unexpected_error_replies:0
total_error_replies:55
dump_payload_sanitizations:0
total_reads_processed:6160
total_writes_processed:3085
io_threaded_reads_processed:0
io_threaded_writes_processed:0
client_query_buffer_limit_disconnections:0
client_output_buffer_limit_disconnections:0
reply_buffer_shrinks:3
reply_buffer_expands:0
eventloop_cycles:710861
eventloop_duration_sum:261482066
eventloop_duration_cmd_sum:4662723
instantaneous_eventloop_cycles_per_sec:283
instantaneous_eventloop_duration_usec:595
acl_access_denied_auth:0
acl_access_denied_cmd:0
acl_access_denied_key:0
acl_access_denied_channel:0

# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:488d931b7e08f8e091f674ea64480165971a25f1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

# CPU
used_cpu_sys:68.476389
used_cpu_user:219.408941
used_cpu_sys_children:0.003157
used_cpu_user_children:0.008264
used_cpu_sys_main_thread:68.478353
used_cpu_user_main_thread:219.404508

# Modules

# Errorstats
errorstat_ERR:count=55

# Cluster
cluster_enabled:0

# Keyspace

备注

请注意,根据 Valkey 的版本,一些字段可能已被添加或删除。因此,一个健壮的客户端应用程序应通过跳过未知属性来解析此命令的结果,并优雅地处理缺失的字段。

以下是字段的描述。

以下是 server 部分中所有字段的含义

  • redis_version: 此 Valkey 服务器兼容的 Redis OSS 版本
  • valkey_version: Valkey 版本号(例如 7.2.5)
  • valkey_release_stage: Valkey 版本的状态:“ga”表示正式发布版本;“rc1”、“rc2”等表示发布候选版本;“dev”表示开发版本。在 8.1 中添加。
  • redis_git_sha1: Git SHA1
  • redis_git_dirty: Git 脏标志
  • redis_build_id: 构建 ID
  • redis_mode: 服务器模式("standalone"、"sentinel" 或 "cluster")
  • os: 托管 Valkey 服务器的操作系统
  • arch_bits: 架构(32 或 64 位)
  • multiplexing_api: Valkey 使用的事件循环机制
  • atomicvar_api: Valkey 使用的 Atomicvar API
  • gcc_version: 用于编译 Valkey 服务器的 GCC 编译器版本
  • process_id: 服务器进程的 PID
  • process_supervised: 监管系统("upstart"、"systemd"、"unknown" 或 "no")
  • run_id: 标识 Valkey 服务器的随机值(由 Sentinel 和 Cluster 使用)
  • tcp_port: TCP/IP 监听端口
  • server_time_usec: 基于纪元的系统时间,精度为微秒
  • uptime_in_seconds: Valkey 服务器启动以来的秒数
  • uptime_in_days: 以天表示的相同值
  • hz: 服务器当前频率设置
  • configured_hz: 服务器配置的频率设置
  • clients_hz: 客户端维护的当前频率
  • lru_clock: 每分钟递增的时钟,用于 LRU 管理
  • executable: 服务器可执行文件的路径
  • config_file: 配置文件的路径
  • io_threads_active: 指示 I/O 线程是否活跃的标志
  • availability_zone: 如果在云环境中运行,告知 Valkey 可用区,更多详情请参见 availability-zone 配置。在 Valkey 8.0 中添加。
  • shutdown_in_milliseconds: 副本在完成关闭序列之前赶上复制的最大剩余时间。此字段仅在关闭期间存在。

以下是 clients 部分中所有字段的含义

  • connected_clients: 客户端连接数(不包括副本连接)
  • cluster_connections: 集群总线使用的套接字数量的近似值
  • maxclients: maxclients 配置指令的值。这是 connected_clientsconnected_slavescluster_connections 之和的上限。
  • client_recent_max_input_buffer: 当前客户端连接中最大的输入缓冲区
  • client_recent_max_output_buffer: 当前客户端连接中最大的输出缓冲区
  • blocked_clients: 等待阻塞调用的客户端数量(BLPOPBRPOPBRPOPLPUSHBLMOVEBZPOPMINBZPOPMAX
  • tracking_clients: 正在被跟踪的客户端数量(CLIENT TRACKING
  • pubsub_clients: 处于发布/订阅模式的客户端数量(SUBSCRIBEPSUBSCRIBESSUBSCRIBE)。在 Valkey 8.0 中添加。
  • watching_clients: 处于 WATCH 模式的客户端数量(WATCH)。在 Valkey 8.0 中添加。
  • clients_in_timeout_table: 客户端超时表中的客户端数量
  • total_watched_keys: 被监视的键的数量。在 Valkey 8.0 中添加。
  • total_blocking_keys: 阻塞键的数量。
  • total_blocking_keys_on_nokey: 当键被删除时,一个或多个客户端希望解除阻塞的阻塞键数量。
  • paused_reason: 实例当前暂停的原因:“client_pause”表示由 CLIENT PAUSE 触发,“shutdown_in_progress”表示正在关闭,“failover_in_progress”表示正在故障转移,“none”表示没有客户端暂停。在 Valkey 8.1 中添加。
  • paused_actions: 实例当前暂停的操作:“all”表示所有客户端暂停,“write”表示执行写入命令的客户端暂停,“none”表示没有客户端暂停。在 Valkey 8.1 中添加。
  • paused_timeout_milliseconds: 暂停操作的剩余时间。在 Valkey 8.1 中添加。

以下是 memory 部分中所有字段的含义

  • used_memory: Valkey 使用其分配器(标准 libcjemalloc 或替代分配器如 tcmalloc)分配的总字节数
  • used_memory_human: 前一个值的可读表示
  • used_memory_rss: 操作系统看到的 Valkey 分配的字节数(即常驻集大小)。这是 top(1)ps(1) 等工具报告的数字
  • used_memory_rss_human: 前一个值的可读表示
  • used_memory_peak: Valkey 消耗的峰值内存(以字节为单位)
  • used_memory_peak_human: 前一个值的可读表示
  • used_memory_peak_perc: used_memory_peakused_memory 的百分比
  • used_memory_overhead: 服务器为管理其内部数据结构而分配的所有开销的总和(以字节为单位)
  • used_memory_startup: Valkey 启动时消耗的初始内存量(以字节为单位)
  • used_memory_dataset: 数据集的大小(以字节为单位,used_memory_overhead 减去 used_memory
  • used_memory_dataset_perc: used_memory_dataset 占净内存使用量(used_memory 减去 used_memory_startup)的百分比
  • total_system_memory: Valkey 主机拥有的总内存量
  • total_system_memory_human: 前一个值的可读表示
  • used_memory_lua: Lua 引擎用于 EVAL 脚本的字节数。已弃用,重命名为 used_memory_vm_eval
  • used_memory_vm_eval: 脚本 VM 引擎用于 EVAL 框架的字节数(不属于 used_memory)。
  • used_memory_lua_human: 前一个值的可读表示。已弃用。
  • used_memory_scripts_eval: EVAL 脚本造成的开销字节数(属于 used_memory)。
  • number_of_cached_scripts: 服务器缓存的 EVAL 脚本数量。
  • number_of_functions: 函数的数量。
  • number_of_libraries: 库的数量。
  • used_memory_vm_functions: 脚本 VM 引擎用于函数框架的字节数(不属于 used_memory)。
  • used_memory_vm_total: used_memory_vm_eval + used_memory_vm_functions(不属于 used_memory)。
  • used_memory_vm_total_human: 前一个值的可读表示。
  • used_memory_functions: 函数脚本造成的开销字节数(属于 used_memory)。
  • used_memory_scripts: used_memory_scripts_eval + used_memory_functions(属于 used_memory)。
  • used_memory_scripts_human: 前一个值的可读表示
  • maxmemory: maxmemory 配置指令的值
  • maxmemory_human: 前一个值的可读表示
  • maxmemory_policy: maxmemory-policy 配置指令的值
  • mem_fragmentation_ratio: used_memory_rssused_memory 之间的比率。请注意,这不仅包括碎片,还包括其他进程开销(参见 allocator_* 指标),以及代码、共享库、栈等开销。
  • mem_fragmentation_bytes: used_memory_rssused_memory 之间的差值。请注意,当总碎片字节数较低(几兆字节)时,高比率(例如 1.5 及以上)并不表示存在问题。
  • allocator_frag_ratio:: allocator_activeallocator_allocated 之间的比率。这是真实的(外部)碎片指标(不是 mem_fragmentation_ratio)。
  • allocator_frag_bytes: allocator_activeallocator_allocated 之间的差值。请参阅关于 mem_fragmentation_bytes 的备注。
  • allocator_rss_ratio: allocator_residentallocator_active 之间的比率。这通常表示分配器能够并且可能很快会释放回操作系统的页面。
  • allocator_rss_bytes: allocator_residentallocator_active 之间的差值
  • rss_overhead_ratio: used_memory_rss(进程 RSS)和 allocator_resident 之间的比率。这包括与分配器或堆无关的 RSS 开销。
  • rss_overhead_bytes: used_memory_rss(进程 RSS)和 allocator_resident 之间的差值
  • allocator_allocated: 分配器分配的总字节数,包括内部碎片。通常与 used_memory 相同。
  • allocator_active: 分配器活动页面中的总字节数,这包括外部碎片。
  • allocator_resident: 分配器中常驻(RSS)的总字节数,这包括可以释放给操作系统(通过 MEMORY PURGE 或只是等待)的页面。
  • allocator_muzzy: 分配器中“模糊(muzzy)”内存(RSS)的总字节数。模糊内存是指已释放但尚未完全返回给操作系统的内存。它可以在需要时立即重用,或者在系统压力增加时由操作系统回收。
  • mem_not_counted_for_evict: 未计入键驱逐的已用内存。这基本上是临时的副本和 AOF 缓冲区。
  • mem_clients_slaves: 副本客户端使用的内存 - 副本缓冲区与复制积压共享内存,因此当副本不触发内存使用量增加时,此字段可能显示为 0。
  • mem_clients_normal: 普通客户端使用的内存
  • mem_cluster_links: 在启用集群模式时,集群总线上与对等节点链接所使用的内存。
  • mem_aof_buffer: 用于 AOF 和 AOF 重写缓冲区的瞬时内存
  • mem_replication_backlog: 复制积压使用的内存
  • mem_total_replication_buffers: 复制缓冲区消耗的总内存。
  • mem_allocator: 内存分配器,在编译时选择。
  • mem_overhead_db_hashtable_rehashing: 当前正在进行重新哈希的数据库字典的临时内存开销 - 在 8.0 中添加。
  • active_defrag_running: 当 activedefrag 启用时,这表示碎片整理当前是否活跃,以及它打算利用的 CPU 百分比。
  • lazyfree_pending_objects: 等待释放的对象数量(调用 UNLINK 或使用 ASYNC 选项调用 FLUSHDBFLUSHALL 的结果)
  • lazyfreed_objects: 已惰性释放的对象数量。

理想情况下,used_memory_rss 的值应该只比 used_memory 略高。当 rss 远大于 used 时,较大的差异可能意味着存在(外部)内存碎片,可以通过检查 allocator_frag_ratioallocator_frag_bytes 来评估。当 used 远大于 rss 时,意味着部分 Valkey 内存已被操作系统换出:预期会有一些显著的延迟。

由于 Valkey 无法控制其分配如何映射到内存页面,因此高 used_memory_rss 通常是内存使用量激增的结果。

当 Valkey 释放内存时,内存会返回给分配器,而分配器可能会也可能不会将内存返回给系统。used_memory 值与操作系统报告的内存消耗之间可能存在差异。这可能是由于 Valkey 使用并释放了内存,但未将其返回给系统。used_memory_peak 值通常有助于检查这一点。

有关服务器内存的更多内省信息可以通过参考 MEMORY STATS 命令和 MEMORY DOCTOR 获得。

以下是 persistence 部分中所有字段的含义

  • loading: 指示转储文件加载是否正在进行的标志
  • async_loading: 当前正在异步加载复制数据集,同时服务旧数据。这意味着 repl-diskless-load 已启用并设置为 swapdb
  • current_cow_peak: 子进程正在运行时写时复制内存的峰值大小(以字节为单位)
  • current_cow_size: 子进程正在运行时写时复制内存的大小(以字节为单位)
  • current_cow_size_age: current_cow_size 值的年龄(以秒为单位)。
  • current_fork_perc: 当前 fork 进程的进度百分比。对于 AOF 和 RDB fork,它是 current_save_keys_processedcurrent_save_keys_total 的百分比。
  • current_save_keys_processed: 当前保存操作处理的键的数量
  • current_save_keys_total: 当前保存操作开始时的键的数量
  • rdb_changes_since_last_save: 自上次 RDB 文件保存以来的更改数量
  • rdb_bgsave_in_progress: 指示 RDB 保存正在进行的标志,包括无盘复制 RDB 保存
  • rdb_last_save_time: 上次成功保存 RDB 文件的基于纪元的时间戳
  • rdb_last_bgsave_status: 上次 RDB 文件保存操作的状态
  • rdb_last_bgsave_time_sec: 上次 RDB 保存操作的持续时间(以秒为单位),包括无盘复制 RDB 保存
  • rdb_current_bgsave_time_sec: 如果有正在进行的 RDB 保存操作,其持续时间(以秒为单位),包括无盘复制 RDB 保存
  • rdb_last_cow_size: 上次 RDB 保存操作期间写时复制内存的大小(以字节为单位)
  • rdb_last_load_keys_expired: 上次 RDB 加载期间删除的易失性键的数量。
  • rdb_last_load_keys_loaded: 上次 RDB 加载期间加载的键的数量。
  • aof_enabled: 指示 AOF 日志记录是否激活的标志
  • aof_rewrite_in_progress: 指示 AOF 重写操作是否正在进行的标志
  • aof_rewrite_scheduled: 指示一旦正在进行的 RDB 保存完成,将调度 AOF 重写操作的标志。
  • aof_last_rewrite_time_sec: 上次 AOF 重写操作的持续时间(以秒为单位)
  • aof_current_rewrite_time_sec: 如果有正在进行的 AOF 重写操作,其持续时间
  • aof_last_bgrewrite_status: 上次 AOF 重写操作的状态
  • aof_last_write_status: 上次写入 AOF 操作的状态
  • aof_last_cow_size: 上次 AOF 重写操作期间写时复制内存的大小(以字节为单位)
  • module_fork_in_progress: 指示模块 fork 是否正在进行的标志
  • module_fork_last_cow_size: 上次模块 fork 操作期间写时复制内存的大小(以字节为单位)
  • aof_rewrites: 自启动以来执行的 AOF 重写次数
  • rdb_saves: 自启动以来执行的 RDB 快照次数

rdb_changes_since_last_save 指的是自上次调用 SAVEBGSAVE 以来,在数据集中产生某种更改的操作数量。

如果 AOF 被激活,将添加以下字段

  • aof_current_size: AOF 当前文件大小
  • aof_base_size: 最近启动或重写时的 AOF 文件大小
  • aof_pending_rewrite: 指示一旦正在进行的 RDB 保存完成,将调度 AOF 重写操作的标志。
  • aof_buffer_length: AOF 缓冲区大小
  • aof_pending_bio_fsync: 后台 I/O 队列中待处理的 fsync 作业数量
  • aof_delayed_fsync: 延迟 fsync 计数器

如果加载操作正在进行,将添加以下字段

  • loading_start_time: 加载操作开始的基于纪元的时间戳
  • loading_total_bytes: 文件总大小
  • loading_rdb_used_mem: 生成 RDB 文件的服务器在文件创建时的内存使用量
  • loading_loaded_bytes: 已加载的字节数
  • loading_loaded_perc: 以百分比表示的相同值
  • loading_eta_seconds: 加载完成的预计剩余时间(以秒为单位)

以下是 stats 部分中所有字段的含义

  • total_connections_received: 服务器接受的连接总数
  • total_commands_processed: 服务器处理的命令总数
  • instantaneous_ops_per_sec: 每秒处理的命令数量
  • total_net_input_bytes: 从网络读取的总字节数
  • total_net_output_bytes: 写入网络的总字节数
  • total_net_repl_input_bytes: 为复制目的从网络读取的总字节数
  • total_net_repl_output_bytes: 为复制目的写入网络的总字节数
  • instantaneous_input_kbps: 网络每秒读取速率(KB/秒)
  • instantaneous_output_kbps: 网络每秒写入速率(KB/秒)
  • instantaneous_input_repl_kbps: 为复制目的网络每秒读取速率(KB/秒)
  • instantaneous_output_repl_kbps: 为复制目的网络每秒写入速率(KB/秒)
  • rejected_connections: 因达到 maxclients 限制而被拒绝的连接数
  • sync_full: 与副本完全重新同步的次数
  • sync_partial_ok: 接受的部分重新同步请求次数
  • sync_partial_err: 拒绝的部分重新同步请求次数
  • expired_keys: 键过期事件的总数
  • expired_stale_perc: 可能已过期的键的百分比
  • expired_time_cap_reached_count: 活跃过期周期提前停止的次数
  • expire_cycle_cpu_milliseconds: 在活跃过期周期上花费的累计时间
  • evicted_keys: 因达到 maxmemory 限制而被驱逐的键的数量
  • evicted_clients: 因达到 maxmemory-clients 限制而被驱逐的客户端数量。
  • evicted_scripts: 因 LRU 策略而被驱逐的 EVAL 脚本数量,更多详情请参见 EVAL。在 Valkey 8.0 中添加。
  • total_eviction_exceeded_time: 自服务器启动以来,used_memory 大于 maxmemory 的总时间,以毫秒为单位
  • current_eviction_exceeded_time: 自 used_memory 上次超过 maxmemory 以来经过的时间,以毫秒为单位
  • keyspace_hits: 在主字典中成功查找键的次数
  • keyspace_misses: 在主字典中查找键失败的次数
  • pubsub_channels: 带有客户端订阅的发布/订阅通道的全局数量
  • pubsub_patterns: 带有客户端订阅的发布/订阅模式的全局数量
  • pubsubshard_channels: 带有客户端订阅的发布/订阅分片通道的全局数量。
  • latest_fork_usec: 最新 fork 操作的持续时间(以微秒为单位)
  • total_forks: 自服务器启动以来的 fork 操作总数
  • migrate_cached_sockets: 为 MIGRATE 目的打开的套接字数量
  • slave_expires_tracked_keys: 为过期目的跟踪的键的数量(仅适用于可写副本)
  • active_defrag_hits: 活跃碎片整理过程执行的值重新分配次数
  • active_defrag_misses: 活跃碎片整理过程启动但中止的值重新分配次数
  • active_defrag_key_hits: 已被活跃碎片整理的键的数量
  • active_defrag_key_misses: 被活跃碎片整理过程跳过的键的数量
  • total_active_defrag_time: 内存碎片超出限制的总时间,以毫秒为单位
  • current_active_defrag_time: 自内存碎片上次超出限制以来经过的时间,以毫秒为单位
  • tracking_total_keys: 服务器正在跟踪的键的数量
  • tracking_total_items: 正在被跟踪的项的数量,即每个键的客户端数量之和
  • tracking_total_prefixes: 服务器前缀表中跟踪的前缀数量(仅适用于广播模式)
  • unexpected_error_replies: 意外错误回复的数量,这些错误类型来自 AOF 加载或复制
  • total_error_replies: 发出的错误回复总数,即被拒绝的命令(命令执行前的错误)和失败的命令(命令执行内的错误)的总和
  • dump_payload_sanitizations: 转储负载深度完整性验证的总次数(参见 sanitize-dump-payload 配置)。
  • total_reads_processed: 处理的读取事件总数
  • total_writes_processed: 处理的写入事件总数
  • io_threaded_reads_processed: 由 I/O 线程处理的读取事件数量。
  • io_threaded_writes_processed: 由 I/O 线程处理的写入事件数量。
  • io_threaded_total_prefetch_batches: 指示为了在执行命令之前预取键而执行的预取批次数量。
  • io_threaded_total_prefetch_entries: 已预取的字典条目总数。每个批次可以包含多个条目,条目/批次的比率表示每个批次平均预取了多少个条目。
  • io_threaded_poll_processed: I/O 线程执行的总 poll 系统调用次数。
  • io_threaded_freed_objects: I/O 线程释放的对象总数。
  • client_query_buffer_limit_disconnections: 因客户端达到查询缓冲区限制而断开连接的总数
  • client_output_buffer_limit_disconnections: 因客户端达到输出缓冲区限制而断开连接的总数
  • reply_buffer_shrinks: 输出缓冲区收缩的总次数
  • reply_buffer_expands: 输出缓冲区扩展的总次数
  • eventloop_cycles: 事件循环的总次数
  • eventloop_duration_sum: 在事件循环中花费的总时间(以微秒为单位,包括 I/O 和命令处理)
  • eventloop_duration_cmd_sum: 执行命令花费的总时间(以微秒为单位)
  • instantaneous_eventloop_cycles_per_sec: 每秒事件循环的次数
  • instantaneous_eventloop_duration_usec: 单个事件循环周期中花费的平均时间(以微秒为单位)
  • acl_access_denied_auth: 认证失败次数
  • acl_access_denied_cmd: 因命令访问被拒绝而拒绝的命令数量
  • acl_access_denied_key: 因键访问被拒绝而拒绝的命令数量
  • acl_access_denied_channel: 因通道访问被拒绝而拒绝的命令数量

以下是 replication 部分中所有字段的含义

  • role: 如果实例不是任何主节点的副本,则值为“master”;如果实例是某个主实例的副本,则值为“slave”。请注意,一个副本可以是另一个副本的主节点(链式复制)。
  • master_failover_state: 如果有正在进行的故障转移,其状态。
  • master_replid: Valkey 服务器的复制 ID。
  • master_replid2: 第二复制 ID,用于故障转移后的 PSYNC。
  • master_repl_offset: 服务器当前复制偏移量
  • second_repl_offset: 复制 ID 被接受的偏移量
  • repl_backlog_active: 指示复制积压是否活跃的标志
  • repl_backlog_size: 复制积压缓冲区的总大小(以字节为单位)
  • repl_backlog_first_byte_offset: 复制积压缓冲区的主偏移量
  • repl_backlog_histlen: 复制积压缓冲区中数据的大小(以字节为单位)

如果实例是副本,则提供以下附加字段

  • master_host: 主节点的主机名或 IP 地址
  • master_port: 主节点的监听 TCP 端口
  • master_link_status: 链接状态(up/down)
  • master_last_io_seconds_ago: 自上次与主节点交互以来的秒数
  • master_sync_in_progress: 指示主节点正在与副本同步
  • slave_read_repl_offset: 副本实例的读取复制偏移量。
  • slave_repl_offset: 副本实例的复制偏移量
  • slave_priority: 实例作为故障转移候选的优先级
  • slave_read_only: 指示副本是否为只读的标志
  • replica_announced: 指示副本是否由 Sentinel 宣告的标志。

如果 SYNC 操作正在进行,则提供以下附加字段

  • master_sync_total_bytes: 需要传输的总字节数。当大小未知时(例如,使用 repl-diskless-sync 配置指令时),这可能为 0
  • master_sync_read_bytes: 已传输的字节数
  • master_sync_left_bytes: 同步完成前剩余的字节数(当 master_sync_total_bytes 为 0 时可能为负)
  • master_sync_perc: master_sync_read_bytesmaster_sync_total_bytes 的百分比,或者当 master_sync_total_bytes 为 0 时使用 loading_rdb_used_mem 的近似值
  • master_sync_last_io_seconds_ago: SYNC 操作期间上次传输 I/O 以来的秒数

如果主节点和副本之间的链接断开,则提供一个附加字段

  • master_link_down_since_seconds: 链接断开以来的秒数

始终提供以下字段

  • connected_slaves: 已连接副本的数量

如果服务器配置了 min-replicas-to-write 指令,则提供一个附加字段

  • min_slaves_good_slaves: 当前被认为是“良好”的副本数量

对于每个副本,添加以下行

  • slaveXXX: id, IP 地址, 端口, 状态, 偏移量, 延迟

以下是 cpu 部分中所有字段的含义

  • used_cpu_sys: Valkey 服务器消耗的系统 CPU,它是服务器进程所有线程(主线程和后台线程)消耗的系统 CPU 之和
  • used_cpu_user: Valkey 服务器消耗的用户 CPU,它是服务器进程所有线程(主线程和后台线程)消耗的用户 CPU 之和
  • used_cpu_sys_children: 后台进程消耗的系统 CPU
  • used_cpu_user_children: 后台进程消耗的用户 CPU
  • used_cpu_sys_main_thread: Valkey 服务器主线程消耗的系统 CPU
  • used_cpu_user_main_thread: Valkey 服务器主线程消耗的用户 CPU

commandstats 部分提供基于命令类型的统计数据,包括达到命令执行的调用次数(未被拒绝)、这些命令消耗的总 CPU 时间、每次命令执行消耗的平均 CPU、被拒绝的调用次数(命令执行前的错误)以及失败的调用次数(命令执行内的错误)。

对于每种命令类型,添加以下行

  • cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX,rejected_calls=XXX,failed_calls=XXX

latencystats 部分提供基于命令类型的延迟百分位分布统计数据。

默认情况下,导出的延迟百分位是 p50、p99 和 p999。如果需要更改导出的百分位,请使用 CONFIG SET latency-tracking-info-percentiles "50.0 99.0 99.9"

此部分需要启用扩展延迟监控功能(默认已启用)。如果需要启用它,请使用 CONFIG SET latency-tracking yes

对于每种命令类型,添加以下行

  • latency_percentiles_usec_XXX: p<百分位 1>=<百分位 1 值>,p<百分位 2>=<百分位 2 值>,...

errorstats 部分能够根据回复错误前缀(“-”后的第一个词,直到第一个空格。例如:ERR)跟踪 Valkey 中发生的各种错误。

对于每种错误类型,添加以下行

  • errorstat_XXX: count=XXX

sentinel 部分仅在 Valkey Sentinel 实例中可用。它包含以下字段

  • sentinel_masters: 此 Sentinel 实例监控的 Valkey 主节点数量
  • sentinel_tilt: 值为 1 表示此 Sentinel 处于 TILT 模式
  • sentinel_tilt_since_seconds: 当前 TILT 的持续时间(以秒为单位),如果未处于 TILT 模式则为 -1。
  • sentinel_total_tilt: 此 Sentinel 自运行以来处于 TILT 模式的总次数。在 9.0 中添加。
  • sentinel_running_scripts: 此 Sentinel 当前正在执行的脚本数量
  • sentinel_scripts_queue_length: 待执行的用户脚本队列的长度
  • sentinel_simulate_failure_flags: SENTINEL SIMULATE-FAILURE 命令的标志

cluster 部分目前仅包含一个唯一字段

  • cluster_enabled: 指示 Valkey 集群是否启用

modules 部分包含有关已加载模块的附加信息(如果模块提供)。此部分中属性行的字段部分始终以模块名称作为前缀。

keyspace 部分提供每个数据库主字典的统计数据。统计数据包括键的数量以及带有过期时间的键的数量。

对于每个数据库,添加以下行

  • dbXXX: keys=XXX,expires=XXX

debug 部分包含实验性指标,这些指标在未来版本中可能会更改或删除。调用 INFOINFO ALL 时不会包含此部分,仅在使用 INFO DEBUG 时返回。

  • eventloop_duration_aof_sum: 在事件循环中刷新 AOF 花费的总时间(以微秒为单位)
  • eventloop_duration_cron_sum: cron 的总时间消耗(以微秒为单位,包括 serverCron 和 beforeSleep,但不包括 IO 和 AOF 刷新)
  • eventloop_duration_max: 单个事件循环周期中花费的最大时间(以微秒为单位)
  • eventloop_cmd_per_cycle_max: 单个事件循环周期中处理的最大命令数量

关于本手册页中使用“slave”一词的说明:如果不是为了向后兼容,Valkey 项目不再使用“master”和“slave”这两个词。遗憾的是,在给定命令中,这些词是协议的一部分,因此只有当此 API 自然废弃时,我们才能删除此类出现。

模块生成的部分:从 Valkey 6 开始,模块可以将其信息注入到 INFO 命令中,即使提供了 all 参数,这些信息默认也会被排除(它将包含已加载模块的列表,但不包含它们生成的信息字段)。要获取这些信息,您必须使用 modules 参数或 everything

RESP2/RESP3 回复

Bulk string 回复:一个信息字段的映射,每行一个字段,形式为 <field>:<value>,其中值可以是逗号分隔的映射,如 <key>=<val>。也包含以 # 开头的节标题行和空行。

行可以包含节名称(以 # 字符开头)或属性。所有属性都采用 field:value 的形式,以 \r\n 终止。

历史

版本 变更
7.0.0

增加了对接受多个节参数的支持。