Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令
Redis運(yùn)維和開發(fā)學(xué)習(xí)筆記(6) 監(jiān)控Redis工作狀態(tài)-info命令
文章目錄
- Redis運(yùn)維和開發(fā)學(xué)習(xí)筆記(6) 監(jiān)控Redis工作狀態(tài)-info命令
- info server
- info client
- info memory
- info persistence
- info stats
- info commandstats
- info cpu
- info cluster
- info keyspace
info server
Redis服務(wù)器相關(guān)的通用信息
127.0.0.1:6379> info server # Server redis_version:3.2.12 # Redis服務(wù)器的版本號(hào)。 redis_git_sha1:00000000 # Git SHA1。 redis_git_dirty:0 # GIT臟數(shù)據(jù)標(biāo)志 redis_build_id:7897e7d0e13773f redis_mode:standalone os:Linux 3.10.0-957.21.3.el7.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll # Redis使用的事件循環(huán)機(jī)制。 gcc_version:4.8.5 process_id:29581 # Redis服務(wù)器進(jìn)程的進(jìn)程號(hào)(PID)。 run_id:3739b19f38ecf64bac40b2b7704d799573f2d6c6 # 用于標(biāo)識(shí)Redis服務(wù)器的隨機(jī)值(Redis的哨兵模式和集群模式會(huì)使用這個(gè)隨機(jī)值)。 tcp_port:6379 # TCP/IP的監(jiān)聽端口。 uptime_in_seconds:2226082 # Redis服務(wù)器啟動(dòng)至今的時(shí)間,以秒為單位。 uptime_in_days:25 # Redis服務(wù)器啟動(dòng)至今的時(shí)間,以天為單位。 hz:10 lru_clock:5319706 # 每分鐘都會(huì)遞增的時(shí)鐘,用于LRU(Least Recently Used,最近最少使用)緩存管理。 executable:/root/redis-server # Redis服務(wù)器的可執(zhí)行文件的路徑。 config_file:/etc/redis.conf # Redis服務(wù)器的配置文件的路徑。info client
127.0.0.1:6379> info clients # Clients connected_clients:1 # 客戶端連接的數(shù)量(來自從機(jī)的連接除外) client_longest_output_list:0 # 當(dāng)前的客戶端連接之中,最長(zhǎng)的輸出列表 client_biggest_input_buf:0 # 當(dāng)前的客戶端連接之中,最大的輸入緩沖區(qū) blocked_clients:0 # 由于阻塞調(diào)用(BLPOP、BRPOP、BRPOPLPUSH)而等待的客戶端的數(shù)量。info memory
127.0.0.1:6379> info memory # Memory used_memory:812544 # Redis使用它的內(nèi)存分配器(可以是標(biāo)準(zhǔn)的libc、jemalloc或tcmalloc分配器)分配的內(nèi)存總量,以字節(jié)為單位。 used_memory_human:793.50K # Redis使用它的內(nèi)存分配器分配的內(nèi)存總量,顯示為用戶易于閱讀的格式。 used_memory_rss:2146304 # 操作系統(tǒng)所看到的為Redis分配的內(nèi)存總量(也被稱為“駐留集大小(Resident Set Size)”)。這個(gè)內(nèi)存總量是由諸如top(1)和ps(1)之類的工具報(bào)告的。 used_memory_rss_human:2.05M # 操作系統(tǒng)所看到的為Redis分配的內(nèi)存總量,顯示為用戶易于閱讀的格式。 used_memory_peak:813552 # Redis消耗的內(nèi)存峰值,以字節(jié)為單位。 used_memory_peak_human:794.48K # Redis消耗的內(nèi)存峰值,顯示為用戶易于閱讀的格式。 total_system_memory:1927405568 # 系統(tǒng)內(nèi)存總量,以字節(jié)為單位 total_system_memory_human:1.80G # 系統(tǒng)內(nèi)存總量,顯示為用戶易于閱讀的格式 used_memory_lua:37888 # Lua腳本引擎使用的內(nèi)存總量,以字節(jié)為單位。 used_memory_lua_human:37.00K # Lua腳本引擎使用的內(nèi)存總量,顯示為用戶易于閱讀的格式。 maxmemory:0 # Redis能夠使用的最大內(nèi)存上限(0表示沒有限制),以字節(jié)為單位。 maxmemory_human:0B # Redis能夠使用的最大內(nèi)存上限,顯示為用戶易于閱讀的格式。 maxmemory_policy:noeviction # Redis使用的內(nèi)存回收策略,可以是noeviction、allkeys-lru、volatile-lru、allkeys-random、volatile-random或volatile-ttl。 mem_fragmentation_ratio:2.64 # used_memory_rss和used_memory之間的比率。 mem_allocator:jemalloc-3.6.0 # Redis使用的內(nèi)存分配器,在編譯時(shí)選擇指定。在理想情況下,used_memory_rss的值只應(yīng)當(dāng)比used_memory的值稍微高一點(diǎn)。當(dāng)常駐集內(nèi)存(rss)遠(yuǎn)大于已使用內(nèi)存(used)時(shí),這就意味著Redis服務(wù)器存在較多的內(nèi)存碎片(內(nèi)部的或外部的),這種情況可以通過檢查mem_fragmentation_ratio的值估計(jì)出來。當(dāng)已使用內(nèi)存(used)遠(yuǎn)大于常駐集內(nèi)存(rss)時(shí),這就意味著有一部分Redis使用的內(nèi)存被操作系統(tǒng)換出至磁盤了:可以預(yù)料到會(huì)產(chǎn)生明顯的延時(shí)。
因?yàn)?#xff0c;Redis無法控制如何將它分配的內(nèi)存映射至內(nèi)存頁面,當(dāng)內(nèi)存使用率飆升時(shí),經(jīng)常會(huì)導(dǎo)致較高的used_memory_rss值。
當(dāng)Redis釋放內(nèi)存時(shí),會(huì)將內(nèi)存歸還給分配器,然后分配器可能會(huì)(也可能不會(huì))將內(nèi)存歸還給操作系統(tǒng)。used_memory的值和操作系統(tǒng)報(bào)告的內(nèi)存消耗值可能會(huì)有一些差異。這可能是由于Redis正在使用和釋放內(nèi)存,但是釋放的內(nèi)存尚未歸還給操作系統(tǒng)而導(dǎo)致的。通常,可以通過used_memory_peak的值來檢查Redis是否存在這種問題。
info persistence
127.0.0.1:6379> info persistence # Persistence loading:表示Redis是否正在加載一個(gè)轉(zhuǎn)儲(chǔ)文件的標(biāo)志。 rdb_changes_since_last_save:從最近一次轉(zhuǎn)儲(chǔ)至今,RDB的修改次數(shù)。 rdb_bgsave_in_progress:表示Redis正在保存RDB的標(biāo)志。 rdb_last_save_time:最近一次成功保存RDB的時(shí)間戳,基于Epoch時(shí)間。 rdb_last_bgsave_status:最近一次RDB保存操作的狀態(tài)。 rdb_last_bgsave_time_sec:最近一次RDB保存操作消耗的時(shí)間,以秒為單位。 rdb_current_bgsave_time_sec:如果Redis正在執(zhí)行RDB保存操作,那么這個(gè)字段表示已經(jīng)消耗的時(shí)間,以秒為單位。 aof_enabled:表示Redis是否啟用AOF日志功能的標(biāo)志。 aof_rewrite_in_progress:表示Redis是否正在執(zhí)行一次AOF重寫操作的標(biāo)志。 aof_rewrite_scheduled:表示一旦Redis正在執(zhí)行的RDB保存操作完成之后,是否就會(huì)調(diào)度執(zhí)行AOF重寫操作的標(biāo)志。 aof_last_rewrite_time_sec:最近一次AOF重寫操作消耗的時(shí)間,以秒為單位。 aof_current_rewrite_time_sec:如果Redis正在執(zhí)行AOF重寫操作,那么這個(gè)字段表示已經(jīng)消耗的時(shí)間,以秒為單位。 aof_last_bgrewrite_status:ok:最近一次AOF重寫操作的狀態(tài)。 aof_last_write_status:ok- 如果啟用了AOF功能,那么persistence分段將會(huì)新增額外的字段,如下所示:
- 如果Redis正在執(zhí)行加載操作,那么persistence分段將會(huì)新增額外的字段,如下所示:
info stats
127.0.0.1:6379> info stats # Stats total_connections_received:Redis服務(wù)器接受的連接總數(shù)。 total_commands_processed:Redis服務(wù)器處理的命令總數(shù)。 instantaneous_ops_per_sec:每秒鐘處理的命令數(shù)量。 total_net_input_bytes:通過網(wǎng)絡(luò)接收的數(shù)據(jù)總量,以字節(jié)為單位。 total_net_output_bytes:通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)總量,以字節(jié)為單位。 instantaneous_input_kbps:每秒鐘接收數(shù)據(jù)的速率,以kbps為單位。 instantaneous_output_kbps:每秒鐘發(fā)送數(shù)據(jù)的速率,以kbps為單位。 rejected_connections:Redis服務(wù)器由于maxclients限制而拒絕的連接數(shù)量。 sync_full:Redis主機(jī)和從機(jī)進(jìn)行完全同步的次數(shù)。 sync_partial_ok:Redis服務(wù)器接受PSYNC請(qǐng)求的次數(shù)。 sync_partial_err:Redis服務(wù)器拒絕PSYNC請(qǐng)求的次數(shù)。 expired_keys:鍵過期事件的總數(shù)。 evicted_keys:由于maxmemory限制,而被回收內(nèi)存的鍵的總數(shù)。 keyspace_hits:在主字典中成功查找到鍵的次數(shù)。 keyspace_misses:在主字典中未能成功查找到鍵的次數(shù)。 pubsub_channels:客戶端訂閱的發(fā)布/訂閱頻道的總數(shù)量。 pubsub_patterns:客戶端訂閱的發(fā)布/訂閱模式的總數(shù)量。 latest_fork_usec:最近一次fork操作消耗的時(shí)間,以微秒為單位。 migrate_cached_sockets:遷移已緩存的套接字的數(shù)量。info commandstats
127.0.0.1:6379> info commandstats # Commandstats cmdstat_get:calls=5,usec=30,usec_per_call=6.00 cmdstat_set:calls=11,usec=140,usec_per_call=12.73 cmdstat_del:calls=1,usec=5,usec_per_call=5.00 cmdstat_exists:calls=3,usec=10,usec_per_call=3.33 cmdstat_sadd:calls=2,usec=47,usec_per_call=23.50 cmdstat_mset:calls=1,usec=23,usec_per_call=23.00 cmdstat_expire:calls=1,usec=8,usec_per_call=8.00 cmdstat_keys:calls=4,usec=79,usec_per_call=19.75 cmdstat_dbsize:calls=1,usec=2,usec_per_call=2.00 cmdstat_type:calls=2,usec=11,usec_per_call=5.50 cmdstat_info:calls=104,usec=6071,usec_per_call=58.38 cmdstat_ttl:calls=4,usec=20,usec_per_call=5.00 cmdstat_client:calls=5,usec=78,usec_per_call=15.60 cmdstat_command:calls=7,usec=4174,usec_per_call=596.29info cpu
127.0.0.1:6379> info cpu # CPU used_cpu_sys:1300.85 used_cpu_user:780.14 used_cpu_sys_children:0.01 used_cpu_user_children:0.00info cluster
127.0.0.1:6379> info cluster # Cluster cluster_enabled:0 # 表示是否啟用Redis集群功能的標(biāo)志。info keyspace
127.0.0.1:6379> info keyspace # Keyspace db0:keys=6,expires=0,avg_ttl=0 # 一個(gè)XXX表示數(shù)據(jù)庫的編號(hào),第二個(gè)XXX表示鍵的數(shù)量,第三個(gè)XXX表示具有過期時(shí)間的鍵的數(shù)量,第四個(gè)XXX表示鍵的平均生存時(shí)間。總結(jié)
以上是生活随笔為你收集整理的Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暗区突围人物发白怎么办
- 下一篇: Redis运维和开发学习笔记(7) 内存