Redis MSOpenTech:使用内存时不允许使用max memory" OOM命令> ' maxmemory'"即使保存后的RDB文件只有3 GB,也会出错

时间:2014-08-06 15:40:52

标签: memory memory-management redis

我使用的redis服务器版本是MSOpenTech github的2.8.9。任何人都可以解释为什么redis“info”命令表明已使用的内存为21 GB,即使保存在磁盘上的RDB文件是<超过4 GB?在注意到RDB文件的大小之前,我确实成功运行了“save”命令。 qfork heapfile是30 Gb,因为它是在redis.windows.conf中配置的。

配置:

maxheap 30gb 最大内存20 Gb 附带没有 保存18000 1

服务器有192 GB的物理RAM,但不幸的是只有大约60 GB的可用磁盘空间,我不得不分别将max-heap和max-memory设置为30 Gb和20 Gb,这样我就有额外的空间可以保留磁盘上的数据。

我使用redis作为缓存,并且保存间隔很大,因为播种数据需要很长时间,而且我不希望不断写入文件。播种完成后,数据库每天更新一次更新的数据。

我的问题是:

  1. 保存的RDB文件如何变小?它仅仅是由于压缩(rdbcompression yes)?如果是,是否可以使用相同的压缩机制将数据存储在内存中?我广泛使用了这些清单。

  2. 在运行“save”命令之前,process-explorer中的工作集和私有字节非常小。有没有办法可以通过数据结构来分解内存使用情况?例如:List使用x金额,Hash使用y金额等?

  3. 有没有办法在网络路径(共享驱动器或NAS)中存储AOF文件(我关闭AOF并使用RDB,因为AOF文件快速填满磁盘空间)?我尝试将dir配置设置为\ someip \ some文件夹,但服务无法以“Cant CHDIR to location”消息开始

  4. 我无法发布图片,但这就是process-explorer对redis-server实例的看法:

    1. 虚拟记忆:

      • 私人字节:72,920 K
      • Peak Private Bytes:31,546,092 K
      • 虚拟尺寸:31,558,356 K
      • 页面错误:12,479,550
    2. 物理记忆:

      • 工作集:26,871,240 K
      • WS Private:63,260 K
      • WS可分享:26,807,980 K
      • WS共享:3,580 K
      • 峰值工作集:27,011,488 K
    3. 最新保存的dump.rdb为3.81 GB,堆文件为30 GB。

      # Server
      redis_version:2.8.9
      redis_git_sha1:00000000
      redis_git_dirty:0
      redis_build_id:1fe181ad2447fe38
      redis_mode:standalone
      os:Windows  
      arch_bits:64
      multiplexing_api:winsock_IOCP
      gcc_version:0.0.0
      process_id:12772
      run_id:553f2b4665edd206e632b7040aa76c0b76083f4d
      tcp_port:6379
      uptime_in_seconds:24087
      uptime_in_days:0
      hz:50
      lru_clock:14825512
      config_file:D:\RedisService/redis.windows.conf
      
      # Clients
      connected_clients:2
      client_longest_output_list:0
      client_biggest_input_buf:0
      blocked_clients:0
      
      # Memory
      used_memory:21484921736
      used_memory_human:20.01G
      used_memory_rss:21484870536
      used_memory_peak:21487283360
      used_memory_peak_human:20.01G
      used_memory_lua:3156992
      mem_fragmentation_ratio:1.00
      mem_allocator:dlmalloc-2.8
      
      # Persistence
      loading:0
      rdb_changes_since_last_save:0
      rdb_bgsave_in_progress:0
      rdb_last_save_time:1407328559
      rdb_last_bgsave_status:ok
      rdb_last_bgsave_time_sec:1407328560
      rdb_current_bgsave_time_sec:-1
      aof_enabled:0
      aof_rewrite_in_progress:0
      aof_rewrite_scheduled:0
      aof_last_rewrite_time_sec:-1
      aof_current_rewrite_time_sec:-1
      aof_last_bgrewrite_status:ok
      aof_last_write_status:ok
      
      # Stats
      total_connections_received:9486
      total_commands_processed:241141370
      instantaneous_ops_per_sec:0
      rejected_connections:0
      sync_full:0
      sync_partial_ok:0
      sync_partial_err:0
      expired_keys:0
      evicted_keys:0
      keyspace_hits:30143
      keyspace_misses:81
      pubsub_channels:0
      pubsub_patterns:0
      latest_fork_usec:1341134
      

0 个答案:

没有答案