INFO
Syntax
INFO [section [section ...]]
Time complexity: O(1)
The INFO
command returns information and statistics about the server in a format that is simple to parse by computers and easy to read by humans.
The optional parameter can be used to select a specific section of information:
server
: General information about the Dragonfly serverclients
: Client connections sectionmemory
: Memory consumption related informationpersistence
: Persistence related informationstats
: General statisticsreplication
: Master/replica replication informationcpu
: CPU consumption statisticscommandstats
: Command statisticskeyspace
: Database related statisticserrorstats
: Error statistics
It can also take the following values:
all
: Return all sections (excluding module generated ones)
When no parameter is provided, the default
option is assumed.
Return
Bulk string reply: as a collection of text lines.
Lines can contain a section name (starting with a # character) or a property. All the properties are in the form of field:value
terminated by \r\n
.
dragonfly> INFO
# Server
dragonfly_version:df-dev
redis_mode:standalone
arch_bits:64
multiplexing_api:iouring
tcp_port:6379
uptime_in_seconds:9
uptime_in_days:0
# Clients
connected_clients:1
client_read_buffer_bytes:256
blocked_clients:0
# Memory
used_memory:67219536
used_memory_human:64.11MiB
used_memory_peak:67219536
comitted_memory:134963200
used_memory_rss:128823296
used_memory_rss_human:122.86MiB
object_used_memory:27
table_used_memory:66189280
num_buckets:1720320
num_entries:1005001
inline_keys:1005001
strval_bytes:0
updateval_amount:0
listpack_blobs:0
listpack_bytes:0
small_string_bytes:0
pipeline_cache_bytes:0
maxmemory:3169176780
maxmemory_human:2.95GiB
cache_mode:store
# Stats
total_connections_received:1
total_commands_processed:2
instantaneous_ops_per_sec:0
total_pipelined_commands:0
total_net_input_bytes:14
total_net_output_bytes:11249
instantaneous_input_kbps:-1
instantaneous_output_kbps:-1
rejected_connections:-1
expired_keys:0
evicted_keys:0
hard_evictions:0
garbage_checked:0
garbage_collected:0
bump_ups:0
stash_unloaded:0
traverse_ttl_sec:0
delete_ttl_sec:0
keyspace_hits:0
keyspace_misses:0
total_reads_processed:1
total_writes_processed:1850
async_writes_count:0
parser_err_count:0
defrag_attempt_total:0
defrag_realloc_total:0
defrag_task_invocation_total:0
# Replication
role:master
connected_slaves:0
master_replid:5114684b4a5bc1ab7fa9133c5ac972028c62f576
# Keyspace
db0:keys=1005001,expires=0,avg_ttl=-1
# CPU
used_cpu_sys:0.76107
used_cpu_user:9.353156
used_cpu_sys_children:0.0
used_cpu_user_children:0.0
used_cpu_sys_main_thread:0.32040
used_cpu_user_main_thread:4.681903
Notes
Please note depending on the version of Dragonfly some of the fields have been added or removed. A robust client application should therefore parse the result of this command by skipping unknown properties, and gracefully handle missing fields.
Here is the meaning of all fields in the server section:
dragonfly_version
: Version of the Dragonfly serverredis_mode
: The server’s mode (“standalone”, “sentinel” or “cluster”)arch_bits
: Architecture (32 or 64 bits)multiplexing_api
: Event loop mechanism used by Dragonflytcp_port
: TCP/IP listen portuptime_in_seconds
: Number of seconds since Dragonfly server startuptime_in_days
: Same value expressed in days
Here is the meaning of all fields in the clients section:
connected_clients
: Number of client connections (excluding connections from replicas)client_read_buffer_bytes
: Client read buffer size in bytesblocked_clients
: Number of clients pending on a blocking call (BLPOP
,BRPOP
,BRPOPLPUSH
,BLMOVE
,BZPOPMIN
,BZPOPMAX
)
Here is the meaning of all fields in the memory section:
used_memory
: Total number of bytes allocated by Dragonfly using its allocatorused_memory_human
: Human readable representation of previous valueused_memory_peak
: Peak memory consumed by Dragonfly (in bytes)used_memory_rss
: Number of bytes that Dragonfly allocated as seen by the operating system (a.k.a resident set size). This is the number reported by tools such astop(1)
andps(1)
used_memory_rss_human
: Human readable representation of previous valuemaxmemory
: The value of themaxmemory
configuration directivemaxmemory_human
: Human readable representation of previous value
Ideally, the used_memory_rss
value should be only slightly higher than used_memory
. When rss >> used, a large difference may mean there is (external) memory fragmentation.
When Dragonfly frees memory, the memory is given back to the allocator, and the allocator may or may not give the memory back to the system. There may be a discrepancy between the used_memory
value and memory consumption as reported by the operating system. It may be due to the fact memory has been used and released by Dragonfly, but not given back to the system. The used_memory_peak
value is generally useful to check this point.
Here is the meaning of all fields in the persistence section:
last_save
: Epoch based timestamp of last successful savelast_save_duration_sec
: Duration of the last save operation in secondslast_save_file
: File path of last save file
Here is the meaning of all fields in the stats section:
total_connections_received
: Total number of connections accepted by the servertotal_commands_processed
: Total number of commands processed by the serverinstantaneous_ops_per_sec
: Number of commands processed per secondtotal_pipelined_commands
: Total number of commands pipelined to the servertotal_net_input_bytes
: The total number of bytes read from the networktotal_net_output_bytes
: The total number of bytes written to the networkinstantaneous_input_kbps
: The network’s read rate per second in KB/secinstantaneous_output_kbps
: The network’s write rate per second in KB/secrejected_connections
: Number of connections rejected because ofmaxclients
limitexpired_keys
: Total number of key expiration eventsevicted_keys
: Number of evicted keys due tomaxmemory
limitkeyspace_hits
: Number of successful lookup of keys in the main dictionarykeyspace_misses
: Number of failed lookup of keys in the main dictionarytotal_reads_processed
: Total number of read events processedtotal_writes_processed
: Total number of write events processed
Here is the meaning of all fields in the replication section:
role
: Value is “master” if the instance is replica of no one, or “slave” if the instance is a replica of some master instancemaster_replid
: The replication ID of the Dragonfly serverconnected_slaves
: Number of connected replicas
If the instance is a replica, these additional fields are provided:
master_host
: Host or IP address of the mastermaster_port
: Master listening TCP portmaster_link_status
: Status of the link (up/down)master_last_io_seconds_ago
: Number of seconds since the last interaction with mastermaster_sync_in_progress
: Indicate the master is syncing to the replica
For each replica, the following line is added:
slaveXXX
: id, IP address, port
Here is the meaning of all fields in the cpu section:
used_cpu_sys
: System CPU consumed by the Dragonfly server, which is the sum of system CPU consumed by all threads of the server process (main thread and background threads)used_cpu_user
: User CPU consumed by the Dragonfly server, which is the sum of user CPU consumed by all threads of the server process (main thread and background threads)used_cpu_sys_children
: System CPU consumed by the background processesused_cpu_user_children
: User CPU consumed by the background processesused_cpu_sys_main_thread
: System CPU consumed by the Dragonfly server main threadused_cpu_user_main_thread
: User CPU consumed by the Dragonfly server main thread
The commandstats section provides statistics based on the command type, including the number of calls that reached command execution (not rejected), the total CPU time consumed by these commands, the average CPU consumed per command execution, the number of rejected calls (errors prior command execution), and the number of failed calls (errors within the command execution).
For each command type, the following line is added:
cmdstat_XXX
:XXX
- number of calls
The keyspace section provides statistics on the main dictionary of each database. The statistics are the number of keys, and the number of keys with an expiration.
For each database, the following line is added:
dbXXX
:keys=XXX,expires=XXX, avg_ttl=XXX