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