info [section]

Available since 1.0.0.

命令说明

用于获取Tendis存储版的运行状态,语义保持跟redis的info几乎一致。

参数说明

sesciton可用于选择特定的信息部分:

  1. server:有关Redis服务器的常规信息
  2. clients:客户端连接部分
  3. memory:内存消耗相关信息
  4. persistenceRDBAOF相关信息
  5. stats:一般统计
  6. replication:主备复制信息
  7. cpuCPU消耗统计
  8. commandstatsRedis命令统计(default不显示)
  9. cluster:集群相关
  10. keyspace:与数据库相关的统计
  11. backup:备份相关信息
  12. datasetrocksdb总体数据量及内存等信息
  13. compactionreshape命令的执行信息
  14. levelstatsrocksdb每层数据汇总信息
  15. bgerror: rocksdb的后台错误,需要重点监控
  16. rocksdbstatsrocksdb内部statictics信息(default不显示)
  17. rocksdbperfstats:显示上一个指令在rocksdb的执行性能数据(default不显示)
  18. binloginfo: 显示每个kvstore的最大和最小binlog信息(default不显示)

它还可以采用以下值:

all:返回所有部分 default:仅返回默认的部分集

如果未提供任何参数,则采用该default选项。

除了以上可选值,Tendis存储版增加或修改了如下section

stats

  1. 127.0.0.1:8903> info stats
  2. # Stats
  3. total_connections_received:2
  4. total_connections_released:1
  5. total_commands_processed:7
  6. instantaneous_ops_per_sec:0
  7. total_commands_cost(ns):10808800 #命令总耗时 = 下面三参数之和(纳秒)
  8. total_commands_workpool_queue_cost(ns):536500 #命令在workpool的等待总时长
  9. total_commands_workpool_execute_cost(ns):9168500 #命令在workpool的总执行时长
  10. total_commands_send_packet_cost(ns):1103800 #命令回包的总时长
  11. total_commands_execute_cost(ns):8886300 #命令真正执行总时长,不包含workpool的调度时间
  12. avg_commands_cost(ns):1544114 #total_commands_cost/total_commands_processed
  13. avg_commands_workpool_queue_cost(ns):76642
  14. avg_commands_workpool_execute_cost(ns):1309785
  15. avg_commands_send_packet_cost(ns):157685
  16. avg_commands_execute_cost(ns):1269471
  17. commands_in_queue:0 # 正在任务队列中执行的command数
  18. commands_executed_in_workpool:14 # workpool调度次数,执行+回包
  19. total_stricky_packets:0 # 命令包粘包数量
  20. total_invalid_packets:0 # 非法命令包数量
  21. total_net_input_bytes:244
  22. total_net_output_bytes:16267
  23. instantaneous_input_kbps:0
  24. instantaneous_output_kbps:0
  25. rejected_connections:0
  26. sync_full:0
  27. sync_partial_ok:0
  28. sync_partial_err:0
  29. keyspace_hits:0
  30. keyspace_misses:0
  31. keyspace_wrong_versionep:0 # 非法revision访问数

backup

获得备份相关信息

  1. 127.0.0.1:8903> info backup
  2. # Backup
  3. backup-count:0
  4. last-backup-time:0

dataset

获得所有rocksdb的部分统计信息之和

  1. 127.0.0.1:8903> info dataset
  2. # Dataset
  3. rocksdb.kvstore-count:10 # 一共有10个kvstore
  4. rocksdb.total-sst-files-size:6862
  5. rocksdb.live-sst-files-size:6862
  6. rocksdb.estimate-live-data-size:6862
  7. rocksdb.estimate-num-keys:14
  8. rocksdb.total-memory:67117582 # 下面三个值之和
  9. rocksdb.cur-size-all-mem-tables:8000 # 所有memtable的总内存大小
  10. rocksdb.estimate-table-readers-mem:718 # 索引和过滤块使用的内存
  11. rocksdb.blockcache:67108864 # blockcache的大小
  12. rocksdb.mem-table-flush-pending:0
  13. rocksdb.estimate-pending-compaction-bytes:0
  14. rocksdb.compaction-pending:0
  15. rocksdb.total-memory:67117582

compaction

用于显示手动执行reshape命令,内部执行Manual Compaction的执行状态

  1. 127.0.0.1:8903> info compaction
  2. # Compaction
  3. current-compaction-status:stopped #是否正在执行reshape命令
  4. time-since-lastest-compaction:18 #距离上一次执行reshape的时间(秒)
  5. current-compaction-dbid: #正在执行的kvstore id
  6. 127.0.0.1:8903> reshape
  7. 127.0.0.1:8903> info compaction
  8. # Compaction
  9. current-compaction-status:running
  10. time-since-lastest-compaction:6
  11. current-compaction-dbid:1

levelstats

用于显示rocksdb每层的占用字节数,记录数,删除记录数及文件数。如果该level没有任何数据,将不显示。

  1. 127.0.0.1:8903> info levelstats
  2. rocksdb5.level-6:bytes=1802,num_entries=7,num_deletions=0,num_files=1
  3. 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

这部分统计信息包括

  1. 每个rocksdb的statistics信息
  2. 所有rocksdb的汇总的信息
  1. 127.0.0.1:8903> info rocksdbstats
  2. rocksdb0.block.cache.add COUNT : 0 # 0号rocksdb的属性
  3. ...
  4. rocksdb1.block.cache.add COUNT : 0
  5. ...
  6. rocksdb2.block.cache.add COUNT : 0
  7. ...
  8. rocksdb3.block.cache.add COUNT : 0
  9. ...
  10. rocksdb4.block.cache.add COUNT : 0
  11. ...
  12. rocksdb5.block.cache.add COUNT : 2
  13. ...
  14. rocksdb6.block.cache.add COUNT : 0
  15. ...
  16. rocksdb7.block.cache.add COUNT : 0
  17. ...
  18. rocksdb8.block.cache.add COUNT : 1
  19. ...
  20. rocksdb9.block.cache.add COUNT : 0
  21. ...
  22. rocksdb9.db.get.micros P50 : 0.000000 P95 : 0.000000 P99 : 0.000000 P100 : 0.000000 COUNT : 0 SUM : 0
  23. rocksdb9.db.write.micros P50 : 88.811594 P95 : 210.800000 P99 : 422.000000 P100 : 567.000000 COUNT : 158 SUM : 16270
  24. ...
  25. rocksdb.block.cache.add COUNT : 3 # 所有rocksdb的属性累加值
  26. rocksdb.block.cache.add.failures COUNT : 0
  27. rocksdb.block.cache.bytes.read COUNT : 4269228

由于rocksdbstats默认输出信息比较多,所以默认info并不会输出,需要执行info all或者info rocksdbstats

rocksdbperfstats

如果想分析某个指令的性能数据,可以执行info rocksbperfstats,并且确保在执行指令之前执行config set session perf_level指令。

  1. 127.0.0.1:8903> config set session perf_level enable_count # 支持4个不同的level
  2. OK
  3. 127.0.0.1:8903> keys *
  4. 1) "a"
  5. 2) "zz{a}"
  6. 3) "ss"
  7. 4) "abc"
  8. (8.70s)
  9. 127.0.0.1:8903> info rocksdbperfstats # 显示keys指令的perf context
  10. # RocksdbPerfstats
  11. user_key_comparison_count:31
  12. block_cache_hit_count:3
  13. block_read_count:0
  14. block_read_byte:0
  15. block_read_time:0
  16. block_cache_index_hit_count:0
  17. index_block_read_count:0
  18. block_cache_filter_hit_count:0
  19. filter_block_read_count:0
  20. compression_dict_block_read_count:0
  21. block_checksum_time:0
  22. block_decompress_time:0
  23. get_read_bytes:0
  24. multiget_read_bytes:0
  25. iter_read_bytes:5336
  26. internal_key_skipped_count:16
  27. internal_delete_skipped_count:0
  28. internal_recent_skipped_count:0
  29. internal_merge_count:0
  30. write_wal_time:0
  31. get_snapshot_time:0
  32. get_from_memtable_time:0
  33. get_from_memtable_count:0
  34. get_post_process_time:0
  35. get_from_output_files_time:0
  36. seek_on_memtable_time:0
  37. seek_on_memtable_count:20
  38. next_on_memtable_count:0
  39. prev_on_memtable_count:0
  40. seek_child_seek_time:0
  41. seek_child_seek_count:10
  42. seek_min_heap_time:0
  43. seek_internal_seek_time:0
  44. find_next_user_entry_time:0
  45. write_pre_and_post_process_time:0
  46. write_memtable_time:0
  47. write_thread_wait_nanos:0
  48. write_scheduling_flushes_compactions_time:0
  49. db_mutex_lock_nanos:0
  50. db_condition_wait_nanos:0
  51. merge_operator_time_nanos:0
  52. write_delay_time:0
  53. read_index_block_nanos:0
  54. read_filter_block_nanos:0
  55. new_table_block_iter_nanos:0
  56. new_table_iterator_nanos:0
  57. block_seek_nanos:0
  58. find_table_nanos:0
  59. bloom_memtable_hit_count:0
  60. bloom_memtable_miss_count:0
  61. bloom_sst_hit_count:0
  62. bloom_sst_miss_count:0
  63. key_lock_wait_time:0
  64. key_lock_wait_count:0
  65. env_new_sequential_file_nanos:0
  66. env_new_random_access_file_nanos:0
  67. env_new_writable_file_nanos:0
  68. env_reuse_writable_file_nanos:0
  69. env_new_random_rw_file_nanos:0
  70. env_new_directory_nanos:0
  71. env_file_exists_nanos:0
  72. env_get_children_nanos:0
  73. env_get_children_file_attributes_nanos:0
  74. env_delete_file_nanos:0
  75. env_create_dir_nanos:0
  76. env_create_dir_if_missing_nanos:0
  77. env_delete_dir_nanos:0
  78. env_get_file_size_nanos:0
  79. env_get_file_modification_time_nanos:0
  80. env_rename_file_nanos:0
  81. env_link_file_nanos:0
  82. env_lock_file_nanos:0
  83. env_unlock_file_nanos:0
  84. env_new_logger_nanos:0
  85. get_cpu_nanos:0
  86. thread_pool_id:3
  87. bytes_read:0
  88. bytes_written:0
  89. open_nanos:0
  90. allocate_nanos:0
  91. write_nanos:0
  92. read_nanos:0
  93. range_sync_nanos:0
  94. fsync_nanos:0
  95. prepare_write_nanos:0
  96. logger_nanos:0

rocksdbbgerror

用于获取rocksdb是否出现一些后台错误。一旦出现后台错误,例如磁盘满,整个rocksdb会处于read only状态。如果想解决异常状态,例如释放一些空间,需要执行tendisadmin recovery命令来修复异常状态。详细可查看Background Error Handling

  1. 127.0.0.1:8903> set a b
  2. (error) ERR:3,msg:IO error: No space left on deviceWhile appending to file: ./db/5/000084.sst: No space left on device
  3. 127.0.0.1:8903> info rocksdbBgError
  4. # RocksdbBgError
  5. 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
  6. 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
  7. 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
  8. 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
  9. 127.0.0.1:8903> tendisadmin recovery
  10. OK
  11. 127.0.0.1:8903> set a b
  12. OK

replication

显示复制相关信息

如果是一个master,有两个slave

  1. # Replication
  2. role:master
  3. connected_slaves:2
  4. slave0:ip=127.0.0.1,port=1112,state=online,offset=1171,lag=0
  5. slave1:ip=127.0.0.1,port=2111,state=online,offset=1171,lag=1 # state取值范围:"none","connecting"建立连接中,"send_bulk"全量发送中,"online"增量发送日志,"error"
  6. master_repl_offset:1171 # 所有rocksdb的最大binlogid相加
  7. 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
  8. rocksdb0_slave1:ip=127.0.0.1,port=2111,dest_store_id=0,state=online,binlog_pos=208,lag=0,binlog_lag=0
  9. rocksdb1_slave0:ip=127.0.0.1,port=1112,dest_store_id=1,state=online,binlog_pos=57,lag=0,binlog_lag=0
  10. rocksdb1_slave1:ip=127.0.0.1,port=2111,dest_store_id=1,state=online,binlog_pos=57,lag=0,binlog_lag=0
  11. rocksdb2_slave0:ip=127.0.0.1,port=1112,dest_store_id=2,state=online,binlog_pos=125,lag=0,binlog_lag=0
  12. rocksdb2_slave1:ip=127.0.0.1,port=2111,dest_store_id=2,state=online,binlog_pos=125,lag=0,binlog_lag=0
  13. rocksdb3_slave0:ip=127.0.0.1,port=1112,dest_store_id=3,state=online,binlog_pos=67,lag=0,binlog_lag=0
  14. rocksdb3_slave1:ip=127.0.0.1,port=2111,dest_store_id=3,state=online,binlog_pos=67,lag=0,binlog_lag=0
  15. rocksdb4_slave0:ip=127.0.0.1,port=1112,dest_store_id=4,state=online,binlog_pos=109,lag=0,binlog_lag=0
  16. 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
  17. rocksdb5_slave0:ip=127.0.0.1,port=1112,dest_store_id=5,state=online,binlog_pos=206,lag=0,binlog_lag=0
  18. 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
  19. rocksdb6_slave0:ip=127.0.0.1,port=1112,dest_store_id=6,state=online,binlog_pos=182,lag=0,binlog_lag=0
  20. 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
  21. rocksdb7_slave0:ip=127.0.0.1,port=1112,dest_store_id=7,state=online,binlog_pos=70,lag=0,binlog_lag=0
  22. 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
  23. rocksdb8_slave0:ip=127.0.0.1,port=1112,dest_store_id=8,state=online,binlog_pos=101,lag=0,binlog_lag=0
  24. 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
  25. rocksdb9_slave0:ip=127.0.0.1,port=1112,dest_store_id=9,state=online,binlog_pos=46,lag=0,binlog_lag=0
  26. 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

  1. # Replication
  2. role:slave
  3. master_host:127.0.0.1
  4. master_port:1111
  5. master_link_status:up # 取值: up, down
  6. master_last_io_seconds_ago:0
  7. master_sync_in_progress:0
  8. slave_repl_offset:1171 # slave所有binlogid相加
  9. slave_priority:100
  10. slave_read_only:1
  11. connected_slaves:0
  12. master_repl_offset:1171
  13. rocksdb0_master:ip=127.0.0.1,port=1111,src_store_id=0,state=online,binlog_pos=208,lag=0
  14. rocksdb1_master:ip=127.0.0.1,port=1111,src_store_id=1,state=online,binlog_pos=57,lag=0
  15. rocksdb2_master:ip=127.0.0.1,port=1111,src_store_id=2,state=online,binlog_pos=125,lag=0
  16. rocksdb3_master:ip=127.0.0.1,port=1111,src_store_id=3,state=online,binlog_pos=67,lag=0
  17. rocksdb4_master:ip=127.0.0.1,port=1111,src_store_id=4,state=online,binlog_pos=109,lag=0
  18. rocksdb5_master:ip=127.0.0.1,port=1111,src_store_id=5,state=online,binlog_pos=206,lag=0
  19. rocksdb6_master:ip=127.0.0.1,port=1111,src_store_id=6,state=online,binlog_pos=182,lag=0
  20. rocksdb7_master:ip=127.0.0.1,port=1111,src_store_id=7,state=online,binlog_pos=70,lag=0
  21. rocksdb8_master:ip=127.0.0.1,port=1111,src_store_id=8,state=online,binlog_pos=101,lag=0
  22. rocksdb9_master:ip=127.0.0.1,port=1111,src_store_id=9,state=online,binlog_pos=46,lag=0

如果即是master也是slave

  1. # Replication
  2. role:slave
  3. master_host:127.0.0.1
  4. master_port:1111
  5. master_link_status:up
  6. master_last_io_seconds_ago:1
  7. master_sync_in_progress:0
  8. slave_repl_offset:128040
  9. slave_priority:100
  10. slave_read_only:1
  11. connected_slaves:1
  12. slave0:ip=127.0.0.1,port=1113,state=send_bulk,offset=103775,lag=14672264
  13. master_repl_offset:128040
  14. rocksdb0_master:ip=127.0.0.1,port=1111,src_store_id=0,state=online,binlog_pos=11720,lag=1
  15. rocksdb1_master:ip=127.0.0.1,port=1111,src_store_id=1,state=online,binlog_pos=9128,lag=1
  16. rocksdb2_master:ip=127.0.0.1,port=1111,src_store_id=2,state=online,binlog_pos=10909,lag=1
  17. rocksdb3_master:ip=127.0.0.1,port=1111,src_store_id=3,state=online,binlog_pos=9679,lag=1
  18. rocksdb4_master:ip=127.0.0.1,port=1111,src_store_id=4,state=online,binlog_pos=11342,lag=1
  19. rocksdb5_master:ip=127.0.0.1,port=1111,src_store_id=5,state=online,binlog_pos=23696,lag=0
  20. rocksdb6_master:ip=127.0.0.1,port=1111,src_store_id=6,state=online,binlog_pos=10444,lag=1
  21. rocksdb7_master:ip=127.0.0.1,port=1111,src_store_id=7,state=online,binlog_pos=20711,lag=0
  22. rocksdb8_master:ip=127.0.0.1,port=1111,src_store_id=8,state=online,binlog_pos=9650,lag=1
  23. rocksdb9_master:ip=127.0.0.1,port=1111,src_store_id=9,state=online,binlog_pos=10761,lag=1
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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信息

  1. 127.0.0.1:8903> info binloginfo
  2. # BinlogInfo
  3. rocksdb5:min=4,minTs=1584412138634,minRevision=-1,max=8,maxTs=1584426396594,maxRevision=-1,highestVisble=8
  4. rocksdb8:min=1,minTs=1584412138633,minRevision=-1,max=2,maxTs=1584686263355,maxRevision=-1,highestVisble=2
  5. rocksdb9:min=1,minTs=1586864927508,minRevision=-1,max=1,maxTs=1586864927508,maxRevision=-1,highestVisble=1

命令返回

Bulk string reply

Examples

如上

其他

部分统计信息,例如info statinfo commandstats等可以支持重置,重新开启统计,详见命令config resetstat