diff --git a/src/evict.cpp b/src/evict.cpp index bfc923ecc..780ec0b63 100644 --- a/src/evict.cpp +++ b/src/evict.cpp @@ -428,14 +428,14 @@ int getMaxmemoryState(size_t *total, size_t *logical, size_t *tofree, float *lev if (g_pserver->FRdbSaveInProgress()) maxmemory = static_cast(maxmemory*1.2); - /* If free system memory is below a certain threshold, force eviction */ - long sys_free_mem_buffer = 0; + /* If available system memory is below a certain threshold, force eviction */ + long sys_available_mem_buffer = 0; if (g_pserver->force_eviction_percent && g_pserver->cron_malloc_stats.sys_total) { - float free_mem_ratio = (float)(100 - g_pserver->force_eviction_percent)/100; - size_t min_free_mem = static_cast(g_pserver->cron_malloc_stats.sys_total * free_mem_ratio); - sys_free_mem_buffer = static_cast(g_pserver->cron_malloc_stats.sys_free - min_free_mem); - if (sys_free_mem_buffer < 0) { - long mem_threshold = mem_reported + sys_free_mem_buffer; + float available_mem_ratio = (float)(100 - g_pserver->force_eviction_percent)/100; + size_t min_available_mem = static_cast(g_pserver->cron_malloc_stats.sys_total * available_mem_ratio); + sys_available_mem_buffer = static_cast(g_pserver->cron_malloc_stats.sys_available - min_available_mem); + if (sys_available_mem_buffer < 0) { + long mem_threshold = mem_reported + sys_available_mem_buffer; maxmemory = ((long)maxmemory < mem_threshold) ? maxmemory : static_cast(mem_threshold); } } @@ -450,9 +450,9 @@ int getMaxmemoryState(size_t *total, size_t *logical, size_t *tofree, float *lev size_t overhead = freeMemoryGetNotCountedMemory(); mem_used = (mem_used > overhead) ? mem_used-overhead : 0; - /* If system free memory is too low, we want to force evictions no matter + /* If system available memory is too low, we want to force evictions no matter * what so we also offset the overhead from maxmemory. */ - if (sys_free_mem_buffer < 0) { + if (sys_available_mem_buffer < 0) { maxmemory = (maxmemory > overhead) ? maxmemory-overhead : 0; } diff --git a/src/meminfo.cpp b/src/meminfo.cpp index a3ec46805..dc9e81b93 100644 --- a/src/meminfo.cpp +++ b/src/meminfo.cpp @@ -2,7 +2,7 @@ #include static size_t getMemKey(std::string key) { -# ifdef __linux__ +// # ifdef __linux__ std::string token; std::ifstream f("/proc/meminfo"); while (f >> token) { @@ -15,11 +15,11 @@ static size_t getMemKey(std::string key) { } f.ignore(std::numeric_limits::max(), '\n'); } - return 0; // nothing found } -# else return 0; -# endif +// # else +// return 0; +// # endif } size_t getMemAvailable() { diff --git a/src/server.cpp b/src/server.cpp index 9c671b0a2..ddb8682da 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2316,7 +2316,7 @@ void cronUpdateMemoryStats() { if (g_pserver->force_eviction_percent) { g_pserver->cron_malloc_stats.sys_available = getMemAvailable(); - serverLog(LL_WARNING, "Setting sys_available:%llu", g_pserver->cron_malloc_stats.sys_available); + serverLog(LL_WARNING, "Setting sys_available:%lu", g_pserver->cron_malloc_stats.sys_available); } } }