aboutsummaryrefslogtreecommitdiffstats
path: root/src/libserver/cfg_utils.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-11-12 17:50:24 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2017-11-12 17:50:24 +0000
commit681417893d0f859d99690055143364898bfe880f (patch)
tree815104ce6f1236da8e402364eeaec5d24ddfe281 /src/libserver/cfg_utils.c
parentebe88d4dd98bf0c6f0387f269d38d158ce2b35fa (diff)
downloadrspamd-681417893d0f859d99690055143364898bfe880f.tar.gz
rspamd-681417893d0f859d99690055143364898bfe880f.zip
[Fix] Do not spawn too many workers by default
Diffstat (limited to 'src/libserver/cfg_utils.c')
-rw-r--r--src/libserver/cfg_utils.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libserver/cfg_utils.c b/src/libserver/cfg_utils.c
index b0533f7b8..597d661ae 100644
--- a/src/libserver/cfg_utils.c
+++ b/src/libserver/cfg_utils.c
@@ -44,6 +44,7 @@
#define DEFAULT_MAX_PIC (1 * 1024 * 1024)
#define DEFAULT_MAX_SHOTS 100
#define DEFAULT_MAX_SESSIONS 100
+#define DEFAULT_MAX_WORKERS 4
struct rspamd_ucl_map_cbdata {
struct rspamd_config *cfg;
@@ -1001,9 +1002,10 @@ rspamd_config_new_worker (struct rspamd_config *cfg,
c->params = g_hash_table_new (rspamd_str_hash, rspamd_str_equal);
c->active_workers = g_queue_new ();
#ifdef HAVE_SC_NPROCESSORS_ONLN
- c->count = sysconf (_SC_NPROCESSORS_ONLN);
+ c->count = MIN (DEFAULT_MAX_WORKERS,
+ MAX (1, sysconf (_SC_NPROCESSORS_ONLN) - 2));
#else
- c->count = DEFAULT_WORKERS_NUM;
+ c->count = DEFAULT_MAX_WORKERS;
#endif
c->rlimit_nofile = 0;
c->rlimit_maxcore = 0;