最近用zabbix监控,在写Redis的性能数据和服务状态监控,性能数据这块用info命令就可以获取的比较全面了。info的输出结果是分几块的,有Servers、Clients、Memory等等,通过info后面接这些参数,可以指定输出某一块数据。下面是针对info的输出在旁边注释了,可能会存在错误,以后了解多了再慢慢完善。
# Server
redis_version:3.2.0
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:e310187663cd14c5
redis_mode:standalone
redis的运行实例,基本不是standalone就是cluster。
os:Linux 2.6.32-573.el6.x86_64 x86_64
系统内核版本及架构。
arch_bits:64
系统架构,目前基本都是64位。
multiplexing_api:epoll
redis的事件循环机制,epoll目前是Linux系统下的最优的事件通知机制,包括Nginx也是使用epoll,还有一些如select、poll等事件通知机制。
gcc_version:4.6.3
process_id:18926
redis进程号。
run_id:df8ad7574f3ee5136e8be94aaa6602a0079704cc
标识redis server的随机值。
tcp_port:6379
redis实例运行的端口。
uptime_in_seconds:155982
redis server启动的时间(单位s)。
uptime_in_days:1
redis server启动的时间(单位d)。
lru_clock:3483895
Clock incrementing every minute, for LRU management(不清楚是如何计算的)。
executable:/usr/local/bin/redis-server
redis执行程序。
config_file:/apps/redis/conf/redis-6379.conf
配置文件位置。
# Clients
connected_clients:3
连接的客户端数。
client_longest_output_list:0
当前客户端连接的最大输出列表。
client_biggest_input_buf:0
当前客户端连接的最大输入buffer。
blocked_clients:0
被阻塞的客户端数。
# Memory
used_memory:2421592
used_memory_human:2.31M
使用内存,单位B。后面是human read显示使用内存。
used_memory_rss:10039296
used_memory_rss_human:9.57M
系统给redis分配的内存(即常驻内存)。
used_memory_peak:2462720
used_memory_peak_human:2.35M
内存使用的峰值大小。
total_system_memory:101393244160
total_system_memory_human:94.43G
系统内存大小。
used_memory_lua:37888
used_memory_lua_human:37.00K
lua引擎使用的内存。
maxmemory:4000000000
maxmemory_human:3.73G
此实例的最大可用内存。
maxmemory_policy:volatile-lru
当前使用的key管理策略。
mem_fragmentation_ratio:4.15
used_memory_rss/used_memory比例,一般情况下,used_memory_rss略高于used_memory,当内存碎片较多时,则mem_fragmentation_ratio会较大,可以反映内存碎片是否很多。
mem_allocator:jemalloc-4.0.3
内存分配器,redis默认使用jemalloc进行编译安装,如果你的系统没有安装jemalloc,那么你可能会看到内存分配器为libc,系统自带的内存管理器。
# Persistence
loading:0
rdb_changes_since_last_save:6
自上次dump后rdb的改动。
rdb_bgsave_in_progress:0
标识rdb save是否在进行中。
rdb_last_save_time:1479723963
上次save的时间戳。
rdb_last_bgsave_status:ok
上次的save操作状态。
rdb_last_bgsave_time_sec:0
上次rdb save操作使用的时间(单位s)。
rdb_current_bgsave_time_sec:-1
如果rdb save操作正在进行,则是所使用的时间。
aof_enabled:1
是否开启aof(1为开启,0为关闭),默认没开启。
aof_rewrite_in_progress:0
标识aof的rewrite操作是否在进行中。
aof_rewrite_scheduled:0
标识aof是否将要在rdb save操作结束后执行。
aof_last_rewrite_time_sec:-1
上次rewrite操作使用的时间(单位s)
aof_current_rewrite_time_sec:-1
如果rewrite操作正在进行,则记录所使用的时间。
aof_last_bgrewrite_status:ok
上次rewrite操作的状态。
开启aof后增加的一些info信息。
aof_current_size:157
aof当前文件大小,减去aof_base_size就是上次rewrite至今的增长大小。
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计数器,此值大于0说明AOF写入有阻塞,进而会造成用户请求有阻塞。
# Stats
total_connections_received:35652
自启动起连接过的总数。
total_commands_processed:190670
自启动起运行命令的总数。
instantaneous_ops_per_sec:0
每秒执行的命令个数。
total_net_input_bytes:6240289
total_net_output_bytes:86873174
自启动后总的网络输入输出字节数。
instantaneous_input_kbps:0.02
instantaneous_output_kbps:0.00
当前的输入输出带宽。
rejected_connections:0
因为最大客户端连接数限制,而导致被拒绝连接的个数。
sync_full:1
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
自启动起过期的key的总数。
expired_stale_perc:0.6
过期key的占比。
expired_time_cap_reached_count:0
expire_cycle_cpu_milliseconds:0
evicted_keys:0
因为内存大小限制,而被驱逐出去的键的个数。
keyspace_hits:0
key的命中次数,相当于get请求。
keyspace_misses:0
同上,未命中的key的个数。
pubsub_channels:0
发布/订阅频道数。
pubsub_patterns:0
发布/订阅模式数。
latest_fork_usec:0
上次的fork操作使用的时间(单位ms)。
PS:pubsub是一种消息传送的方式,分为频道和模式两种。消息不支持持久化,消息方中断后再连接,前面的消息就会没了。频道是指通过SUBSCRIBE指定一个固定的频道来订阅,模式是指通过PSUBSCRIBE模式匹配来订阅相关的匹配给定模式的频道。
# Replication
role:master
此实例所担当的角色,master或者为slave。
connected_slaves:1
连接的从库数目。
slave0:ip=10.0.30.66,port=6552,state=online,offset=217130,lag=1
如果有从库,会有这么一条从库连接信息。
master_repl_offset:217130
# master当前的复制
—————————–
role:slave
当前实例角色。
master_host:127.0.0.1
连接master的IP地址。
master_port:6379
连接master的端口号。
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0
标识主redis正在同步到从redis。
slave_priority:100
从库优先级。
slave_read_only:1
从库只读。
connected_slaves:0
# CPU
used_cpu_sys:0.00
redis server的sys cpu使用率。
used_cpu_user:0.12
redis server的user cpu使用率。
used_cpu_sys_children:0.00
后台进程的sys cpu使用率。
used_cpu_user_children:0.00
后台进程的user cpu使用率。
# Keyspace
db0:keys=3,expires=0,avg_ttl=0
db1:keys=3,expires=0,avg_ttl=0
每个数据库的大概信息统计。
其中 keys 表示当前 key 的总数,包含未设置过期时间的 key 数量和已设置过期时间但未被销毁的 key 数量,已设置过期时间且已被销毁的 key 不会统计在这里。命令 dbsize 统计的 key 原理与这里显示的一致。而 keys * 统计的是当前 db 有效的 key,不包含过期还未被销毁的 key。
而 expires 表示设置了过期时间的 key 数量,包含未过期 key 和已过期未被销毁的 key,已销毁的 key 不在统计。
<参考>