一次Redis内存排查记录
1. 起因 萌叔手上有一个测试用的Redis集群,集群是Master-slave模式, 平常也不怎么使用。 于是打算清理释放一下内存,打算降低一下配置。 使用FLUSHALL FLUSHALL 可以看到所有的key都已经被清空 > info Keyspace # Keyspace 查看内存开销情况 > info memory # Memory used_memory:537921192 used_memory_human:513.00M used_memory_rss:544067584 used_memory_rss_human:518.86M used_memory_peak:650406864 实例的内存开销超过500MB,内存让狗吃了? 2. 排查 # Memory used_memory:537921192 used_memory_human:513.00M used_memory_rss:544067584 used_memory_rss_human:518.86M used_memory_peak:650406864 used_memory_peak_human:620.28M used_memory_peak_perc:82.71% used_memory_overhead:537863648 used_memory_startup:791600 used_memory_dataset:57544 used_memory_dataset_perc:0.01% allocator_allocated:537984728 allocator_active:538705920 allocator_resident:548462592 total_system_memory:201219264512 total_system_memory_human:187.40G used_memory_lua:40960 used_memory_lua_human:40.00K used_memory_scripts:216 used_memory_scripts_human:216B number_of_cached_scripts:1 maxmemory:1073741824 maxmemory_human:1.00G maxmemory_policy:allkeys-lru allocator_frag_ratio:1.00 allocator_frag_bytes:721192 allocator_rss_ratio:1.02 allocator_rss_bytes:9756672 rss_overhead_ratio:0.99 rss_overhead_bytes:-4395008 mem_fragmentation_ratio:1.01 mem_fragmentation_bytes:6229608 mem_not_counted_for_evict:0 mem_replication_backlog:536870912 // 约为512MB mem_clients_slaves:16922 mem_clients_normal:183998 mem_aof_buffer:0 mem_allocator:jemalloc-5.1.0 active_defrag_running:0 lazyfree_pending_objects:0 # Replication role:master connected_slaves:1 slave0:ip=192.168.88.29,port=9981,state=online,offset=23482674189,lag=0 master_replid:b58677283938996fdae00f7692d24d11d88ff488 master_replid2:effdd3cd4ab2030a2d49273e0cf2ed74df4bccb9 master_repl_offset:23482674347 second_repl_offset:17046600529 repl_backlog_active:1 repl_backlog_size:536870912 // 约为512MB repl_backlog_first_byte_offset:22945803436 repl_backlog_histlen:536870912 # Cluster cluster_enabled:0 # Keyspace 将INFO命令返回的所有内容都交给chatGPT分析,笔者找到了答案,主要原因是复制积压缓冲区设置的过大。 ...