info [section]
Available since 1.0.0.
命令说明
用于获取Tendis存储版
的运行状态,语义保持跟redis的info几乎一致。
参数说明
sesciton可用于选择特定的信息部分:
server:有关Redis服务器的常规信息
clients:客户端连接部分
memory:内存消耗相关信息
persistence:RDB和AOF相关信息
stats:一般统计
replication:主备复制信息
cpu:CPU消耗统计
commandstats:Redis命令统计(default不显示)
cluster:集群相关
keyspace:与数据库相关的统计
backup:备份相关信息
dataset:rocksdb总体数据量及内存等信息
compaction:reshape命令的执行信息
levelstats:rocksdb每层数据汇总信息
bgerror: rocksdb的后台错误,需要重点监控
rocksdbstats:rocksdb内部statictics信息(default不显示)
rocksdbperfstats:显示上一个指令在rocksdb的执行性能数据(default不显示)
binloginfo: 显示每个kvstore的最大和最小binlog信息(default不显示)
它还可以采用以下值:
all:返回所有部分 default:仅返回默认的部分集
如果未提供任何参数,则采用该default选项。
除了以上可选值,Tendis存储版
增加或修改了如下section
stats
127.0.0.1:8903> info stats
# Stats
total_connections_received:2
total_connections_released:1
total_commands_processed:7
instantaneous_ops_per_sec:0
total_commands_cost(ns):10808800 #命令总耗时 = 下面三参数之和(纳秒)
total_commands_workpool_queue_cost(ns):536500 #命令在workpool的等待总时长
total_commands_workpool_execute_cost(ns):9168500 #命令在workpool的总执行时长
total_commands_send_packet_cost(ns):1103800 #命令回包的总时长
total_commands_execute_cost(ns):8886300 #命令真正执行总时长,不包含workpool的调度时间
avg_commands_cost(ns):1544114 #total_commands_cost/total_commands_processed
avg_commands_workpool_queue_cost(ns):76642
avg_commands_workpool_execute_cost(ns):1309785
avg_commands_send_packet_cost(ns):157685
avg_commands_execute_cost(ns):1269471
commands_in_queue:0 # 正在任务队列中执行的command数
commands_executed_in_workpool:14 # workpool调度次数,执行+回包
total_stricky_packets:0 # 命令包粘包数量
total_invalid_packets:0 # 非法命令包数量
total_net_input_bytes:244
total_net_output_bytes:16267
instantaneous_input_kbps:0
instantaneous_output_kbps:0
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
keyspace_hits:0
keyspace_misses:0
keyspace_wrong_versionep:0 # 非法revision访问数
backup
获得备份相关信息
127.0.0.1:8903> info backup
# Backup
backup-count:0
last-backup-time:0
dataset
获得所有rocksdb的部分统计信息之和
127.0.0.1:8903> info dataset
# Dataset
rocksdb.kvstore-count:10 # 一共有10个kvstore
rocksdb.total-sst-files-size:6862
rocksdb.live-sst-files-size:6862
rocksdb.estimate-live-data-size:6862
rocksdb.estimate-num-keys:14
rocksdb.total-memory:67117582 # 下面三个值之和
rocksdb.cur-size-all-mem-tables:8000 # 所有memtable的总内存大小
rocksdb.estimate-table-readers-mem:718 # 索引和过滤块使用的内存
rocksdb.blockcache:67108864 # blockcache的大小
rocksdb.mem-table-flush-pending:0
rocksdb.estimate-pending-compaction-bytes:0
rocksdb.compaction-pending:0
rocksdb.total-memory:67117582
compaction
用于显示手动执行reshape
命令,内部执行Manual Compaction的执行状态
127.0.0.1:8903> info compaction
# Compaction
current-compaction-status:stopped #是否正在执行reshape命令
time-since-lastest-compaction:18 #距离上一次执行reshape的时间(秒)
current-compaction-dbid: #正在执行的kvstore id
127.0.0.1:8903> reshape
127.0.0.1:8903> info compaction
# Compaction
current-compaction-status:running
time-since-lastest-compaction:6
current-compaction-dbid:1
levelstats
用于显示rocksdb每层的占用字节数,记录数,删除记录数及文件数。如果该level没有任何数据,将不显示。
127.0.0.1:8903> info levelstats
rocksdb5.level-6:bytes=1802,num_entries=7,num_deletions=0,num_files=1
rocksdb8.level-6:bytes=5060,num_entries=7,num_deletions=0,num_files=1
上面例子是5号和8号rocksdb的level-6显示的使用情况,其他rocksdb的其它level都没有数据。
rocksdbstats
用于显示rocksdb的内部统计信息,来源于rocksdb statistics
这部分统计信息包括
- 每个rocksdb的statistics信息
- 所有rocksdb的汇总的信息
127.0.0.1:8903> info rocksdbstats
rocksdb0.block.cache.add COUNT : 0 # 0号rocksdb的属性
...
rocksdb1.block.cache.add COUNT : 0
...
rocksdb2.block.cache.add COUNT : 0
...
rocksdb3.block.cache.add COUNT : 0
...
rocksdb4.block.cache.add COUNT : 0
...
rocksdb5.block.cache.add COUNT : 2
...
rocksdb6.block.cache.add COUNT : 0
...
rocksdb7.block.cache.add COUNT : 0
...
rocksdb8.block.cache.add COUNT : 1
...
rocksdb9.block.cache.add COUNT : 0
...
rocksdb9.db.get.micros P50 : 0.000000 P95 : 0.000000 P99 : 0.000000 P100 : 0.000000 COUNT : 0 SUM : 0
rocksdb9.db.write.micros P50 : 88.811594 P95 : 210.800000 P99 : 422.000000 P100 : 567.000000 COUNT : 158 SUM : 16270
...
rocksdb.block.cache.add COUNT : 3 # 所有rocksdb的属性累加值
rocksdb.block.cache.add.failures COUNT : 0
rocksdb.block.cache.bytes.read COUNT : 4269228
由于rocksdbstats
默认输出信息比较多,所以默认info
并不会输出,需要执行info all
或者info rocksdbstats
。
rocksdbperfstats
如果想分析某个指令的性能数据,可以执行info rocksbperfstats
,并且确保在执行指令之前执行config set session perf_level
指令。
127.0.0.1:8903> config set session perf_level enable_count # 支持4个不同的level
OK
127.0.0.1:8903> keys *
1) "a"
2) "zz{a}"
3) "ss"
4) "abc"
(8.70s)
127.0.0.1:8903> info rocksdbperfstats # 显示keys指令的perf context
# RocksdbPerfstats
user_key_comparison_count:31
block_cache_hit_count:3
block_read_count:0
block_read_byte:0
block_read_time:0
block_cache_index_hit_count:0
index_block_read_count:0
block_cache_filter_hit_count:0
filter_block_read_count:0
compression_dict_block_read_count:0
block_checksum_time:0
block_decompress_time:0
get_read_bytes:0
multiget_read_bytes:0
iter_read_bytes:5336
internal_key_skipped_count:16
internal_delete_skipped_count:0
internal_recent_skipped_count:0
internal_merge_count:0
write_wal_time:0
get_snapshot_time:0
get_from_memtable_time:0
get_from_memtable_count:0
get_post_process_time:0
get_from_output_files_time:0
seek_on_memtable_time:0
seek_on_memtable_count:20
next_on_memtable_count:0
prev_on_memtable_count:0
seek_child_seek_time:0
seek_child_seek_count:10
seek_min_heap_time:0
seek_internal_seek_time:0
find_next_user_entry_time:0
write_pre_and_post_process_time:0
write_memtable_time:0
write_thread_wait_nanos:0
write_scheduling_flushes_compactions_time:0
db_mutex_lock_nanos:0
db_condition_wait_nanos:0
merge_operator_time_nanos:0
write_delay_time:0
read_index_block_nanos:0
read_filter_block_nanos:0
new_table_block_iter_nanos:0
new_table_iterator_nanos:0
block_seek_nanos:0
find_table_nanos:0
bloom_memtable_hit_count:0
bloom_memtable_miss_count:0
bloom_sst_hit_count:0
bloom_sst_miss_count:0
key_lock_wait_time:0
key_lock_wait_count:0
env_new_sequential_file_nanos:0
env_new_random_access_file_nanos:0
env_new_writable_file_nanos:0
env_reuse_writable_file_nanos:0
env_new_random_rw_file_nanos:0
env_new_directory_nanos:0
env_file_exists_nanos:0
env_get_children_nanos:0
env_get_children_file_attributes_nanos:0
env_delete_file_nanos:0
env_create_dir_nanos:0
env_create_dir_if_missing_nanos:0
env_delete_dir_nanos:0
env_get_file_size_nanos:0
env_get_file_modification_time_nanos:0
env_rename_file_nanos:0
env_link_file_nanos:0
env_lock_file_nanos:0
env_unlock_file_nanos:0
env_new_logger_nanos:0
get_cpu_nanos:0
thread_pool_id:3
bytes_read:0
bytes_written:0
open_nanos:0
allocate_nanos:0
write_nanos:0
read_nanos:0
range_sync_nanos:0
fsync_nanos:0
prepare_write_nanos:0
logger_nanos:0
rocksdbbgerror
用于获取rocksdb是否出现一些后台错误。一旦出现后台错误,例如磁盘满,整个rocksdb会处于read only状态。如果想解决异常状态,例如释放一些空间,需要执行tendisadmin recovery
命令来修复异常状态。详细可查看Background Error Handling
127.0.0.1:8903> set a b
(error) ERR:3,msg:IO error: No space left on deviceWhile appending to file: ./db/5/000084.sst: No space left on device
127.0.0.1:8903> info rocksdbBgError
# RocksdbBgError
rocksdb2:bgerror=IO error: No space left on deviceWhile appending to file: ./db/2/000093.sst: No space left on device,reason=Compaction,count=1
rocksdb4:bgerror=IO error: No space left on deviceWhile appending to file: ./db/4/000092.sst: No space left on device,reason=Compaction,count=1
rocksdb5:bgerror=IO error: No space left on deviceWhile appending to file: ./db/5/000089.sst: No space left on device,reason=Compaction,count=1
rocksdb6:bgerror=IO error: No space left on deviceWhile appending to file: ./db/6/000086.sst: No space left on device,reason=Compaction,count=1
127.0.0.1:8903> tendisadmin recovery
OK
127.0.0.1:8903> set a b
OK
replication
显示复制相关信息
如果是一个master,有两个slave
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=1112,state=online,offset=1171,lag=0
slave1:ip=127.0.0.1,port=2111,state=online,offset=1171,lag=1 # state取值范围:"none","connecting"建立连接中,"send_bulk"全量发送中,"online"增量发送日志,"error"
master_repl_offset:1171 # 所有rocksdb的最大binlogid相加
rocksdb0_slave0:ip=127.0.0.1,port=1112,dest_store_id=0,state=online,binlog_pos=208,lag=0,binlog_lag=0 # lag表示落后的时间(秒),binlog_lag表示还有多少个binlog没有发给slave
rocksdb0_slave1:ip=127.0.0.1,port=2111,dest_store_id=0,state=online,binlog_pos=208,lag=0,binlog_lag=0
rocksdb1_slave0:ip=127.0.0.1,port=1112,dest_store_id=1,state=online,binlog_pos=57,lag=0,binlog_lag=0
rocksdb1_slave1:ip=127.0.0.1,port=2111,dest_store_id=1,state=online,binlog_pos=57,lag=0,binlog_lag=0
rocksdb2_slave0:ip=127.0.0.1,port=1112,dest_store_id=2,state=online,binlog_pos=125,lag=0,binlog_lag=0
rocksdb2_slave1:ip=127.0.0.1,port=2111,dest_store_id=2,state=online,binlog_pos=125,lag=0,binlog_lag=0
rocksdb3_slave0:ip=127.0.0.1,port=1112,dest_store_id=3,state=online,binlog_pos=67,lag=0,binlog_lag=0
rocksdb3_slave1:ip=127.0.0.1,port=2111,dest_store_id=3,state=online,binlog_pos=67,lag=0,binlog_lag=0
rocksdb4_slave0:ip=127.0.0.1,port=1112,dest_store_id=4,state=online,binlog_pos=109,lag=0,binlog_lag=0
rocksdb4_slave0:,ip=127.0.0.1,port=2111,dest_store_id=4,state=send_bulk_success,binlog_pos=109,duration=2,binlog_lag=0
rocksdb5_slave0:ip=127.0.0.1,port=1112,dest_store_id=5,state=online,binlog_pos=206,lag=0,binlog_lag=0
rocksdb5_slave0:,ip=127.0.0.1,port=2111,dest_store_id=5,state=send_bulk_success,binlog_pos=206,duration=2,binlog_lag=0
rocksdb6_slave0:ip=127.0.0.1,port=1112,dest_store_id=6,state=online,binlog_pos=182,lag=0,binlog_lag=0
rocksdb6_slave0:,ip=127.0.0.1,port=2111,dest_store_id=6,state=send_bulk_success,binlog_pos=182,duration=2,binlog_lag=0
rocksdb7_slave0:ip=127.0.0.1,port=1112,dest_store_id=7,state=online,binlog_pos=70,lag=0,binlog_lag=0
rocksdb7_slave0:,ip=127.0.0.1,port=2111,dest_store_id=7,state=send_bulk_success,binlog_pos=70,duration=2,binlog_lag=0
rocksdb8_slave0:ip=127.0.0.1,port=1112,dest_store_id=8,state=online,binlog_pos=101,lag=0,binlog_lag=0
rocksdb8_slave0:,ip=127.0.0.1,port=2111,dest_store_id=8,state=send_bulk_success,binlog_pos=101,duration=1,binlog_lag=0
rocksdb9_slave0:ip=127.0.0.1,port=1112,dest_store_id=9,state=online,binlog_pos=46,lag=0,binlog_lag=0
rocksdb9_slave0:,ip=127.0.0.1,port=2111,dest_store_id=9,state=send_bulk_success,binlog_pos=46,duration=1,binlog_lag=0
如果是一个slave
# Replication
role:slave
master_host:127.0.0.1
master_port:1111
master_link_status:up # 取值: up, down
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:1171 # slave所有binlogid相加
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:1171
rocksdb0_master:ip=127.0.0.1,port=1111,src_store_id=0,state=online,binlog_pos=208,lag=0
rocksdb1_master:ip=127.0.0.1,port=1111,src_store_id=1,state=online,binlog_pos=57,lag=0
rocksdb2_master:ip=127.0.0.1,port=1111,src_store_id=2,state=online,binlog_pos=125,lag=0
rocksdb3_master:ip=127.0.0.1,port=1111,src_store_id=3,state=online,binlog_pos=67,lag=0
rocksdb4_master:ip=127.0.0.1,port=1111,src_store_id=4,state=online,binlog_pos=109,lag=0
rocksdb5_master:ip=127.0.0.1,port=1111,src_store_id=5,state=online,binlog_pos=206,lag=0
rocksdb6_master:ip=127.0.0.1,port=1111,src_store_id=6,state=online,binlog_pos=182,lag=0
rocksdb7_master:ip=127.0.0.1,port=1111,src_store_id=7,state=online,binlog_pos=70,lag=0
rocksdb8_master:ip=127.0.0.1,port=1111,src_store_id=8,state=online,binlog_pos=101,lag=0
rocksdb9_master:ip=127.0.0.1,port=1111,src_store_id=9,state=online,binlog_pos=46,lag=0
如果即是master也是slave
# Replication
role:slave
master_host:127.0.0.1
master_port:1111
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:128040
slave_priority:100
slave_read_only:1
connected_slaves:1
slave0:ip=127.0.0.1,port=1113,state=send_bulk,offset=103775,lag=14672264
master_repl_offset:128040
rocksdb0_master:ip=127.0.0.1,port=1111,src_store_id=0,state=online,binlog_pos=11720,lag=1
rocksdb1_master:ip=127.0.0.1,port=1111,src_store_id=1,state=online,binlog_pos=9128,lag=1
rocksdb2_master:ip=127.0.0.1,port=1111,src_store_id=2,state=online,binlog_pos=10909,lag=1
rocksdb3_master:ip=127.0.0.1,port=1111,src_store_id=3,state=online,binlog_pos=9679,lag=1
rocksdb4_master:ip=127.0.0.1,port=1111,src_store_id=4,state=online,binlog_pos=11342,lag=1
rocksdb5_master:ip=127.0.0.1,port=1111,src_store_id=5,state=online,binlog_pos=23696,lag=0
rocksdb6_master:ip=127.0.0.1,port=1111,src_store_id=6,state=online,binlog_pos=10444,lag=1
rocksdb7_master:ip=127.0.0.1,port=1111,src_store_id=7,state=online,binlog_pos=20711,lag=0
rocksdb8_master:ip=127.0.0.1,port=1111,src_store_id=8,state=online,binlog_pos=9650,lag=1
rocksdb9_master:ip=127.0.0.1,port=1111,src_store_id=9,state=online,binlog_pos=10761,lag=1
rocksdb0_slave0:,ip=127.0.0.1,port=1113,dest_store_id=0,state=send_bulk_success,binlog_pos=11614,duration=1,binlog_lag=106
rocksdb1_slave0:,ip=127.0.0.1,port=1113,dest_store_id=1,state=send_bulk_success,binlog_pos=9035,duration=1,binlog_lag=93
rocksdb2_slave0:,ip=127.0.0.1,port=1113,dest_store_id=2,state=send_bulk_success,binlog_pos=10812,duration=1,binlog_lag=97
rocksdb3_slave0:,ip=127.0.0.1,port=1113,dest_store_id=3,state=send_bulk_success,binlog_pos=9567,duration=1,binlog_lag=112
rocksdb4_slave0:,ip=127.0.0.1,port=1113,dest_store_id=4,state=send_bulk_success,binlog_pos=11225,duration=1,binlog_lag=117
rocksdb5_slave0:,ip=127.0.0.1,port=1113,dest_store_id=5,state=send_bulk_success,binlog_pos=11152,duration=1,binlog_lag=12544
rocksdb6_slave0:,ip=127.0.0.1,port=1113,dest_store_id=6,state=send_bulk_success,binlog_pos=10351,duration=1,binlog_lag=93
rocksdb7_slave0:,ip=127.0.0.1,port=1113,dest_store_id=7,state=send_bulk_success,binlog_pos=9626,duration=1,binlog_lag=11085
rocksdb8_slave0:,ip=127.0.0.1,port=1113,dest_store_id=8,state=send_bulk_success,binlog_pos=9637,duration=1,binlog_lag=13
rocksdb9_slave0:,ip=127.0.0.1,port=1113,dest_store_id=9,state=send_bulk_success,binlog_pos=10756,duration=1,binlog_lag=5
binloginfo
显示每个kvstore的最大和最小binlog信息
127.0.0.1:8903> info binloginfo
# BinlogInfo
rocksdb5:min=4,minTs=1584412138634,minRevision=-1,max=8,maxTs=1584426396594,maxRevision=-1,highestVisble=8
rocksdb8:min=1,minTs=1584412138633,minRevision=-1,max=2,maxTs=1584686263355,maxRevision=-1,highestVisble=2
rocksdb9:min=1,minTs=1586864927508,minRevision=-1,max=1,maxTs=1586864927508,maxRevision=-1,highestVisble=1
命令返回
Examples
如上
其他
部分统计信息,例如info stat
、info commandstats
等可以支持重置,重新开启统计,详见命令config resetstat
。