From d94984f96cbda5faed0f7933949c40b2cae2b0e1 Mon Sep 17 00:00:00 2001 From: John Sully Date: Wed, 6 Mar 2019 16:39:02 -0500 Subject: [PATCH] Limit server-threads to cores in the machine Former-commit-id: be3ba1d53eb070719fd84c7573f665277a35b6f4 --- src/server.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index cfc7c9ced..da2895664 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -35,7 +35,7 @@ #include "latency.h" #include "atomicvar.h" #include "storage.h" - +#include #include #include #include @@ -4986,11 +4986,17 @@ int main(int argc, char **argv) { (int)getpid()); if (argc == 1) { - serverLog(LL_WARNING, "Warning: no config file specified, using the default config. In order to specify a config file use %s /path/to/%s.conf", argv[0], server.sentinel_mode ? "sentinel" : "redis"); + serverLog(LL_WARNING, "WARNING: no config file specified, using the default config. In order to specify a config file use %s /path/to/%s.conf", argv[0], server.sentinel_mode ? "sentinel" : "redis"); } else { serverLog(LL_WARNING, "Configuration loaded"); } + if (server.cthreads > (int)std::thread::hardware_concurrency()) { + serverLog(LL_WARNING, "WARNING: server-threads is greater than this machine's core count. Truncating to %u threads", std::thread::hardware_concurrency()); + server.cthreads = (int)std::thread::hardware_concurrency(); + server.cthreads = std::max(server.cthreads, 1); // in case of any weird sign overflows + } + server.supervised = redisIsSupervised(server.supervised_mode); int background = server.daemonize && !server.supervised; if (background) daemonize();