通过redis-cli连接服务器后,通过info命令可以查看内存使用情况:
127.0.0.1:6379> info memory
# Memory
# redis分配的内存总量,包括虚拟内存(字节)
used_memory:4139104
used_memory_human:3.95M
# 占系统操作的内存,不包括虚拟内存(字节)
used_memory_rss:5713920
used_memory_rss_human:5.45M
used_memory_peak:4163520
used_memory_peak_human:3.97M
used_memory_peak_perc:99.41%
used_memory_overhead:846894
used_memory_startup:786456
used_memory_dataset:3292210
used_memory_dataset_perc:98.20%
total_system_memory:16658657280
total_system_memory_human:15.51G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
# 内存碎片化比例,如果小于0说明使用了虚拟内存
mem_fragmentation_ratio:1.38
# redis 使用的内存分配器
mem_allocator:jemalloc-4.0.3
active_defrag_running:0
lazyfree_pending_objects:0
info 命令可以查询redis服务器的很多信息,包括服务器基本信息、CPU、内存、持久化、客户端 连接信息等等
memory 是参数,表示只显示内存相关的信息。
重要参数说明:
- used_memory:redis分配的内存总量,包括虚拟内存(字节)
- used_memory_rss:占系统操作的内存,不包括虚拟内存(字节)
- mem_fragmentation_ratio: used_memory_rss/used_memory
mem_fragmentation_ratio一般大于1,且该值越大,内存碎片比例越大。
mem_fragmentation_ratio<1,说明Redis使用了虚拟内存(swap),由于虚拟内存的媒介是磁盘,比内存速度要慢很多,当这种情况出现时,应该及时排查,如果内存不足应该及时处理,如增加Redis节 点、增加Redis服务器的内存、优化应用等。
一般来说,mem_fragmentation_ratio在1.03左右是比较健康的状态(对于jemalloc来说)
- mem_allocator:Redis使用的内存分配器,分配器包含:libc, jemalloc, tcmalloc, 默认是jemalloc