天天看點

Redis資訊和狀态

server 部分記錄了 Redis 伺服器的資訊,它包含以下域:

redis_version : Redis 伺服器版本

redis_git_sha1 : Git SHA1

redis_git_dirty : Git dirty flag

os : Redis 伺服器的宿主作業系統

arch_bits : 架構(32 或 64 位)

multiplexing_api : Redis 所使用的事件處理機制

gcc_version : 編譯 Redis 時所使用的 GCC 版本

process_id : 伺服器程序的 PID

run_id : Redis 伺服器的随機辨別符(用于 Sentinel 和叢集)

tcp_port : TCP/IP 監聽端口

uptime_in_seconds : 自 Redis 伺服器啟動以來,經過的秒數

uptime_in_days : 自 Redis 伺服器啟動以來,經過的天數

lru_clock : 以分鐘為機關進行自增的時鐘,用于 LRU 管理

clients 部分記錄了已連接配接用戶端的資訊,它包含以下域:

connected_clients : 已連接配接用戶端的數量(不包括通過從屬伺服器連接配接的用戶端)

client_longest_output_list : 目前連接配接的用戶端當中,最長的輸出清單

client_longest_input_buf : 目前連接配接的用戶端當中,最大輸入緩存

blocked_clients : 正在等待阻塞指令(BLPOP、BRPOP、BRPOPLPUSH)的用戶端的數量

memory 部分記錄了伺服器的記憶體資訊,它包含以下域:

在理想情況下, used_memory_rss 的值應該隻比 used_memory 稍微高一點兒。

當 rss > used ,且兩者的值相差較大時,表示存在(内部或外部的)記憶體碎片。

記憶體碎片的比率可以通過 mem_fragmentation_ratio 的值看出。

當 used > rss 時,表示 Redis 的部分記憶體被作業系統換出到交換空間了,在這種情況下,操作可能會産生明顯的延遲。

Because Redis does not have control over how its allocations are mapped to memory pages, highused_memory_rss is often the result of a spike in memory usage.

當 Redis 釋放記憶體時,配置設定器可能會,也可能不會,将記憶體返還給作業系統。

如果 Redis 釋放了記憶體,卻沒有将記憶體返還給作業系統,那麼 used_memory 的值可能和作業系統顯示的 Redis 記憶體占用并不一緻。

檢視 used_memory_peak 的值可以驗證這種情況是否發生。

used_memory : 由 Redis 配置設定器配置設定的記憶體總量,以位元組(byte)為機關

used_memory_human : 以人類可讀的格式傳回 Redis 配置設定的記憶體總量

used_memory_rss : 從作業系統的角度,傳回 Redis 已配置設定的記憶體總量(俗稱常駐集大小)。這個值和 top 、 ps等指令的輸出一緻。

used_memory_peak : Redis 的記憶體消耗峰值(以位元組為機關)

used_memory_peak_human : 以人類可讀的格式傳回 Redis 的記憶體消耗峰值

used_memory_lua : Lua 引擎所使用的記憶體大小(以位元組為機關)

mem_fragmentation_ratio : used_memory_rss 和 used_memory 之間的比率

mem_allocator : 在編譯時指定的, Redis 所使用的記憶體配置設定器。可以是 libc 、 jemalloc 或者 tcmalloc 。

persistence 部分記錄了跟 RDB 持久化和 AOF 持久化有關的資訊,它包含以下域:

如果 AOF 持久化功能處于開啟狀态,那麼這個部分還會加上以下域:

aof_current_size : AOF 檔案目前的大小。

aof_base_size : 伺服器啟動時或者 AOF 重寫最近一次執行之後,AOF 檔案的大小。

aof_pending_rewrite : 一個标志值,記錄了是否有 AOF 重寫操作在等待 RDB 檔案建立完畢之後執行。

aof_buffer_length : AOF 緩沖區的大小。

aof_rewrite_buffer_length : AOF 重寫緩沖區的大小。

aof_pending_bio_fsync : 背景 I/O 隊列裡面,等待執行的 fsync 調用數量。

aof_delayed_fsync : 被延遲的 fsync 調用數量。

loading : 一個标志值,記錄了伺服器是否正在載入持久化檔案。

rdb_changes_since_last_save : 距離最近一次成功建立持久化檔案之後,經過了多少秒。

rdb_bgsave_in_progress : 一個标志值,記錄了伺服器是否正在建立 RDB 檔案。

rdb_last_save_time : 最近一次成功建立 RDB 檔案的 UNIX 時間戳。

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 檔案。

aof_rewrite_scheduled : 一個标志值,記錄了在 RDB 檔案建立完畢之後,是否需要執行預約的 AOF 重寫操作。

aof_last_rewrite_time_sec : 最近一次建立 AOF 檔案耗費的時長。

aof_current_rewrite_time_sec : 如果伺服器正在建立 AOF 檔案,那麼這個域記錄的就是目前的建立操作已經耗費的秒數。

aof_last_bgrewrite_status : 一個标志值,記錄了最近一次建立 AOF 檔案的結果是成功還是失敗。

stats 部分記錄了一般統計資訊,它包含以下域:

total_connections_received : 伺服器已接受的連接配接請求數量。

total_commands_processed : 伺服器已執行的指令數量。

instantaneous_ops_per_sec : 伺服器每秒鐘執行的指令數量。

rejected_connections : 因為最大用戶端數量限制而被拒絕的連接配接請求數量。

expired_keys : 因為過期而被自動删除的資料庫鍵數量。

evicted_keys : 因為最大記憶體容量限制而被驅逐(evict)的鍵數量。

keyspace_hits : 查找資料庫鍵成功的次數。

keyspace_misses : 查找資料庫鍵失敗的次數。

pubsub_channels : 目前被訂閱的頻道數量。

pubsub_patterns : 目前被訂閱的模式數量。

latest_fork_usec : 最近一次 fork() 操作耗費的毫秒數。

replication : 主/從複制資訊

如果目前伺服器是一個從伺服器的話,那麼這個部分還會加上以下域:

如果同步操作正在進行,那麼這個部分還會加上以下域:

如果主從伺服器之間的連接配接處于斷線狀态,那麼這個部分還會加上以下域:

以下是一些總會出現的域:

對于每個從伺服器,都會添加以下一行資訊:

slaveXXX : ID、IP 位址、端口号、連接配接狀态

connected_slaves : 已連接配接的從伺服器數量。

master_link_down_since_seconds : 主從伺服器連接配接斷開了多少秒。

master_sync_left_bytes : 距離同步完成還缺少多少位元組資料。

master_sync_last_io_seconds_ago : 距離最近一次因為 SYNC 操作而進行 I/O 已經過去了多少秒。

master_host : 主伺服器的 IP 位址。

master_port : 主伺服器的 TCP 監聽端口号。

master_link_status : 複制連接配接目前的狀态, up 表示連接配接正常, down 表示連接配接斷開。

master_last_io_seconds_ago : 距離最近一次與主伺服器進行通信已經過去了多少秒鐘。

master_sync_in_progress : 一個标志值,記錄了主伺服器是否正在與這個從伺服器進行同步。

role : 如果目前伺服器沒有在複制任何其他伺服器,那麼這個域的值就是 master ;否則的話,這個域的值就是slave 。注意,在建立複制鍊的時候,一個從伺服器也可能是另一個伺服器的主伺服器。

cpu 部分記錄了 CPU 的計算量統計資訊,它包含以下域:

used_cpu_sys : Redis 伺服器耗費的系統 CPU 。

used_cpu_user : Redis 伺服器耗費的使用者 CPU 。

used_cpu_sys_children : 背景程序耗費的系統 CPU 。

used_cpu_user_children : 背景程序耗費的使用者 CPU 。

commandstats 部分記錄了各種不同類型的指令的執行統計資訊,比如指令執行的次數、指令耗費的 CPU 時間、執行每個指令耗費的平均 CPU 時間等等。對于每種類型的指令,這個部分都會添加一行以下格式的資訊:

cmdstat_XXX:calls=XXX,usec=XXX,usecpercall=XXX

cluster 部分記錄了和叢集有關的資訊,它包含以下域:

cluster_enabled : 一個标志值,記錄叢集功能是否已經開啟。

keyspace 部分記錄了資料庫相關的統計資訊,比如資料庫的鍵數量、資料庫已經被删除的過期鍵數量等。對于每個資料庫,這個部分都會添加一行以下格式的資訊:

dbXXX:keys=XXX,expires=XXX

     本文轉自aaron428 51CTO部落格,原文連結:http://blog.51cto.com/aaronsa/1728260,如需轉載請自行聯系原作者