Redis info命令中各個參數的含義

Info命令簡介

在使用Redis的過程中,可能會遇到很多問題,需要我們去診斷、去觀察Redis的健康情況。Redis給我們提供了的 info 命令,可以讓我們近距離的接觸它,觀察它各方面的信息、運行狀況。下面讓我們看看 info 命令都給我們帶來了哪些信息。

命令格式:INFO [section]

Info 指令顯示的信息分爲 9 大塊,每塊都有很多參數。我們也可以通過給定可選的參數 section ,可以讓命令只返回某一部分的信息。這 9 塊分別是:

  • server 部分記錄了 Redis 服務器的信息
  • clients 部分記錄了已連接客戶端的信息
  • memory 部分記錄了服務器的內存信息
  • persistence 部分記錄了跟 RDB 持久化和 AOF 持久化有關的信息
  • stats 部分記錄了一般統計信息
  • replication 部分記錄了主/從複製的相關信息
  • cpu 部分記錄了 CPU 的計算量統計信息
  • cluster 部分記錄了和集羣有關的信息
  • keyspace 部分記錄了數據庫相關的統計信息

不同版本的 Redis 可能對返回的一些域進行了增加或刪減。
因此,一個健壯的客戶端程序在對 INFO [section] 命令的輸出進行分析時,應該能夠跳過不認識的域,並且妥善地處理丟失不見的域。

Server

參數名稱 參數含義
redis_version Redis 的服務器版本
redis_git_sha1 Redis 的服務器版本
redis_git_dirty Git dirty flag
redis_build_id
redis_mode 運行模式:單機(集羣)
os Redis 服務器的宿主操作系統
arch_bits 架構(32 或 64 位)
multiplexing_api Redis 所使用的事件處理機制,如epoll
gcc_version 編譯 Redis 時所使用的 GCC 版本
process_id 服務器進程的 PID
run_id Redis 服務器的隨機標識符(用於 Sentinel 和集羣)
tcp_port TCP/IP 監聽端口
uptime_in_seconds 自 Redis 服務器啓動以來,經過的秒數
uptime_in_days 自 Redis 服務器啓動以來,經過的天數
hz redis內部調度(進行關閉timeout的客戶端,刪除過期key等等)頻率,程序規定serverCron每秒運行10次。
lru_clock 以分鐘爲單位進行自增的時鐘,用於 LRU 管理
executable 啓動腳本路徑
config_file 啓動時指定的配置文件(redis.conf)路徑

Clients

參數名稱 參數含義
connected_clients 已連接客戶端的數量(不包括通過從屬服務器連接的客戶端)
client_longest_output_list 當前連接的客戶端當中,最長的輸出列表
client_longest_input_buf 當前連接的客戶端當中,最大輸入緩存
blocked_clients 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客戶端的數量

Memory

參數名稱 參數含義
used_memory 使用內存(B)
used_memory_human 人類可讀的格式的使用內存(MB)
used_memory_rss 操作系統角度,返回redis已分配的內存(即常駐內存),這個值和top、ps命令的輸出一致
used_memory_rss_human 如上
used_memory_peak 內存使用的峯值
used_memory_peak_human 如上
total_system_memory 整個系統內存
total_system_memory_human 如上
used_memory_lua Lua腳本存儲佔用的內存
used_memory_lua_human 如上
maxmemory Redis實例的最大內存配置
maxmemory_human 如上
maxmemory_policy 當達到maxmemory時的淘汰策略
mem_fragmentation_ratio used_memory_rss/used_memory的值。一般情況下,used_memory_rss略高於used_memory,當內存碎片較多時,則mem_fragmentation_ratio會較大,可以反映內存碎片是否很多
mem_allocator 內存分配器。可以是libc 、 jemalloc 或者 tcmalloc

在理想情況下, used_memory_rss 的值應該只比 used_memory 稍微高一點兒。
rss > used ,且兩者的值相差較大時,表示存在(內部或外部的)內存碎片。
內存碎片的比率可以通過 mem_fragmentation_ratio 的值看出。
used > rss 時,表示 Redis 的部分內存被操作系統換出到交換空間(swap)了,在這種情況下,操作可能會產生明顯的延遲,需要重點關注。即:mem_fragmentation_ratio小於1時

Persistence

參數名稱 參數含義
loading 服務器是否正在載入持久化文件
rdb_changes_since_last_save 離最近一次成功生成rdb文件,寫入命令的個數
rdb_bgsave_in_progress 服務器是否正在創建rdb文件
rdb_last_save_time 最近一次成功rdb文件的時間戳
rdb_last_bgsave_status 最近一次成功rdb文件的狀態
rdb_last_bgsave_time_sec 最近一次成功rdb文件的耗時
rdb_current_bgsave_time_sec 若當前正在創建rdb文件,指當前的創建操作已經耗費的時間
aof_enabled aof是否開啓
aof_rewrite_in_progress aof的rewrite操作是否在進行中
aof_rewrite_scheduled rewrite任務計劃,當客戶端發送bgrewriteaof指令,如果當前rewrite子進程正在執行,那麼將客戶端請求的bgrewriteaof變爲計劃任務,待aof子進程結束後執行rewrite
aof_last_rewrite_time_sec 最近一次aof rewrite耗費時長
aof_current_rewrite_time_sec 若當前正在執行aof rewrite,指當前的已經耗費的時間
aof_last_bgrewrite_status 最近一次aof bgrewrite的狀態
aof_last_write_status 最近一次aof寫入狀態
開啓 aof 後增加的一些info信息
aof_current_size aof文件當前大小
aof_base_size 服務器啓動時或者最近一次AOF重寫後,文件的大小
aof_pending_rewrite 同上面的aof_rewrite_scheduled
aof_buffer_length aof 緩衝區的大小
aof_rewrite_buffer_length aof 重寫緩衝區的大小
aof_pending_bio_fsync 後臺IO隊列中,等待fsync任務的個數
aof_delayed_fsync 被延遲的 fsync 調用數量

Stats

參數名稱 參數含義
total_connections_received 自啓動起連接過的總數。如果連接過多,說明短連接嚴重或連接池使用有問題,需調研代碼的連接設置
total_commands_processed 自啓動起運行命令的總數
instantaneous_ops_per_sec 每秒執行的命令數,相當於QPS
total_net_input_bytes 網絡入口流量字節數
total_net_output_bytes 網絡出口流量字節數
instantaneous_input_kbps 網絡入口kps
instantaneous_output_kbps 網絡出口kps
rejected_connections 拒絕的連接個數,由於maxclients限制,拒絕新連接的個數
sync_full 主從完全同步成功次數
sync_partial_ok 主從部分同步成功次數
sync_partial_err 主從部分同步失敗次數
expired_keys 自啓動起過期的key的總數
evicted_keys 使用內存大於maxmemory後,淘汰的key的總數
keyspace_hits 在main dictionary字典中成功查到的key個數
keyspace_misses 同上,未命中的key的個數
pubsub_channels 發佈/訂閱頻道數
pubsub_patterns 發佈/訂閱模式數
latest_fork_usec 上次的fork操作使用的時間(單位ms)
migrate_cached_sockets 是否已經緩存了到該地址的連接
slave_expires_tracked_keys 從實例到期key數量
active_defrag_hits 主動碎片整理命中次數
active_defrag_misses 主動碎片整理未命中次數
active_defrag_key_hits 主動碎片整理key命中次數
active_defrag_key_misses 主動碎片整理key未命中次數

Replication

參數名稱 參數含義
role 當前實例的角色master還是slave
connected_slaves: slave的數量
master_replid 主實例啓動隨機字符串
master_replid2 主實例啓動隨機字符串2
slave0 slave機器的信息、狀態
master_repl_offset 主從同步偏移量,此值如果和上面的offset相同說明主從一致沒延遲,與master_replid可被用來標識主實例複製流中的位置。
second_repl_offset 主從同步偏移量2,此值如果和上面的offset相同說明主從一致沒延遲
repl_backlog_active 複製緩衝區是否開啓
repl_backlog_size 複製緩衝區大小
repl_backlog_first_byte_offset 複製緩衝區裏偏移量的大小
repl_backlog_histlen 此值等於 master_repl_offset - repl_backlog_first_byte_offset,該值不會超過repl_backlog_size的大小

CPU

參數名稱 參數含義
used_cpu_sys Redis 服務器耗費的系統 CPU
used_cpu_user Redis 服務器耗費的用戶 CPU
used_cpu_sys_children 後臺進程耗費的系統 CPU
used_cpu_user_children 後臺進程耗費的用戶 CPU

Keyspace

參數名稱 參數含義
dbXXX:keys=XXX,expires=XXX 各個數據庫(0-15)的 key 的數量,帶有生存期的 key 的數量,平均存活時間

代碼示例

# Server
redis_version:3.2.3					 # Redis 的版本
redis_git_sha1:00000000				 # Redis 的版本
redis_git_dirty:0
redis_build_id:9e93d0c7997bcfef
redis_mode:standalone				 # 運行模式:單機(集羣)
os:Linux 2.6.32-431.el6.x86_64 x86_64 # 操作系統
arch_bits:64						  # 操作系統位數
multiplexing_api:epoll				 # redis所使用的事件處理機制
gcc_version:4.4.7					 # gcc版本號
process_id:1606						 # 當前 Redis 服務器進程id
run_id:17e79b1966f1f891eff203a8e496151ee8a3a7a7
tcp_port:7001						 # 端口號
uptime_in_seconds:4360189			 # 運行時間(秒)
uptime_in_days:50					 # 運行時間(天)
hz:10								 # redis內部調度(進行關閉timeout的客戶端,刪除過期key等等)頻率,程序規定serverCron每秒運行10次。
lru_clock:5070330					 # Redis的邏輯時鐘
executable:/usr/local/bin/redis-server			# 啓動腳本路徑
config_file:/opt/redis3/conf/redis_7001.conf	# 啓動指定的配置文件路徑

# Clients
connected_clients:660				 # 連接的客戶端數量
client_longest_output_list:0		 # 當前連接的客戶端當中,最長的輸出列表
client_biggest_input_buf:0			 # 當前連接的客戶端當中,最大輸入緩存
blocked_clients:0					 # 阻塞的客戶端數量

# Memory
used_memory:945408832				# 使用內存(B)
used_memory_human:901.61M			# 使用內存(MB)	
used_memory_rss:1148919808			# 系統給redis分配的內存(即常駐內存),這個值和top命令的輸出一致
used_memory_rss_human:1.07G
used_memory_peak:1162079480			# 內存使用的峯值
used_memory_peak_human:1.08G		
total_system_memory:6136483840		# 整個系統內存
total_system_memory_human:5.72G
used_memory_lua:122880				# Lua腳本存儲佔用的內存
used_memory_lua_human:120.00K		
maxmemory:2147483648				# Redis實例的最大內存配置
maxmemory_human:2.00G
maxmemory_policy:allkeys-lru		# 當達到maxmemory時的淘汰策略
mem_fragmentation_ratio:1.22		# used_memory_rss/used_memory的比例。一般情況下,used_memory_rss略高於used_memory,當內存碎片較多時,則mem_fragmentation_ratio會較大,可以反映內存碎片是否很多
mem_allocator:jemalloc-4.0.3		# 內存分配器

# Persistence	
loading:0								  # 服務器是否正在載入持久化文件
rdb_changes_since_last_save:82423954	  #	離最近一次成功生成rdb文件,寫入命令的個數                      
rdb_bgsave_in_progress:0		          # 服務器是否正在創建rdb文件           
rdb_last_save_time:1560991229		      # 最近一次成功rdb文件的時間戳               
rdb_last_bgsave_status:ok		          # 最近一次成功rdb文件的狀態           
rdb_last_bgsave_time_sec:-1		          # 最近一次成功rdb文件的耗時            
rdb_current_bgsave_time_sec:-1		      # 若當前正在創建rdb文件,指當前的創建操作已經耗費的時間                
aof_enabled:0		                      # aof是否開啓
aof_rewrite_in_progress:0		          # aof的rewrite操作是否在進行中            
aof_rewrite_scheduled:0		              # rewrite任務計劃,當客戶端發送bgrewriteaof指令,如果當前rewrite子進程正在執行,那麼將客戶端請求的bgrewriteaof變爲計劃任務,待aof子進程結束後執行rewrite        
aof_last_rewrite_time_sec:-1		      # 最近一次aof rewrite耗費時長              
aof_current_rewrite_time_sec:-1		      # 若當前正在執行aof rewrite,指當前的已經耗費的時間                
aof_last_bgrewrite_status:ok		      # 最近一次aof bgrewrite的狀態         
aof_last_write_status:ok		          # 最近一次aof寫入狀態  

# 開啓aof後增加的一些info信息
-----------------------------  
aof_current_size:0                 # aof當前大小
aof_base_size:0                    # aof上次啓動或rewrite的大小
aof_pending_rewrite:0              # 同上面的aof_rewrite_scheduled
aof_buffer_length:0                # aof buffer的大小
aof_rewrite_buffer_length:0        # aof rewrite buffer的大小
aof_pending_bio_fsync:0            # 後臺IO隊列中等待fsync任務的個數
aof_delayed_fsync:0                # 延遲的fsync計數器 
-----------------------------           

# Stats
total_connections_received:15815		# 自啓動起連接過的總數。如果連接過多,說明短連接嚴重或連接池使用有問題,需調研代碼的連接設置
total_commands_processed:502953838      # 自啓動起運行命令的總數
instantaneous_ops_per_sec:7             # 每秒執行的命令數,相當於QPS
total_net_input_bytes:532510481889      # 網絡入口流量字節數
total_net_output_bytes:1571444057940    # 網絡出口流量字節數
instantaneous_input_kbps:0.37           # 網絡入口kps
instantaneous_output_kbps:0.59          # 網絡出口kps
rejected_connections:0                  # 拒絕的連接個數,由於maxclients限制,拒絕新連接的個數
sync_full:1                             # 主從完全同步成功次數
sync_partial_ok:0                       # 主從部分同步成功次數
sync_partial_err:0                      # 主從部分同步失敗次數
expired_keys:4404930                    # 自啓動起過期的key的總數
evicted_keys:0                          # 使用內存大於maxmemory後,淘汰的key的總數
keyspace_hits:337104556                 # 在main dictionary字典中成功查到的key個數
keyspace_misses:22865229                # 同上,未命中的key的個數
pubsub_channels:1                       # 發佈/訂閱頻道數
pubsub_patterns:0                       # 發佈/訂閱模式數
latest_fork_usec:707                    # 上次的fork操作使用的時間(單位ms)
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
role:master							  # 當前實例的角色master還是slave
connected_slaves:1					  # slave的數量
master_replid:8f81c045a2cb00f16a7fc5c90a95e02127413bcc		# 主實例啓動隨機字符串
master_replid2:0000000000000000000000000000000000000000     # 主實例啓動隨機字符串2
slave0:ip=172.17.12.251,port=7002,state=online,offset=506247209326,lag=1	# slave機器的信息、狀態
master_repl_offset:506247209478		  # 主從同步偏移量,此值如果和上面的offset相同說明主從一致沒延遲,與master_replid可被用來標識主實例複製流中的位置。
second_repl_offset					  # 主從同步偏移量2,此值如果和上面的offset相同說明主從一致沒延遲
repl_backlog_active:1				  # 複製緩衝區是否開啓
repl_backlog_size:157286400			  # 複製緩衝區大小
repl_backlog_first_byte_offset:506089923079		# 複製緩衝區裏偏移量的大小
repl_backlog_histlen:157286400		  # 此值等於 master_repl_offset - repl_backlog_first_byte_offset,該值不會超過repl_backlog_size的大小

# CPU
used_cpu_sys:6834.06				  # 將所有redis主進程在覈心態所佔用的CPU時求和累計起來
used_cpu_user:8282.10				  # 將所有redis主進程在用戶態所佔用的CPU時求和累計起來
used_cpu_sys_children:0.11			  # 後臺進程的核心態cpu使用率
used_cpu_user_children:0.91           # 後臺進程的用戶態cpu使用率

# Cluster
cluster_enabled:0		# 實例是否啓用集羣模式

# Keyspace		# 各個數據庫(0-15)的 key 的數量,帶有生存期的 key 的數量,平均存活時間
db0:keys=267906,expires=109608,avg_ttl=3426011859194
db1:keys=182,expires=179,avg_ttl=503527626
db8:keys=6,expires=0,avg_ttl=0
db15:keys=2,expires=0,avg_ttl=0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章