Redis INFO 說明

背景

前面幾篇文章介紹完了Redis相關的一些說明,如今看看如何查看Redis的一些性能指標和統計信息,也能夠看官網說明,本文基於Redis 5.0.5。html

INFO [section]

INFO命令返回有關服務器的信息和統計信息,帶上參數ALL能夠返回全部部分,默認default,僅返回默認部分集若是未提供任何參數,則採用默認選項。git

> INFO ALL> INFO

後面的可選參數可用於選擇特定的信息展現:redis

server: 常規信息
clients: 客戶端鏈接部分
memory: 內存消耗相關信息
persistence: RDB和AOF相關信息
stats: 統計信息
replication: 主/從複製信息
cpu: CPU消耗統計
commandstats: Redis命令統計
cluster: 集羣部分
keyspace: 數據庫、key相關統計

 Redis info {all}  [session] 說明數據庫

redis> INFO ALL
# Server
redis_version:5.0.5       //Redis服務器的版本
redis_git_sha1:00000000   //Git SHA1
redis_git_dirty:0         //Git dirty flag
redis_build_id:cdff23e4497417f9  //構建ID
redis_mode:cluster        //Redis啓動模式:standalone、Sentinel、Cluster
os:Linux 4.4.0-143-generic x86_64  //redis宿主機操做系統
arch_bits:64              //架構:32位、64位
multiplexing_api:epoll    //事件循環機制
atomicvar_api:atomic-builtin   //Atomicvar API
gcc_version:5.4.0             //編譯 Redis 時所使用的 GCC 版本
process_id:41450          //進程PID
run_id:7c1db72b9f235c5e52780aeb8817fd272230f1bc  //標識Redis服務器的惟一隨機值,由Sentinel和Cluster使用
tcp_port:6379            //TCP、IP偵聽端口
uptime_in_seconds:129723    //自Redis服務器啓動以來的秒數
uptime_in_days:1            //自Redis服務器啓動以來的天數
hz:10                    //調度serverCron每秒運行次數
configured_hz:10         //
lru_clock:10612903       //以分鐘爲單位進行自增的時鐘,用於 LRU 管理
executable:/usr/local/redis5.0/bin/redis-server          //服務器可執行文件的路徑
config_file:/usr/local/redis5.0/6379/redis6379.conf      //啓動 redis 配置文件

# Clients
connected_clients:1                   //已鏈接客戶端的數量(不包括經過從服務器鏈接的客戶端)
client_recent_max_input_buffer:2      //當前鏈接的客戶端當中,最大輸入緩存
client_recent_max_output_buffer:0     //當前鏈接的客戶端當中,最長的輸出列表
blocked_clients:0                     //正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客戶端的數量

# Memory
used_memory:2660408                 //由 redis 分配器(標準libc,jemalloc或其餘分配器,例如tcmalloc)分配的內存總量,以字節(byte)爲單位
used_memory_human:2.54M             //以可讀的格式返回 redis 分配的內存總量
used_memory_rss:9154560             //從操做系統的角度,返回 Redis 已分配的內存總量(俗稱常駐集大小)。這個值和 top、ps 等命令的輸出一致。
used_memory_rss_human:8.73M         //以可讀的格式,操做系統角度,返回 redis 分配的內存總量
used_memory_peak:204081928          //redis 的內存消耗峯值(以字節爲單位)
used_memory_peak_human:194.63M      //以可讀的格式,返回 Redis 的內存消耗峯值
used_memory_peak_perc:1.30%         //used_memory_peak在used_memory中所佔的百分比
used_memory_overhead:2565048        //分配用於管理其內部數據結構的全部開銷的總字節數
used_memory_startup:1449744         //啓動時消耗的初始內存量(以字節爲單位)
used_memory_dataset:95360           //數據集的大小(以字節爲單位,used_memory - used_memory_overhead)
used_memory_dataset_perc:7.88%      //used_memory_dataset在淨內存(used_memory-used_memory_startup)使用量中所佔的百分比
allocator_allocated:2770640         //分配器分配的內存
allocator_active:3371008            //分配器活躍的內存
allocator_resident:11554816         //分配器常駐的內存
total_system_memory:1021468672      //主機擁有的內存總量
total_system_memory_human:974.15M   //以可讀的格式返回主機擁有的內存總量
used_memory_lua:37888               //Lua引擎使用的字節數
used_memory_lua_human:37.00K        //以可讀的格式返回Lua引擎使用內存
used_memory_scripts:0         
used_memory_scripts_human:0B
number_of_cached_scripts:0
maxmemory:0                         //配置設置的最大可以使用內存值,默認0,不限制
maxmemory_human:0B                  //以可讀的格式返回最大可以使用內存值
maxmemory_policy:noeviction         //內存容量超過maxmemory後的處理策略,noeviction當內存使用達到閾值的時候,全部引發申請內存的命令會報錯
allocator_frag_ratio:1.22           //分配器的碎片率
allocator_frag_bytes:600368         //分配器的碎片大小(以字節爲單位)
allocator_rss_ratio:3.43            //分配器常駐內存比例
allocator_rss_bytes:8183808         //分配器的常駐內存大小(以字節爲單位)
rss_overhead_ratio:0.79             //常駐內存開銷比例
rss_overhead_bytes:-2400256         //常駐內存開銷大小(以字節爲單位)
mem_fragmentation_ratio:3.50         //內存碎片率,used_memory_rss 和 used_memory 之間的比率
mem_fragmentation_bytes:6536432      //內存碎片的大小(以字節爲單位)
mem_not_counted_for_evict:0          //被驅逐的大小
mem_replication_backlog:1048576      //repl_backlog
mem_clients_slaves:16922             //clients_slaves
mem_clients_normal:49694             //clients_normal
mem_aof_buffer:0                     //aof時,佔用的緩衝
mem_allocator:jemalloc-5.1.0         //內存分配器(在編譯時選擇)
active_defrag_running:0              //碎片整理是否處於活動狀態
lazyfree_pending_objects:0           //等待釋放的對象數(因爲使用ASYNC選項調用UNLINK或FLUSHDB和FLUSHALL)

# Persistence
loading:0                           //記錄服務器是否正在載入持久化文件
rdb_changes_since_last_save:0       //最近一次成功建立持久化文件以後,通過了多少秒
rdb_bgsave_in_progress:0            //記錄了服務器是否正在建立 RDB 文件
rdb_last_save_time:1570890961       //最近一次成功建立 RDB 文件的 UNIX 時間戳
rdb_last_bgsave_status:ok           //記錄最近一次建立 RDB 文件的狀態,是成功仍是失敗
rdb_last_bgsave_time_sec:0          //記錄了最近一次建立 RDB 文件耗費的秒數
rdb_current_bgsave_time_sec:-1      //若是正在建立 RDB 文件,記錄當前的建立操做已經耗費的秒數
rdb_last_cow_size:249856            //上一次RBD保存操做期間寫時複製的大小(以字節爲單位)
aof_enabled:1                       //AOF是否開啓
aof_rewrite_in_progress:0           //記錄了是否正在建立 AOF 文件
aof_rewrite_scheduled:0             //記錄了 RDB 文件建立完畢以後,是否須要執行 AOF 重寫操做
aof_last_rewrite_time_sec:0         //最近一次建立 AOF 文件耗費的秒數
aof_current_rewrite_time_sec:-1     //若是正在建立 AOF 文件,那麼記錄當前的建立操做耗費的秒數
aof_last_bgrewrite_status:ok        //記錄了最近一次建立 AOF 文件的狀態,是成功仍是失敗
aof_last_write_status:ok            //AOF的最後寫入操做的狀態,是成功仍是失敗
aof_last_cow_size:307200            //上一次AOF保存操做期間寫時複製的大小(以字節爲單位)
aof_current_size:115                //AOF 文件當前的大小
aof_base_size:115                   //最近一次啓動或重寫時的AOF文件大小
aof_pending_rewrite:0               //記錄了是否有 AOF 重寫操做在等待 RDB 文件建立完畢以後執行
aof_buffer_length:0                 //AOF緩衝區的大小
aof_rewrite_buffer_length:0         //AOF 重寫緩衝區的大小
aof_pending_bio_fsync:0             //後臺 I/O 隊列裏面,等待執行的 fsync 數量
aof_delayed_fsync:0                 //被延遲的 fsync 調用數量,若是該值比較大,能夠開啓參數:no-appendfsync-on-rewrite=yes

若是正在進行加載操做,會有如下狀態:
loading_start_time:                //加載操做開始的時間戳
loading_total_bytes:               //加載文件總大小
loading_loaded_bytes:              //已加載的字節數
loading_loaded_perc:               //已加載的百分比
loading_eta_seconds:               //完成加載所需的秒數(以秒爲單位)

注意:
changes_since_last_save是指自上次調用SAVE或BGSAVE以來在數據集中產生某種更改的操做數。


# Stats
total_connections_received:11046    //服務器接受的鏈接總數
total_commands_processed:2086515    //服務器已執行的命令數量
instantaneous_ops_per_sec:0         //服務器每秒鐘執行的命令數量
total_net_input_bytes:116217212     //啓動以來,流入的字節總數
total_net_output_bytes:161658834    //啓動以來,流出的字節總數
instantaneous_input_kbps:0.02       //接收輸入的速率(每秒)
instantaneous_output_kbps:0.00      //輸出的速率(每秒)
rejected_connections:0              //因爲maxclients限制而被拒絕的鏈接數
sync_full:1                         //與slave full sync的次數      
sync_partial_ok:14                  //接受的部分從新同步(psync)請求的數量
sync_partial_err:1                  //被拒絕的部分從新同步(psync)請求的數量
expired_keys:0                      //key過時事件總數
expired_stale_perc:0.00             //過時的比率
expired_time_cap_reached_count:0    //過時計數
evicted_keys:0                      //因爲最大內存限制而被驅逐的key數量
keyspace_hits:1057312               //key命中次數
keyspace_misses:38734               //key未命中次數
pubsub_channels:0                   //發佈/訂閱頻道的數量
pubsub_patterns:0                   //發佈/訂閱的模式數量
latest_fork_usec:1460               //最近一次 fork() 操做耗費的毫秒數(以微秒爲單位)
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實例的個數
slave0:ip=192.168.163.132,port=6382,state=online,offset=64547142,lag=1 //鏈接的slave的信息
master_replid:1726c598c37f039c4b69db7a4281392a650eb88b                 //服務器的複製ID
master_replid2:0000000000000000000000000000000000000000                //第二服務器複製ID,用於故障轉移後的PSYNC,用於集羣等高可用以後主從節點的互換
master_repl_offset:64547142                                            //複製偏移量1
second_repl_offset:-1                                                  //第二服務器複製偏移量2
repl_backlog_active:1                                                  //複製緩衝區狀態
repl_backlog_size:1048576                                              //複製緩衝區的大小(以字節爲單位)
repl_backlog_first_byte_offset:63498567                                //複製緩衝區的偏移量,標識當前緩衝區可用範圍
repl_backlog_histlen:1048576                                           //複製緩衝區中數據的大小(以字節爲單位)

#若是是從節點,會有如下狀態:
master_host:192.168.163.132                                      //Master IP
master_port:6379                                                 //Master Port
master_link_status:up                                            //Master的鏈接狀態(up/down)
master_last_io_seconds_ago:8                                     //最近一次主從交互以後的秒數
master_sync_in_progress:0                                        //表示從服務器是否一直在與主服務器進行同步
slave_repl_offset:64547142                                       //複製偏移量
slave_priority:100                                               //從服務器的優先級
slave_read_only:1                                                //從服務是否只讀

#若是正在進行SYNC操做,會有如下狀態:
master_sync_left_bytes:                                          //同步完成前剩餘的字節數
master_sync_last_io_seconds_ago:                                 //自SYNC操做以來最後一次傳輸I/O通過的秒數

#若是主服務器和副本服務器之間的連接斷開,會有如下狀態:
master_link_down_since_seconds:                                  //主從鏈接斷開後通過的秒數
connected_slaves:                                                //已連從的數量

#若是服務器配置(的Redis 5)有min-slaves-to-write(或以min-replicas-to-write)指令,會有如下狀態:
min_slaves_good_slaves:                                          //當前認爲良好的副本數,對於每一個副本,添加如下行:
slaveXXX: id, IP address, port, state, offset, lag      


# CPU
used_cpu_sys:133.908000                                          //消耗的系統CPU
used_cpu_user:70.692000                                          //消耗的用戶CPU
used_cpu_sys_children:0.016000                                   //後臺進程佔用的系統CPU
used_cpu_user_children:0.044000                                  //後臺進程佔用的用戶CPU


# Commandstats   //提供基於命令類型的統計信息,包括調用次數,這些命令消耗的總CPU時間以及每一個命令執行消耗的平均CPU時間。
cmdstat_cluster:calls=33169,usec=3835426,usec_per_call=115.63
cmdstat_keys:calls=3,usec=7828,usec_per_call=2609.33
cmdstat_get:calls=1096046,usec=914358,usec_per_call=0.83
cmdstat_set:calls=872138,usec=984030,usec_per_call=1.13
cmdstat_monitor:calls=6,usec=4,usec_per_call=0.67
cmdstat_replconf:calls=74181,usec=103173,usec_per_call=1.3
cmdstat_client:calls=11,usec=2812,usec_per_call=255.64
cmdstat_flushdb:calls=2,usec=23058,usec_per_call=11529.00
cmdstat_dbsize:calls=22,usec=27,usec_per_call=1.23
cmdstat_auth:calls=10883,usec=19716,usec_per_call=1.81
cmdstat_info:calls=14,usec=6987,usec_per_call=499.07
cmdstat_config:calls=9,usec=5819,usec_per_call=646.56
cmdstat_psync:calls=15,usec=4288,usec_per_call=285.87
cmdstat_command:calls=16,usec=98434,usec_per_call=6152.12

# Cluster
cluster_enabled:1                              //是否開啓集羣模式

# Keyspace   //鍵空間部分提供有關每一個數據庫的統計信息。 統計信息是鍵的數量,以及帶有到期時間的鍵的數量。
db0:keys=2,expires=0,avg_ttl=0

總結:

經過本文的說明,能夠看到經過INFO命令能夠獲得不少信息,包括OPS、主從狀況、command、內存、CPU等等一些信息,也能夠經過INFO信息進行一些相關指標的監控,保障Redis更好的運行。api

參考文檔:

https://redis.io/commands/info緩存

相關文章
相關標籤/搜索