From: antirez Date: Thu, 2 Feb 2012 09:17:16 +0000 (+0100) Subject: Set a 3.5 GB maxmemory limit with noeviction policy if a 32 bit instance without... X-Git-Url: https://git.saurik.com/redis.git/commitdiff_plain/d876678b5eb0db0df66a658faeb8fb71e236a634 Set a 3.5 GB maxmemory limit with noeviction policy if a 32 bit instance without user-provided memory limits is detected. --- diff --git a/src/redis.c b/src/redis.c index 8dd35c4e..9f5aa4db 100644 --- a/src/redis.c +++ b/src/redis.c @@ -1095,6 +1095,16 @@ void initServer() { } } + /* 32 bit instances are limited to 4GB of address space, so if there is + * no explicit limit in the user provided configuration we set a limit + * at 3.5GB using maxmemory with 'noeviction' policy'. This saves + * useless crashes of the Redis instance. */ + if (server.arch_bits == 32 && server.maxmemory == 0) { + redisLog(REDIS_WARNING,"Warning: 32 bit instance detected but no memory limit set. Setting 3.5 GB maxmemory limit with 'noeviction' policy now."); + server.maxmemory = 3584LL*(1024*1024); /* 3584 MB = 3.5 GB */ + server.maxmemory_policy = REDIS_MAXMEMORY_NO_EVICTION; + } + if (server.cluster_enabled) clusterInit(); scriptingInit(); slowlogInit();